Commit Graph

28 Commits

Author SHA1 Message Date
Ethanfel 0725a46f97 feat: profiles registry read/write + find
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-21 19:50:52 +02:00
Ethanfel b1ac27def9 feat: text gate server route + register TextGate
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-21 18:48:26 +02:00
Ethanfel f617c46aef feat: TextGate node — pause, editable pass-through, signal passthrough
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-21 18:47:55 +02:00
Ethanfel 96912d47a4 feat: textgate AnyType wildcard
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-21 18:44:07 +02:00
Ethanfel 1008612fb2 feat: gate_bus payload channel + should_cancel
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-21 18:43:29 +02:00
Ethanfel 8e8eb317f7 feat: gate server routes + preview + register ImageGate
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-21 17:43:53 +02:00
Ethanfel d8dbc4fb4b feat: ImageGate node — pause, route via ExecutionBlocker, mask out
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-21 17:42:54 +02:00
Ethanfel ea3438567a feat: gate mask_from_stash (paint or zeros)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-21 17:42:04 +02:00
Ethanfel f0f8676eaa feat: gate route_tuple helper
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-21 17:35:51 +02:00
Ethanfel 11772bc29d feat: gate_bus mask stash
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-21 17:35:28 +02:00
Ethanfel 9148dfec25 feat: gate_bus blocking choice waiter
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-21 17:35:04 +02:00
Ethanfel af96155cd1 feat: FolderImageLoader node (image/text/mask/filename/index)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-21 16:28:07 +02:00
Ethanfel dde501c27d feat: scan stem + sidecar text reader
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-21 16:25:17 +02:00
Ethanfel d5b314f6b6 feat: scan.resolve_index with end-of-batch error
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-21 16:24:51 +02:00
Ethanfel ba8de1253e feat: folder scan — depth-limited natural-sorted image listing
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-21 16:24:26 +02:00
Ethanfel 25e89ada2b feat: drag-reorder slots
pool.reorder() permutes slots (validated permutation) and keeps the
active selection on its slot; exposed via /grid_pool/reorder. The grid
thumbnails are drag handles; dropping on another cell reorders.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-21 15:12:53 +02:00
Ethanfel 6feb2c6e63 feat: pool set_mask + route
Write a per-slot grayscale mask sidecar (img_XXXX.mask.png) and record
it on the slot. Add the multipart /grid_pool/set_mask route.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-21 14:01:26 +02:00
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 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 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