Commit Graph

65 Commits

Author SHA1 Message Date
Ethanfel cd0b8783dc feat: in-node grid UI — ingest/select/delete/label + Phase 1 complete
Render the pool as an in-node thumbnail grid with paste/drop/upload
ingest, click-to-select (active border), inline label editing, and
delete. Toolbar (upload/refresh/count) sits at the bottom per ComfyUI
convention; the node auto-grows to fit content.

pool_id is a declared STRING input (not a hidden input): ComfyUI only
fills hidden inputs for built-in types, but forwards every serialized
widget value by name. The JS mints a per-node UUID and hides the widget
via widget.hidden=true (frontend 1.45), keeping it serialized.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-21 13:59:59 +02:00
Ethanfel 08df5c8840 Add Folder Image Loader design + implementation plan
Dataset-oriented loader: folder path, control_after_generate index
(fixed/increment/decrement), depth control, sidecar .txt text output,
alpha->mask, stem filename, resolved index. TDD plan with a pure stdlib
scan layer; self-contained except a merge-aware root __init__ registration
(pool node is being built concurrently).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-21 13:15:05 +02:00
Ethanfel de688a514c feat: pool handlers + aiohttp routes
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-21 13:02:49 +02:00
Ethanfel 1db94dd57d feat: GridImagePool node (image/mask/index/count/label + IS_CHANGED)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-21 13:01:39 +02:00
Ethanfel 40be11cd95 feat: imaging tensor loaders + change hash
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-21 13:00:30 +02:00
Ethanfel 6b59a8d54f feat: pool rebuild_manifest recovery
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-21 12:59:50 +02:00
Ethanfel 2b3f2ffc88 feat: pool set_label
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-21 12:59:09 +02:00
Ethanfel 8b3043f3d4 feat: pool remove_slot with file cleanup
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-21 12:58:36 +02:00
Ethanfel 9f98775677 feat: pool set_active + resolve_slot selection rule
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-21 12:58:05 +02:00
Ethanfel 0bd981d29e feat: pool add_image + monotonic naming
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-21 12:57:06 +02:00
Ethanfel 9077969daf feat: pool manifest read/write with atomic save
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-21 12:56:32 +02:00
Ethanfel af3e78b29d fix: make pytest collection coexist with ComfyUI root __init__
pytest collects the repo root as a Package and imports its __init__.py
during test setup; guard the ComfyUI-only relative imports behind
__package__ so the suite can import gates.* standalone. Drop the
tests/ package marker and pin pythonpath/testpaths.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-21 12:56:32 +02:00
Ethanfel d75f73af2d chore: scaffold ComfyUI-Datasete-Gates package
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-21 12:51:54 +02:00
Ethanfel 19e670ced6 Add Image Pool (Grid) implementation plan
TDD, bite-sized tasks across 3 phases: pure pool storage layer + atomic
manifest, tensor/imaging helpers, GridImagePool node with IS_CHANGED,
aiohttp routes, in-node grid UI, and MaskEditor clipspace round-trip.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-21 12:46:27 +02:00
Ethanfel 4f0b18134e Add Image Pool (Grid) node design doc
Approved design for an input-side ComfyUI node holding a curated pool of
images with per-image masks and labels, selectable for output. Captures
IO, managed-pool-folder storage, MaskEditor reuse, server routes, edge
cases, and a 3-phase build plan.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-21 12:41:57 +02:00