Commit Graph

26 Commits

Author SHA1 Message Date
b64636c189 Add dynamic widget visibility and per-format pixel formats for FastAbsoluteSaver
Hide/show format-specific widgets (CRF, bitrate, ProRes profile, GIF dither,
pixel format, webp settings) based on selected save_format. Pixel format combo
updates dynamically per codec. Remove hardcoded ffv1 pix_fmt to use widget value.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-05 15:20:20 +01:00
e70127d1a3 Add config-driven video format system with 10 codecs and BT.709 color management
Port video formats from VHS Video Combine: H.265, AV1, GIF, FFV1 lossless,
ProRes, and NVENC hardware-accelerated variants. Replace mp4/webm if-else
branching with a VIDEO_FORMATS config dict. Add proper BT.709 color space
tagging to fix washed-out colors in players.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-05 13:10:58 +01:00
33a5f9aa16 Add cross-workflow image channel system with ImageReceiver node
Named channels allow PreviewToLoad to send images to a shared channel
(stored in channels.json) that ImageReceiver nodes can read from,
enabling cross-workflow image passing without brittle node IDs.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-05 11:11:54 +01:00
0559e16cf0 Add Ordered Passthrough node with auto-wired execution order
Some checks are pending
Publish to Comfy registry / Publish Custom Node to registry (push) Waiting to run
JS extension auto-creates LiteGraph links between consecutive
passthrough nodes based on their order widget (1→2→3→4), hiding
the wait_for input and drawing visual chain lines between nodes.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-05 03:28:04 +01:00
2f4a58f134 Fix video saving overwriting files by adding auto-increment support
save_video was always producing the same filename when use_timestamp was
off, causing each run to overwrite the previous video. Now passes
auto_increment and counter_digits through to save_video, which uses
get_start_index to produce numbered filenames like frame_0001.mp4.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-05 01:06:45 +01:00
6bfc2f0eed Bump version to 1.2.2
Some checks failed
Publish to Comfy registry / Publish Custom Node to registry (push) Has been cancelled
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-04 22:25:20 +01:00
8d29a2ad86 Add Load Image node with active switch for branch skipping
New JDL_LoadImage node loads images from input/ (with upload support)
and outputs IMAGE + MASK like the built-in LoadImage. An "active" toggle
returns ExecutionBlocker(None) when off, silently skipping the entire
downstream branch.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-04 22:24:06 +01:00
1b7f31ff73 Clean up: remove diagnostic logging and unnecessary info.outputs logic
The actual fix was setting slot.label alongside slot.name. The
info.outputs approach was wrong (it always contains Python defaults).
Widget values were being restored correctly all along.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-01 00:12:27 +01:00
c5901bb438 Fix: set output label alongside name for LiteGraph rendering 2026-03-01 00:06:19 +01:00
64736c03ab Add post-rename and delayed diagnostic logging 2026-03-01 00:00:12 +01:00
efe0be3224 Add diagnostic logging to onConfigure for debugging output name persistence
Temporary instrumentation to trace data flow during workflow reload.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-28 23:48:59 +01:00
5f9ab80f2f Fix output names not surviving page refresh in JSONDynamicLoader
Read output names from info.outputs (serialized node data) instead of
hidden widget values, which ComfyUI may not persist across reloads.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-28 23:43:35 +01:00
ea57b28812 Fix dynamic outputs breaking Kijai Set/Get nodes on workflow load
Defer removal of the 32 default Python outputs from onNodeCreated using
queueMicrotask so they remain available during graph loading. ComfyUI
creates all nodes before configuring them, and nodes like Kijai's SetNode
resolve links during their configure step — if outputs were already
removed, the resolution failed with "node input undefined". The deferred
cleanup only runs for new nodes; loaded workflows set _configured=true
in onConfigure first. Also adds a fallback to sync widget values from
serialized outputs when widget restoration fails.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-28 00:22:53 +01:00
aa8e3417d2 Move FastAbsoluteSaver from Sharp-Selector, add metadata PNG sidecar option and optimize
- Move FastAbsoluteSaver node from ComfyUI-Sharp-Selector into this pack
- Add save_metadata_png toggle: embeds workflow in a sidecar PNG for webp/video exports,
  or in the first file for PNG sequences
- Batch GPU->CPU tensor transfer (single sync instead of per-image)
- Remove dead webp exif code and unused variables/imports

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-26 16:11:26 +01:00
f05735dcc0 Fix refresh wiping all links when JSON file is missing
Some checks failed
Publish to Comfy registry / Publish Custom Node to registry (push) Has been cancelled
When the file at json_path didn't exist, clicking Refresh Outputs
returned empty keys causing all outputs and links to be removed.
Now the API returns an error flag and the frontend bails out early,
preserving existing outputs.

Bump version to 1.2.1.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 14:19:05 +01:00
58c53e6229 Document Preview to Load Image node in README
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 12:29:09 +01:00
e9ee4db32b Bump version to 1.2.0
Some checks failed
Publish to Comfy registry / Publish Custom Node to registry (push) Has been cancelled
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 12:28:30 +01:00
a385616fa2 Add optional mask input to PreviewToLoad node
When a MASK is connected, it gets embedded as the alpha channel of the
saved PNG.  LoadImage then automatically extracts it as its mask output.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 12:27:00 +01:00
14f84b879b Bump version to 1.1.0 for registry update
Some checks failed
Publish to Comfy registry / Publish Custom Node to registry (push) Has been cancelled
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 11:55:44 +01:00
b5b4a26f6d Add PreviewToLoad node for bridging preview images to LoadImage nodes
Previews an image (like PreviewImage) and saves a copy to input/ so a
LoadImage node can reference it.  JS extension adds a target-node-ID
widget and "Send to Load Image" button that updates the target's combo.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 11:49:13 +01:00
1e3e30d8f1 Add string/path utility nodes (PathJoin, StringFormat, StringExtract, StringSwitch)
Some checks failed
Publish to Comfy registry / Publish Custom Node to registry (push) Has been cancelled
Four new nodes that collapse common multi-node chains for path construction,
string templating, substring extraction, and boolean selection.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 11:06:32 +01:00
3319c78de0 Extract inline SVGs to asset files for GitHub rendering
GitHub strips inline SVGs from Markdown for security. Moved the 3
diagrams (banner, node diagram, segment lookup) to assets/ and
reference them with <img> tags instead.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-23 20:06:07 +01:00
35d73176d8 Document segment/batch_data lookup with SVG diagram
Explains flat vs batch JSON, segment lookup logic (match by
sequence_number field, fallback to index, clamping), and per-segment
key differences.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-23 20:01:41 +01:00
f66cdfd160 Add ComfyUI registry publishing and GitHub install URL
Some checks failed
Publish to Comfy registry / Publish Custom Node to registry (push) Has been cancelled
- Add pyproject.toml with registry metadata (publisher: ethanfel)
- Add .github/workflows/publish.yml for auto-publish on version bump
- Update README with GitHub clone URL and ComfyUI Manager install

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-23 19:41:03 +01:00
c909f854f4 Rename node to JSONDynamicLoader to avoid collision with JSON Manager
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-23 19:36:28 +01:00
79157f4289 Initial commit: JSON Loader (Dynamic) ComfyUI node
Auto-discovers JSON keys and exposes them as typed output slots.
Includes JS frontend for refresh, connection-safe updates, and
workflow persistence of keys and types.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-23 19:32:57 +01:00