Ethanfel
0413e25571
test: bucket cover_crop_params geometry
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-21 22:48:13 +02:00
Ethanfel
cdd742c950
feat: bucket selection matching Klein 9B table
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-21 22:47:46 +02:00
Ethanfel
10c2ea6d60
fix: pool profiles never auto-switch on connect; seed empty profile from current pool
...
Connecting a Pool Profile no longer overwrites the pool's pool_id. The pool is
switched only when the user actively selects a profile in the dropdown; picking
an empty profile while a pool with images is connected offers to copy those
images into it (new seed_profile op + /grid_pool/profiles/seed route), so the
current pool is never silently lost.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-21 20:14:44 +02:00
Ethanfel
42138857a9
feat: Image Pool accepts optional POOL_PROFILE (profile or pool_id)
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-21 19:59:26 +02:00
Ethanfel
b7e064508a
feat: PoolProfile companion node
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-21 19:58:34 +02:00
Ethanfel
ac3ad07b17
feat: profiles export/import (portable zip)
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-21 19:56:00 +02:00
Ethanfel
e974413085
feat: profiles duplicate_profile
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-21 19:55:10 +02:00
Ethanfel
d3bb7834a4
feat: profiles delete_profile
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-21 19:54:32 +02:00
Ethanfel
71462071e4
feat: profiles rename_profile
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-21 19:51:52 +02:00
Ethanfel
9a0128b5fa
feat: profiles create_profile
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-21 19:51:21 +02:00
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
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
3250aaa828
test: gate_bus wait_payload honors should_cancel
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-21 18:43:43 +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
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
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