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>
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>
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>
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>
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>
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>
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>
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>
- 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>
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>
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>
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>
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>
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>
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>
- 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>
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>