Commit Graph
88 Commits
Author SHA1 Message Date
Outis ac702bde0a Merge pull request #34 from outis1one/claude/migrate-to-minipaint-eYKWf
Fix rembg/onnxruntime Docker build issue
2026-01-27 09:14:23 -05:00
Outis 6bfd3766c8 Merge branch 'main' into claude/migrate-to-minipaint-eYKWf 2026-01-27 09:13:18 -05:00
Claude 44bc5ed2f5 Fix rembg/onnxruntime Docker build issue
- Use onnxruntime 1.14.1 (older version without executable stack requirement)
- Make rembg pre-download optional (won't fail build if onnxruntime has issues)
- Remove Background will be disabled if rembg can't load
2026-01-27 14:08:16 +00:00
Outis 892d901394 Merge pull request #33 from outis1one/claude/migrate-to-minipaint-eYKWf
Claude/migrate to minipaint e yk wf
2026-01-27 08:29:50 -05:00
Claude 8087d6967a Add My Library for reusable assets (clip art, templates)
- Save layer or selection to personal library
- Browse library with category grouping and thumbnails
- Insert assets as new layers (double-click or Insert button)
- Delete unwanted assets
- Export library to JSON for backup
- Import library from JSON backup
- Assets stored in browser IndexedDB (persistent)
- Categories: General, Shapes, Borders, Icons, Templates, etc.
2026-01-27 13:15:58 +00:00
Claude 4d4947df13 Add selection-based effects (invert, adjust, greyscale)
- New Image > Selection Effects submenu
- Invert Selection: Invert colors only within selected area
- Adjust Selection: Brightness/contrast/gamma on selection only
- Greyscale Selection: Convert just the selected area to greyscale
- All effects work with any selection tool (Smart Select, Brush Select, etc.)
- Useful for CNC depth maps where specific objects need different treatments
2026-01-27 13:09:06 +00:00
Claude 1be13d3620 Add layer scaling, greyscale effect, and context menu
- Fix onnxruntime version (1.15.1) to avoid executable stack issue
- Add Layer Scale module (Layer > Scale Layer or 'S' button)
- Add Greyscale effect with multiple methods (luminosity, average, etc.)
- Add right-click context menu on layers with common operations
- Add Scale button to layers panel toolbar
2026-01-27 12:51:11 +00:00
Outis ed1c56b89e Merge pull request #32 from outis1one/claude/fix-rembg-docker-build-CWGXj
Fix onnxruntime executable stack error in Docker build
2026-01-26 23:50:39 -05:00
Claude a1dd81b981 Fix onnxruntime executable stack error in Docker build
The onnxruntime library requires an executable stack which is blocked
by security restrictions in Docker containers. This adds execstack tool
and uses it to clear the executable stack flag after pip install.

https://claude.ai/code/session_01AGoPJaXqdJnnuxtmSv6NLR
2026-01-27 04:49:32 +00:00
Outis dd4cd99e79 Merge pull request #31 from outis1one/claude/migrate-to-minipaint-eYKWf
Claude/migrate to minipaint e yk wf
2026-01-26 23:28:49 -05:00
Claude d9fea955fc Fix rembg error handling in Dockerfile 2026-01-27 04:27:53 +00:00
Claude a9a2b7bf04 Add Canva-style Brush Select tool with SAM AI
- New tool: Paint/brush over objects to select them
- AI (SAM) detects actual object boundaries from brush strokes
- Collects sample points along brush path, sends to SAM
- Combines multiple masks for multi-object selection
- Shift+brush to add to existing selection
- Full cut/copy/delete support with mask-shaped results
- Visual feedback: brush stroke preview, sample points, marching ants
2026-01-27 04:22:44 +00:00
Outis 1130680cfe Merge pull request #30 from outis1one/claude/migrate-to-minipaint-eYKWf
Fix selection tools and improve UI/UX
2026-01-26 22:33:00 -05:00
Claude d2f7b69dc7 Fix selection tools and improve UI/UX
- Fix cut/copy to preserve mask shape with transparency
- Add missing CSS icons for magic_wand, lasso, ellipse_select tools
- Fix toast messages styling (visible on dark theme)
- Update AI Inpaint to work with all selection tools
- Change tab title to +miniPaint
- Add DNS config to docker-compose for external API access
2026-01-27 03:09:55 +00:00
Outis a3f559bb40 Merge pull request #29 from outis1one/claude/migrate-to-minipaint-eYKWf
Add Remove Background feature using AI (rembg)
2026-01-26 19:54:01 -05:00
Claude 22d9f767a8 Add Remove Background feature using AI (rembg)
Frontend:
- Added "Remove Background (AI)" to Image menu
- Created remove_background.js module with dialog options
- Added removeBackground method to API service

Backend:
- Added /tools/remove-background-base64 endpoint for miniPaint frontend
- Uses rembg library for AI-powered background removal

Features:
- Automatically detects main subject and removes background
- Option to create as new layer or replace current
- Enables transparency mode after removal
- Works with any image layer
2026-01-27 00:47:22 +00:00
Outis d27610eaf1 Merge pull request #28 from outis1one/claude/migrate-to-minipaint-eYKWf
Add selection tools: Magic Wand, Lasso, Ellipse Select
2026-01-26 19:42:27 -05:00
Claude f650ec3019 Add selection tools: Magic Wand, Lasso, Ellipse Select
New Selection Tools:
- Magic Wand: Click to select by color similarity (like GIMP)
  - Configurable tolerance (0-100%)
  - Contiguous or global mode
  - Shift+Click to add to selection

- Lasso: Freehand selection by drawing
  - Draw around area to select
  - Shift+Draw to add to selection

- Ellipse Select: Draw elliptical/circular selections
  - Drag to create ellipse
  - Shift+Drag for perfect circle
  - Alt+Drag to draw from center

Smart Select Improvements:
- Fixed copy/cut to layer errors
- Added Shift+Click for multi-select (additive selection)
- All operations use proper layer action system

All selection tools support:
- Ctrl+C: Copy selection to new layer
- Ctrl+X: Cut selection to new layer
- Delete: Delete selected area
- Escape: Clear selection
- Marching ants animation on selection edge
2026-01-27 00:39:40 +00:00
Outis c819f92573 Merge pull request #27 from outis1one/claude/migrate-to-minipaint-eYKWf
Improve SAM selection with mask contour and layer operations
2026-01-26 19:02:37 -05:00
Claude 53225e9e05 Improve SAM selection with mask contour and layer operations
- SAM selection now shows actual mask contour instead of bounding box
- Added marching ants animation on the actual mask edge
- Added keyboard shortcuts:
  - Ctrl+C: Copy selection to new layer
  - Ctrl+X: Cut selection to new layer (removes from original)
  - Delete: Delete selected area
  - Escape: Clear selection
- Removed eye catalog download from startup (was failing with 429)
2026-01-27 00:00:16 +00:00
outis1one 85102a124b Merge pull request #26 from outis1one/claude/migrate-to-minipaint-eYKWf
Fix smart select visualization and inpaint API
2026-01-26 13:27:52 -05:00
Claude cfe487e2ed Fix smart select visualization and inpaint API
Frontend:
- Fix smart_select.js to properly render mask overlay
- Add marching ants border around selection
- Calculate selection bounds from mask
- Trigger re-render after mask is loaded

Backend:
- Fix inpaint endpoint to call edit_image() instead of inpaint()
- The AI providers use edit_image() method, not inpaint()
2026-01-26 18:26:12 +00:00
outis1one 76359a2926 Merge pull request #25 from outis1one/claude/migrate-to-minipaint-eYKWf
Fix API base URL for unified container setup
2026-01-26 13:05:26 -05:00
Claude f0ea7df6b7 Fix API base URL for unified container setup 2026-01-26 18:04:27 +00:00
outis1one 0336169ac5 Merge pull request #24 from outis1one/claude/migrate-to-minipaint-eYKWf
Fix Docker build for miniPaint frontend
2026-01-26 12:44:50 -05:00
Claude e0eb65810a Fix Docker build for miniPaint frontend
- Update main Dockerfile to copy all miniPaint static files:
  - index.html
  - dist/ (webpack bundle)
  - images/ (icons and assets)
  - src/css/ (stylesheets)
- Update backend main.py to conditionally mount static directories
  - Checks if each directory exists before mounting
  - Supports both React (assets/) and miniPaint (dist/, images/, src/) structures
2026-01-26 17:43:14 +00:00
outis1one 93b2f5055c Merge pull request #23 from outis1one/claude/migrate-to-minipaint-eYKWf
Add SAM Smart Select and AI Inpaint tools to miniPaint
2026-01-26 12:37:59 -05:00
Claude bf83ecc8ad Add SAM Smart Select and AI Inpaint tools to miniPaint
New features:
- Smart Select tool: Click to select objects using SAM (Segment Anything)
- AI Inpaint tool: Edit selected regions with text prompts

Changes:
- frontend/src/js/tools/smart_select.js: SAM-powered selection tool
- frontend/src/js/tools/ai_inpaint.js: AI inpainting with prompt dialog
- frontend/src/js/services/api.js: API service for backend communication
- frontend/src/js/config.js: Register new tools
- frontend/src/css/layout.css: Tool icon styles
- frontend/images/icons/: SVG icons for new tools
- backend/app/routers/tools.py: New base64 API endpoints
- frontend/Dockerfile: Updated for miniPaint build
- frontend/nginx.conf: Added /api prefix proxy
2026-01-26 17:34:20 +00:00
motion d009a2c0f0 Add miniPaint as new frontend base 2026-01-26 12:23:09 -05:00
motion 6ae4cbcb77 Add miniPaint as new frontend base 2026-01-26 12:20:16 -05:00
outis1one 0525cc8b20 Merge pull request #21 from outis1one/claude/automate-sam-download-mzpRs
Claude/automate sam download mzp rs
2026-01-26 11:44:35 -05:00
outis1one 34e680eb25 Merge branch 'main' into claude/automate-sam-download-mzpRs 2026-01-26 11:44:20 -05:00
Claude 487f52a616 Fix undefined variable references in ImageCanvas
ROOT CAUSE: ImageCanvas referenced props that don't exist:
- activeTool, onSmartSelect, onColorSelect were used but never declared
- selectionMode checked for 'smart'/'color' but App passes advancedToolMode with 'smart-select'/'color-select'

Changes:
- Update mode checking to use advancedToolMode instead of selectionMode for smart/color select
- Replace onSmartSelect/onColorSelect calls with onAdvancedToolClick
- Fix useEffect dependency array to reference actual props
- Add missing state/refs: currentZoom, imageRef, baseScaleRef, isDrawingRef
- Add zoom control buttons to canvas UI
- Fix tool mode indicator to check advancedToolMode
2026-01-26 13:39:24 +00:00
Claude c12e8c9508 Fix missing onZoomChange prop declaration in ImageCanvas 2026-01-26 05:45:44 +00:00
outis1one bb859105ff Merge pull request #20 from outis1one/claude/automate-sam-download-mzpRs
Fix remaining onZoomChange references to use ref pattern
2026-01-26 00:24:36 -05:00
Claude 9cd8a5badb Fix remaining onZoomChange references to use ref pattern 2026-01-26 05:23:01 +00:00
outis1one ece6e990d8 Merge pull request #19 from outis1one/claude/automate-sam-download-mzpRs
Fix onZoomChange reference error - use ref to avoid closure issues
2026-01-26 00:19:36 -05:00
outis1one cfe1073bb2 Merge branch 'main' into claude/automate-sam-download-mzpRs 2026-01-26 00:19:26 -05:00
Claude b185cd549c Fix onZoomChange reference error - use ref to avoid closure issues 2026-01-26 05:14:11 +00:00
outis1one a78621d787 Merge pull request #18 from outis1one/claude/automate-sam-download-mzpRs
Fix black screen issue - ensure canvas has dimensions before loading …
2026-01-26 00:01:53 -05:00
outis1one e6401e4c3e Merge branch 'main' into claude/automate-sam-download-mzpRs 2026-01-26 00:01:44 -05:00
Claude 2c9211355d Fix black screen issue - ensure canvas has dimensions before loading image 2026-01-26 05:00:42 +00:00
outis1one 7695c1ec4e Merge pull request #17 from outis1one/claude/add-eye-detection-feature-69XOl
GIMP-like UI overhaul - toolbar, sidebar, full-width canvas
2026-01-25 20:01:33 -05:00
outis1one 4bd2a38924 Merge branch 'main' into claude/add-eye-detection-feature-69XOl 2026-01-25 20:01:22 -05:00
Claude 09c4f71c0a Improve ImageCanvas - zoom, selection fixes, tool modes
- Add zoom support via prop (scales image around center)
- Fix selection interaction: clicking on selection transforms, clicking elsewhere creates new
- Use refs for state accessed in event handlers (fixes stale closure issue)
- Add smart select mode (clicks call onSmartSelect with image coordinates)
- Add color select mode placeholder
- Add pan mode with cursor feedback
- Add move mode for manipulating selections
- Use dashed blue selection style (more visible)
- forwardRef to expose canvas methods
2026-01-26 00:57:56 +00:00
Claude 9922b2a03e GIMP-like UI overhaul - toolbar, sidebar, full-width canvas
- Redesign layout: left toolbar, center canvas, right sidebar
- Add vertical tool strip with keyboard shortcuts (V, R, E, F, W, B, G, Z, H)
- Collapsible sidebar panels: Tool Options, AI Edit, Quick Actions, Eyes, Layers, History
- Canvas now fills available space with checkerboard background
- Add zoom controls in status bar
- Add menu bar with New, Save, Reset
- Remove old multi-column layout
2026-01-26 00:56:28 +00:00
outis1one e53c2295f7 Merge pull request #16 from outis1one/claude/add-eye-detection-feature-69XOl
Claude/add eye detection feature 69 x ol
2026-01-25 18:42:40 -05:00
outis1one aa3dabfbce Merge branch 'main' into claude/add-eye-detection-feature-69XOl 2026-01-25 18:42:32 -05:00
Claude 2a5b50ee4c Consolidate to single container, remove nginx
- Create unified Dockerfile with multi-stage build (Node + Python)
- FastAPI now serves React static files directly
- Remove frontend service and nginx dependency
- Simplify docker-compose to single service
- All routes work without proxy configuration
2026-01-25 23:40:51 +00:00
Claude a59887f8c5 Add /tools proxy location to nginx config
Fixes 405 errors on /tools/* POST endpoints (smart-select,
remove-background-to-layer, etc.) by proxying to backend.
2026-01-25 23:36:32 +00:00