Follows the pack's simple/Advanced batch-loader pattern (multi_image_loader,
multi_audio_loader): drop up to 8 video files onto the node, each gets its
own video_N/audio_N output (plus filename_N on Advanced). video_N is a lazy
VideoFromFile by default (decodes nothing); force_rate > 0 decodes and
retimes frames via resample_frame_indices while keeping real duration.
audio_N is decoded independently with PyAV so it stays available on the
cheap path, and is None (not an error) for clips with no audio track.
Disabled rows hold their socket position, matching the other loaders.
Registered in __init__.py; integration tests follow
tests/test_multi_audio_loader.py's shape (skipped outside a ComfyUI env).
Batch already means one-item-per-queued-run in this pack (AI2GoPromptBatch);
these loaders emit everything in a single run, so Batch was misleading.
Renamed the four loader nodes/files/classes to Multi (AI2GoMultiImageLoader,
AI2GoMultiImageLoaderAdvanced, AI2GoMultiAudioLoader, AI2GoMultiAudioLoaderAdvanced),
and reworded DOWNSCALE_MODES from fit/crop/stretch to the plain-word
"keep aspect ratio"/"crop to square"/"stretch to square" (behavior unchanged).
Nothing published yet, so no back-compat aliases were added.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Adds AI2GoResolutionSelector: a profile-aware (Ideogram 4 = x16, 256-2048) resolution node with raw/auto/megapixel modes, INT width/height outputs for any workflow, and an Apply button that pushes dims into a connected node's width/height widgets (refreshing the Ideogram 4 Prompt Builder canvas via the same write pattern the Style Wizard uses). Dims also flow on graph execution.
Reverts the prompt builder's width/height to KJ-original (removes the embedded resolution_mode/aspect_ratio/megapixels widgets) so its node/JSON stays copy-paste compatible with the upstream KJNodes Ideogram 4 node.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Port the Ideogram 4 Prompt Builder node and its visual bbox editor from
ComfyUI-KJNodes (GPL-3.0, by Kijai) into this pack, fully renamed so it can
coexist with KJNodes if both are installed:
- nodes/ideogram4_nodes.py class/node_id/display_name -> AI2Go*, category AI2Go/text
- web/js/ideogram4_prompt_builder.js extension name, CSS id + 'kjideo-' prefix -> 'ai2go-ideo-',
CSS vars '--kj-dock-' -> '--ai2go-dock-', template dir -> ai2go/ideogram4
- web/js/utility.js shared helpers the editor imports (sibling module)
- fonts/FreeMono.ttf preview font
- __init__.py registers AI2GoIdeogram4PromptBuilder
GPL-3.0 attribution headers added to each derived file. Python + JS syntax verified.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>