Commit Graph
31 Commits
Author SHA1 Message Date
Ethanfel 39997b1d34 Pass through fast saver latent 2026-07-07 20:01:45 +02:00
Ethanfel 4b0b4b6c5a Add latent sidecars to fast saver 2026-07-07 15:31:13 +02:00
EthanfelandClaude Opus 4.8 aae0bdf746 Add optional audio input to FastAbsoluteSaver to mux audio into video
Adds an optional AUDIO input that is muxed into the encoded video via
ffmpeg. Writes the waveform to a temp WAV (stdlib wave, no new deps),
adds it as a third ffmpeg input, and maps streams explicitly with a
per-format audio codec (aac/libopus/flac/pcm). Uses -shortest to match
VideoHelperSuite behavior. GIF ignores audio.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-27 20:07:39 +02:00
EthanfelandClaude Opus 4.6 7f1fc92c54 Group all nodes under JSON Dynamic menu category
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-12 15:53:31 +01:00
EthanfelandClaude Opus 4.6 e19e918855 Fix node bottom clipping by adding padding to computed size
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-06 02:10:30 +01:00
EthanfelandClaude Opus 4.6 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
EthanfelandClaude Opus 4.6 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
EthanfelandClaude Opus 4.6 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
EthanfelandClaude Opus 4.6 0559e16cf0 Add Ordered Passthrough node with auto-wired execution order
Publish to Comfy registry / Publish Custom Node to registry (push) Has been cancelled
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
EthanfelandClaude Opus 4.6 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
EthanfelandClaude Opus 4.6 6bfc2f0eed Bump version to 1.2.2
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
EthanfelandClaude Opus 4.6 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
EthanfelandClaude Opus 4.6 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
Ethanfel c5901bb438 Fix: set output label alongside name for LiteGraph rendering 2026-03-01 00:06:19 +01:00
Ethanfel 64736c03ab Add post-rename and delayed diagnostic logging 2026-03-01 00:00:12 +01:00
EthanfelandClaude Opus 4.6 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
EthanfelandClaude Opus 4.6 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
EthanfelandClaude Opus 4.6 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
EthanfelandClaude Opus 4.6 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
EthanfelandClaude Opus 4.6 f05735dcc0 Fix refresh wiping all links when JSON file is missing
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
EthanfelandClaude Opus 4.6 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
EthanfelandClaude Opus 4.6 e9ee4db32b Bump version to 1.2.0
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
EthanfelandClaude Opus 4.6 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
EthanfelandClaude Opus 4.6 14f84b879b Bump version to 1.1.0 for registry update
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
EthanfelandClaude Opus 4.6 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
EthanfelandClaude Opus 4.6 1e3e30d8f1 Add string/path utility nodes (PathJoin, StringFormat, StringExtract, StringSwitch)
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
EthanfelandClaude Opus 4.6 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
EthanfelandClaude Opus 4.6 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
EthanfelandClaude Opus 4.6 f66cdfd160 Add ComfyUI registry publishing and GitHub install URL
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
EthanfelandClaude Opus 4.6 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
EthanfelandClaude Opus 4.6 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