diff --git a/models/minimax/minimax-h3-seamless-chain-v2/README.md b/models/minimax/minimax-h3-seamless-chain-v2/README.md index 1468c75..7872739 100644 --- a/models/minimax/minimax-h3-seamless-chain-v2/README.md +++ b/models/minimax/minimax-h3-seamless-chain-v2/README.md @@ -1,10 +1,11 @@ -# MiniMax H3 Seamless Chain v2 +# MiniMax H3 Seamless Chain v2.6.0 ## Summary Same-day `MiniMax-H3` multishot workflow from `joeygambino`. This is the full graph, not the CORE cut-down version: it adds the LLM prompt lane, remote text -encoder support, raw-latent continuity, and the speed/VRAM helper switches. +encoder support, raw-latent continuity, the extend-take path, and the +speed/VRAM helper switches. ## Model Family @@ -19,7 +20,7 @@ encoder support, raw-latent continuity, and the speed/VRAM helper switches. - Workflow pack page: - Workflow file: - Original publisher: `joeygambino` -- Date imported: `2026-08-16` +- Date imported: `2026-08-17` ## Developer notes @@ -27,6 +28,9 @@ encoder support, raw-latent continuity, and the speed/VRAM helper switches. block cache, custom scripts, and GGUF support on top of the base H3 pack. - The workflow is built around the `ComfyUI-H3-Multishot` node pack and the same MiniMax-H3 weight family used by the CORE workflow. +- The current upstream release is v2.6.0 and adds the long-chain audio drift + fix, `audio_tone_control=flatten`, `take_seconds`, `audio_pin_frames`, and + the `H3_Extend_Take` workflow. - The prompt-writer lane expects a `qwen3:14b`-class local or remote OpenAI-compatible endpoint if you keep it enabled. @@ -36,6 +40,8 @@ encoder support, raw-latent continuity, and the speed/VRAM helper switches. feature set and are willing to pay for it in complexity. - On an `RTX 3070 8 GB`, this is a heavy workflow, but the memory and remote encoder options are the kind of practical extras that make it worth keeping. +- The v2.6.0 audio fixes make this the strongest MiniMax H3 roundup item + today. - If you want the simpler starting point, the CORE workflow is still the cleaner local baseline. diff --git a/models/minimax/minimax-h3-seamless-chain-v2/workflow.json b/models/minimax/minimax-h3-seamless-chain-v2/workflow.json index 472b2f1..ccfa8b2 100644 --- a/models/minimax/minimax-h3-seamless-chain-v2/workflow.json +++ b/models/minimax/minimax-h3-seamless-chain-v2/workflow.json @@ -1,3752 +1,3488 @@ -{ - "id": "h3-seamless-chain-v1", - "revision": 0, - "last_node_id": 69, - "last_link_id": 95, - "nodes": [ - { - "id": 28, - "type": "SaveAudio", - "pos": [ - -18.759509512354928, - -544.7346051143835 - ], - "size": [ - 275.2406482742714, - 112 - ], - "flags": {}, - "order": 59, - "mode": 0, - "inputs": [ - { - "name": "audio", - "type": "AUDIO", - "link": 46 - } - ], - "outputs": [ - { - "name": "audio", - "type": "AUDIO", - "slot_index": 0, - "links": [] - } - ], - "title": "SAVE AUDIO (same name, .flac)", - "properties": { - "cnr_id": "comfy-core", - "ver": "0.30.0", - "Node name for S&R": "SaveAudio" - }, - "widgets_values": [ - "audio/H3CHAIN/master" - ] - }, - { - "id": 27, - "type": "SaveVideo", - "pos": [ - -290.81363344046576, - -380.16630402798296 - ], - "size": [ - 547.0835324424006, - 106 - ], - "flags": {}, - "order": 58, - "mode": 0, - "inputs": [ - { - "name": "video", - "type": "VIDEO", - "link": 32 - } - ], - "outputs": [ - { - "name": "video", - "type": "VIDEO", - "slot_index": 0, - "links": [] - } - ], - "title": "SAVE VIDEO", - "properties": { - "cnr_id": "comfy-core", - "ver": "0.30.0", - "Node name for S&R": "SaveVideo" - }, - "widgets_values": [ - "video/H3CHAIN/master", - "auto", - "auto" - ] - }, - { - "id": 35, - "type": "LoadImage", - "pos": [ - -1719.5856894144158, - 1618.5371419139042 - ], - "size": [ - 282.798828125, - 314 - ], - "flags": {}, - "order": 0, - "mode": 0, - "inputs": [], - "outputs": [ - { - "name": "IMAGE", - "type": "IMAGE", - "slot_index": 0, - "links": [ - 56 - ] - }, - { - "name": "MASK", - "type": "MASK", - "slot_index": 1, - "links": [] - } - ], - "title": "BOUNDARY PLATE 2", - "properties": { - "cnr_id": "comfy-core", - "ver": "0.30.0", - "Node name for S&R": "LoadImage" - }, - "widgets_values": [ - "example.png", - "image" - ] - }, - { - "id": 38, - "type": "ImageBatch", - "pos": [ - -1089.809041647822, - 1772.7620089591164 - ], - "size": [ - 140, - 46 - ], - "flags": {}, - "order": 44, - "mode": 0, - "inputs": [ - { - "name": "image1", - "type": "IMAGE", - "link": 55 - }, - { - "name": "image2", - "type": "IMAGE", - "link": 56 - } - ], - "outputs": [ - { - "name": "IMAGE", - "type": "IMAGE", - "slot_index": 0, - "links": [ - 57 - ] - } - ], - "title": "plates +2", - "properties": { - "cnr_id": "comfy-core", - "ver": "0.30.0", - "Node name for S&R": "ImageBatch" - }, - "widgets_values": [] - }, - { - "id": 39, - "type": "ImageBatch", - "pos": [ - -1088.5070180584812, - 1879.97659614565 - ], - "size": [ - 140, - 46 - ], - "flags": {}, - "order": 47, - "mode": 0, - "inputs": [ - { - "name": "image1", - "type": "IMAGE", - "link": 57 - }, - { - "name": "image2", - "type": "IMAGE", - "link": 58 - } - ], - "outputs": [ - { - "name": "IMAGE", - "type": "IMAGE", - "slot_index": 0, - "links": [ - 59 - ] - } - ], - "title": "plates +3", - "properties": { - "cnr_id": "comfy-core", - "ver": "0.30.0", - "Node name for S&R": "ImageBatch" - }, - "widgets_values": [] - }, - { - "id": 37, - "type": "ImageBatch", - "pos": [ - -1089.809041647822, - 1666.1984335672532 - ], - "size": [ - 140, - 46 - ], - "flags": {}, - "order": 39, - "mode": 0, - "inputs": [ - { - "name": "image1", - "type": "IMAGE", - "link": 53 - }, - { - "name": "image2", - "type": "IMAGE", - "link": 54 - } - ], - "outputs": [ - { - "name": "IMAGE", - "type": "IMAGE", - "slot_index": 0, - "links": [ - 55 - ] - } - ], - "title": "plates 0+1", - "properties": { - "cnr_id": "comfy-core", - "ver": "0.30.0", - "Node name for S&R": "ImageBatch" - }, - "widgets_values": [] - }, - { - "id": 41, - "type": "LoadAudio", - "pos": [ - -719.6195655803556, - 1555.24063236239 - ], - "size": [ - 413.28671875, - 136 - ], - "flags": {}, - "order": 1, - "mode": 2, - "inputs": [], - "outputs": [ - { - "name": "AUDIO", - "type": "AUDIO", - "slot_index": 0, - "links": [ - 61 - ] - } - ], - "title": "AUDIO SPINE (optional)", - "properties": { - "cnr_id": "comfy-core", - "ver": "0.30.0", - "Node name for S&R": "LoadAudio" - }, - "widgets_values": [ - "", - null, - null - ] - }, - { - "id": 18, - "type": "VAELoader", - "pos": [ - -1162.0894513803705, - 20.205734485951496 - ], - "size": [ - 210, - 58 - ], - "flags": {}, - "order": 2, - "mode": 0, - "inputs": [], - "outputs": [ - { - "name": "VAE", - "type": "VAE", - "slot_index": 0, - "links": [ - 37 - ] - } - ], - "title": "video VAE", - "properties": { - "cnr_id": "comfy-core", - "ver": "0.30.0", - "Node name for S&R": "VAELoader" - }, - "widgets_values": [ - "minimax_h3_video_vae_fp16.safetensors" - ] - }, - { - "id": 30, - "type": "H3MultishotMemorySampler", - "pos": [ - -712.9886114768343, - -540.9185872134501 - ], - "size": [ - 400, - 1260 - ], - "flags": {}, - "order": 60, - "mode": 0, - "inputs": [ - { - "name": "model", - "type": "MODEL", - "link": 91 - }, - { - "name": "clip", - "type": "CLIP", - "link": 94 - }, - { - "name": "video_vae", - "type": "VAE", - "link": 37 - }, - { - "name": "audio_vae", - "type": "VAE", - "link": 38 - }, - { - "name": "start_image", - "shape": 7, - "type": "IMAGE", - "link": 39 - }, - { - "name": "keyframe_images", - "shape": 7, - "type": "IMAGE", - "link": 60 - }, - { - "name": "guide_audio", - "shape": 7, - "type": "AUDIO", - "link": 61 - }, - { - "name": "reference_images", - "shape": 7, - "type": "IMAGE", - "link": 75 - }, - { - "name": "voice_ref", - "shape": 7, - "type": "AUDIO", - "link": 40 - }, - { - "name": "sampler_override", - "shape": 7, - "type": "STRING", - "link": 49 - }, - { - "name": "scheduler_override", - "shape": 7, - "type": "STRING", - "link": 50 - }, - { - "name": "sigmas", - "shape": 7, - "type": "SIGMAS", - "link": null - }, - { - "name": "reference_video", - "shape": 7, - "type": "IMAGE", - "link": 88 - }, - { - "name": "reference_video_audio", - "shape": 7, - "type": "AUDIO", - "link": 89 - }, - { - "name": "script", - "type": "STRING", - "widget": { - "name": "script" - }, - "link": 71 - }, - { - "name": "shot_count", - "type": "INT", - "widget": { - "name": "shot_count" - }, - "link": 62 - }, - { - "name": "width", - "type": "INT", - "widget": { - "name": "width" - }, - "link": 42 - }, - { - "name": "height", - "type": "INT", - "widget": { - "name": "height" - }, - "link": 43 - }, - { - "name": "frames_per_shot", - "type": "INT", - "widget": { - "name": "frames_per_shot" - }, - "link": 44 - }, - { - "name": "steps", - "type": "INT", - "widget": { - "name": "steps" - }, - "link": 45 - } - ], - "outputs": [ - { - "name": "master_frames", - "type": "IMAGE", - "links": [ - 48 - ] - }, - { - "name": "master_audio", - "type": "AUDIO", - "links": [ - 46, - 47 - ] - }, - { - "name": "shots_rendered", - "type": "INT", - "links": null - }, - { - "name": "video_latents", - "type": "LATENT", - "links": null - }, - { - "name": "audio_latents", - "type": "LATENT", - "links": null - }, - { - "name": "head_frames", - "type": "INT", - "links": null - }, - { - "name": "master_path", - "type": "STRING", - "links": null - } - ], - "properties": { - "Node name for S&R": "H3MultishotMemorySampler", - "h3_widget_values": { - "script": "A static camera sits at the end of the table and frames both of them from the chest up in a two-shot; the framing never changes. Live-action, shallow depth of field, fine 35mm grain. A man in his fifties with close-cropped grey hair, deep lines around the eyes and a heavy salt-and-pepper moustache, wearing a faded blue mechanic's jacket over a white t-shirt sits on one side of a late-night roadside diner booth: cracked red vinyl seats, a scratched formica table with two chipped white coffee mugs and a steel napkin dispenser, a rain-streaked window behind them reflecting an empty parking lot, and one warm pendant lamp directly above the table as the only light, the rest of the diner falling away into darkness. Across from him sits a woman in her late twenties with dark curly hair tied back, round wire-frame glasses and chipped green nail polish, wearing an oversized cream cable-knit sweater. He leans forward on his forearms, turning his mug slowly on the table, and the man in the faded blue mechanic's jacket says, \"So let me get this straight. The whole street goes dark for six minutes - traffic lights, the gas station, everything - and your shop keeps its lights on.\" He settles back against the vinyl with both hands around his mug and waits, watching her.\n---\nA static camera sits at the end of the table and frames both of them from the chest up in a two-shot; the framing never changes. Live-action, shallow depth of field, fine 35mm grain. A man in his fifties with close-cropped grey hair, deep lines around the eyes and a heavy salt-and-pepper moustache, wearing a faded blue mechanic's jacket over a white t-shirt sits on one side of a late-night roadside diner booth: cracked red vinyl seats, a scratched formica table with two chipped white coffee mugs and a steel napkin dispenser, a rain-streaked window behind them reflecting an empty parking lot, and one warm pendant lamp directly above the table as the only light, the rest of the diner falling away into darkness. Across from him sits a woman in her late twenties with dark curly hair tied back, round wire-frame glasses and chipped green nail polish, wearing an oversized cream cable-knit sweater. Both of them sit exactly as they were, hands resting on the table, the mugs untouched. For the first couple of seconds neither speaks - one of them shifts their weight slightly and breathes - and only then the woman in the cream cable-knit sweater says, \"Not just on. Brighter. The bulbs over the workbench went so white I had to look away. And the meter outside was spinning backwards.\" She settles back with both hands flat on the table and waits, watching him.\n---\nA static camera sits at the end of the table and frames both of them from the chest up in a two-shot; the framing never changes. Live-action, shallow depth of field, fine 35mm grain. A man in his fifties with close-cropped grey hair, deep lines around the eyes and a heavy salt-and-pepper moustache, wearing a faded blue mechanic's jacket over a white t-shirt sits on one side of a late-night roadside diner booth: cracked red vinyl seats, a scratched formica table with two chipped white coffee mugs and a steel napkin dispenser, a rain-streaked window behind them reflecting an empty parking lot, and one warm pendant lamp directly above the table as the only light, the rest of the diner falling away into darkness. Across from him sits a woman in her late twenties with dark curly hair tied back, round wire-frame glasses and chipped green nail polish, wearing an oversized cream cable-knit sweater. Both of them sit exactly as they were, hands resting on the table, the mugs untouched. For the first couple of seconds neither speaks - one of them shifts their weight slightly and breathes - and only then the man in the faded blue mechanic's jacket says, \"Meters do not spin backwards, and buildings do not get brighter when the grid drops. Somebody crossed a line upstream, and you will get a confusing bill.\" He settles back against the vinyl with both hands around his mug and waits, watching her.\n---\nA static camera sits at the end of the table and frames both of them from the chest up in a two-shot; the framing never changes. Live-action, shallow depth of field, fine 35mm grain. A man in his fifties with close-cropped grey hair, deep lines around the eyes and a heavy salt-and-pepper moustache, wearing a faded blue mechanic's jacket over a white t-shirt sits on one side of a late-night roadside diner booth: cracked red vinyl seats, a scratched formica table with two chipped white coffee mugs and a steel napkin dispenser, a rain-streaked window behind them reflecting an empty parking lot, and one warm pendant lamp directly above the table as the only light, the rest of the diner falling away into darkness. Across from him sits a woman in her late twenties with dark curly hair tied back, round wire-frame glasses and chipped green nail polish, wearing an oversized cream cable-knit sweater. Both of them sit exactly as they were, hands resting on the table, the mugs untouched. For the first couple of seconds neither speaks - one of them shifts their weight slightly and breathes - and only then the woman in the cream cable-knit sweater says, \"Then come and look at it yourself. Tomorrow, early, before the utility crew pulls the panel apart. There is nothing upstream of that meter but road.\" She settles back with both hands flat on the table and waits, watching him.", - "shot_count": 0, - "width": 768, - "height": 1344, - "frames_per_shot": 243, - "seed": 721031366213963, - "control_after_generate": "randomize", - "steps": 20, - "seed_per_shot": true, - "memory_frames": 0, - "anchor_frames": 1, - "sampler_name": "euler", - "scheduler": "beta57", - "bank_pinned": 1, - "chain_gain_control": "flatten", - "continuity": "context_pin", - "bank_clip_frames": 22, - "color_level": "off", - "join_anchor_noise": 0, - "join_blend": true, - "handoff_release": 0, - "bank_ref_noise": 0, - "end_anchor": false, - "join_fx": "off", - "audio_lock": false, - "handoff_taper": 0, - "handoff_depth": "block", - "self_anchor_voice": true, - "reference_image_size": "match", - "preview_first_shot": true, - "output_scale": 1, - "save_every_shot": false, - "upscale_model_name": "(none)", - "master_normalize": "luma+contrast", - "pin_frames": "22", - "pin_noise": 0.05, - "pin_renorm": true, - "reference_subjects": "", - "low_ram_master": false - } - }, - "widgets_values": [ - "A static camera sits at the end of the table and frames both of them from the chest up in a two-shot; the framing never changes. Live-action, shallow depth of field, fine 35mm grain. A man in his fifties with close-cropped grey hair, deep lines around the eyes and a heavy salt-and-pepper moustache, wearing a faded blue mechanic's jacket over a white t-shirt sits on one side of a late-night roadside diner booth: cracked red vinyl seats, a scratched formica table with two chipped white coffee mugs and a steel napkin dispenser, a rain-streaked window behind them reflecting an empty parking lot, and one warm pendant lamp directly above the table as the only light, the rest of the diner falling away into darkness. Across from him sits a woman in her late twenties with dark curly hair tied back, round wire-frame glasses and chipped green nail polish, wearing an oversized cream cable-knit sweater. He leans forward on his forearms, turning his mug slowly on the table, and the man in the faded blue mechanic's jacket says, \"So let me get this straight. The whole street goes dark for six minutes - traffic lights, the gas station, everything - and your shop keeps its lights on.\" He settles back against the vinyl with both hands around his mug and waits, watching her.\n---\nA static camera sits at the end of the table and frames both of them from the chest up in a two-shot; the framing never changes. Live-action, shallow depth of field, fine 35mm grain. A man in his fifties with close-cropped grey hair, deep lines around the eyes and a heavy salt-and-pepper moustache, wearing a faded blue mechanic's jacket over a white t-shirt sits on one side of a late-night roadside diner booth: cracked red vinyl seats, a scratched formica table with two chipped white coffee mugs and a steel napkin dispenser, a rain-streaked window behind them reflecting an empty parking lot, and one warm pendant lamp directly above the table as the only light, the rest of the diner falling away into darkness. Across from him sits a woman in her late twenties with dark curly hair tied back, round wire-frame glasses and chipped green nail polish, wearing an oversized cream cable-knit sweater. Both of them sit exactly as they were, hands resting on the table, the mugs untouched. For the first couple of seconds neither speaks - one of them shifts their weight slightly and breathes - and only then the woman in the cream cable-knit sweater says, \"Not just on. Brighter. The bulbs over the workbench went so white I had to look away. And the meter outside was spinning backwards.\" She settles back with both hands flat on the table and waits, watching him.\n---\nA static camera sits at the end of the table and frames both of them from the chest up in a two-shot; the framing never changes. Live-action, shallow depth of field, fine 35mm grain. A man in his fifties with close-cropped grey hair, deep lines around the eyes and a heavy salt-and-pepper moustache, wearing a faded blue mechanic's jacket over a white t-shirt sits on one side of a late-night roadside diner booth: cracked red vinyl seats, a scratched formica table with two chipped white coffee mugs and a steel napkin dispenser, a rain-streaked window behind them reflecting an empty parking lot, and one warm pendant lamp directly above the table as the only light, the rest of the diner falling away into darkness. Across from him sits a woman in her late twenties with dark curly hair tied back, round wire-frame glasses and chipped green nail polish, wearing an oversized cream cable-knit sweater. Both of them sit exactly as they were, hands resting on the table, the mugs untouched. For the first couple of seconds neither speaks - one of them shifts their weight slightly and breathes - and only then the man in the faded blue mechanic's jacket says, \"Meters do not spin backwards, and buildings do not get brighter when the grid drops. Somebody crossed a line upstream, and you will get a confusing bill.\" He settles back against the vinyl with both hands around his mug and waits, watching her.\n---\nA static camera sits at the end of the table and frames both of them from the chest up in a two-shot; the framing never changes. Live-action, shallow depth of field, fine 35mm grain. A man in his fifties with close-cropped grey hair, deep lines around the eyes and a heavy salt-and-pepper moustache, wearing a faded blue mechanic's jacket over a white t-shirt sits on one side of a late-night roadside diner booth: cracked red vinyl seats, a scratched formica table with two chipped white coffee mugs and a steel napkin dispenser, a rain-streaked window behind them reflecting an empty parking lot, and one warm pendant lamp directly above the table as the only light, the rest of the diner falling away into darkness. Across from him sits a woman in her late twenties with dark curly hair tied back, round wire-frame glasses and chipped green nail polish, wearing an oversized cream cable-knit sweater. Both of them sit exactly as they were, hands resting on the table, the mugs untouched. For the first couple of seconds neither speaks - one of them shifts their weight slightly and breathes - and only then the woman in the cream cable-knit sweater says, \"Then come and look at it yourself. Tomorrow, early, before the utility crew pulls the panel apart. There is nothing upstream of that meter but road.\" She settles back with both hands flat on the table and waits, watching him.", - 0, - 768, - 1344, - 243, - 721031366213963, - "randomize", - 20, - true, - 0, - 1, - "euler", - "beta57", - 1, - "flatten", - "context_pin", - 22, - "off", - 0, - true, - 0, - 0, - false, - "off", - false, - 0, - "block", - true, - "match", - true, - 1, - false, - "(none)", - "luma+contrast", - "22", - 0.05, - true, - "", - false - ] - }, - { - "id": 17, - "type": "H3LoraStack", - "pos": [ - -1143.486312807028, - -252.27040450310173 - ], - "size": [ - 386.62422412583066, - 226 - ], - "flags": {}, - "order": 43, - "mode": 0, - "inputs": [ - { - "name": "model", - "type": "MODEL", - "link": 2 - } - ], - "outputs": [ - { - "name": "model", - "type": "MODEL", - "slot_index": 0, - "links": [ - 3, - 4 - ] - } - ], - "title": "LoRA stack (inert until a slot is set)", - "properties": { - "Node name for S&R": "H3LoraStack" - }, - "widgets_values": [ - "None", - 0, - "None", - 1, - "None", - 1, - "None", - 1 - ] - }, - { - "id": 16, - "type": "H3ClipLoaderAny", - "pos": [ - -1143.4863128070278, - -405.09634671059996 - ], - "size": [ - 385.933458933143, - 106 - ], - "flags": {}, - "order": 3, - "mode": 0, - "inputs": [], - "outputs": [ - { - "name": "CLIP", - "type": "CLIP", - "slot_index": 0, - "links": [ - 92 - ] - } - ], - "title": "text encoder", - "properties": { - "Node name for S&R": "H3ClipLoaderAny" - }, - "widgets_values": [ - "qwen3vl_32b_minimax_h3_nvfp4_awq.safetensors", - "minimax", - "(auto)" - ] - }, - { - "id": 33, - "type": "LoadImage", - "pos": [ - -1722.2680078279002, - 1252.7361035246017 - ], - "size": [ - 282.798828125, - 314 - ], - "flags": {}, - "order": 4, - "mode": 0, - "inputs": [], - "outputs": [ - { - "name": "IMAGE", - "type": "IMAGE", - "slot_index": 0, - "links": [ - 53 - ] - }, - { - "name": "MASK", - "type": "MASK", - "slot_index": 1, - "links": [] - } - ], - "title": "BOUNDARY PLATE 0", - "properties": { - "cnr_id": "comfy-core", - "ver": "0.30.0", - "Node name for S&R": "LoadImage" - }, - "widgets_values": [ - "example.png", - "image" - ] - }, - { - "id": 14, - "type": "H3AnySwitch", - "pos": [ - -1362.3228245783803, - 1056.1629296808258 - ], - "size": [ - 159.7818359375, - 66 - ], - "flags": { - "collapsed": true - }, - "order": 55, - "mode": 0, - "inputs": [ - { - "name": "use_on", - "type": "BOOLEAN", - "link": 14 - }, - { - "name": "off_path", - "shape": 7, - "type": "*", - "link": 12 - }, - { - "name": "on_path", - "shape": 7, - "type": "*", - "link": 13 - } - ], - "outputs": [ - { - "name": "value", - "type": "*", - "slot_index": 0, - "links": [ - 90 - ] - } - ], - "title": "gate: block_cache", - "properties": { - "Node name for S&R": "H3AnySwitch" - }, - "widgets_values": [] - }, - { - "id": 10, - "type": "H3AnySwitch", - "pos": [ - -1715.15979269075, - 1057.1396536438865 - ], - "size": [ - 140, - 66 - ], - "flags": { - "collapsed": true - }, - "order": 49, - "mode": 0, - "inputs": [ - { - "name": "use_on", - "type": "BOOLEAN", - "link": 6 - }, - { - "name": "off_path", - "shape": 7, - "type": "*", - "link": 4 - }, - { - "name": "on_path", - "shape": 7, - "type": "*", - "link": 5 - } - ], - "outputs": [ - { - "name": "value", - "type": "*", - "slot_index": 0, - "links": [ - 7, - 8 - ] - } - ], - "title": "gate: sol_attn", - "properties": { - "Node name for S&R": "H3AnySwitch" - }, - "widgets_values": [] - }, - { - "id": 12, - "type": "H3AnySwitch", - "pos": [ - -1539.5714839176276, - 1057.818763618459 - ], - "size": [ - 141.905859375, - 66 - ], - "flags": { - "collapsed": true - }, - "order": 53, - "mode": 0, - "inputs": [ - { - "name": "use_on", - "type": "BOOLEAN", - "link": 10 - }, - { - "name": "off_path", - "shape": 7, - "type": "*", - "link": 8 - }, - { - "name": "on_path", - "shape": 7, - "type": "*", - "link": 9 - } - ], - "outputs": [ - { - "name": "value", - "type": "*", - "slot_index": 0, - "links": [ - 11, - 12 - ] - } - ], - "title": "gate: chunk_ffn", - "properties": { - "Node name for S&R": "H3AnySwitch" - }, - "widgets_values": [] - }, - { - "id": 6, - "type": "JoyEcho_LLMEnhance", - "pos": [ - -1729.7353549979036, - -540.6946733729105 - ], - "size": [ - 539.473041617184, - 406 - ], - "flags": {}, - "order": 48, - "mode": 0, - "inputs": [ - { - "name": "story_idea", - "type": "STRING", - "widget": { - "name": "story_idea" - }, - "link": 67 - }, - { - "name": "num_shots", - "shape": 7, - "type": "INT", - "widget": { - "name": "num_shots" - }, - "link": 63 - }, - { - "name": "num_frames", - "shape": 7, - "type": "INT", - "widget": { - "name": "num_frames" - }, - "link": 26 - } - ], - "outputs": [ - { - "name": "prompts_json", - "type": "STRING", - "slot_index": 0, - "links": [ - 27, - 71 - ] - } - ], - "title": "REWRITER (story -> chained shot prompts)", - "properties": { - "aux_id": "RealRebelAI/ComfyUI_JoyAI_Echo_GGUF_Nodes", - "Node name for S&R": "JoyEcho_LLMEnhance", - "ver": "0d9e32fcd2d255a16604368fcaa1875c380c7f3b", - "je_widget_values": { - "story_idea": "Two people talk across a booth in a late-night roadside diner about an impossible power outage: the whole street went dark for six minutes but her repair shop kept running, its lights got brighter, and the meter outside ran backwards. He is a sceptical man in his fifties in a faded blue mechanic's jacket; she is a woman in her late twenties in an oversized cream sweater and round wire-frame glasses. One warm pendant lamp above the table is the only light, rain on the window behind them, static camera at the end of the table holding both of them in a two-shot the whole time. Four shots, one continuous conversation, no camera cuts.", - "mode": "long_story (multi-shot)", - "api_key": "", - "system_prompt": "", - "base_url": "http://localhost:11434/v1", - "model_name": "qwen3:14b", - "num_shots": 4, - "temperature": 0.7, - "num_frames": 0, - "fps": 24, - "model_name_custom": "", - "join_style": "continuous take (chained, no cuts)", - "unload_model_after": true - } - }, - "widgets_values": [ - "Two people talk across a booth in a late-night roadside diner about an impossible power outage: the whole street went dark for six minutes but her repair shop kept running, its lights got brighter, and the meter outside ran backwards. He is a sceptical man in his fifties in a faded blue mechanic's jacket; she is a woman in her late twenties in an oversized cream sweater and round wire-frame glasses. One warm pendant lamp above the table is the only light, rain on the window behind them, static camera at the end of the table holding both of them in a two-shot the whole time. Four shots, one continuous conversation, no camera cuts.", - "long_story (multi-shot)", - "", - "", - "http://localhost:11434/v1", - "qwen3:14b", - 4, - 0.7, - 0, - 24, - "", - "continuous take (chained, no cuts)", - true - ] - }, - { - "id": 51, - "type": "ImageBatch", - "pos": [ - -2582.009842829537, - 1136.0292081407952 - ], - "size": [ - 140, - 46 - ], - "flags": { - "collapsed": true - }, - "order": 35, - "mode": 0, - "inputs": [ - { - "name": "image1", - "type": "IMAGE", - "link": 72 - }, - { - "name": "image2", - "type": "IMAGE", - "link": 73 - } - ], - "outputs": [ - { - "name": "IMAGE", - "type": "IMAGE", - "links": [ - 82 - ] - } - ], - "title": "references 1+2", - "properties": { - "cnr_id": "comfy-core", - "ver": "0.30.0", - "Node name for S&R": "ImageBatch" - }, - "widgets_values": [] - }, - { - "id": 49, - "type": "LoadImage", - "pos": [ - -2583.4862919122725, - 1261.2350651000709 - ], - "size": [ - 300.0083984375, - 314 - ], - "flags": {}, - "order": 5, - "mode": 0, - "inputs": [], - "outputs": [ - { - "name": "IMAGE", - "type": "IMAGE", - "links": [ - 72 - ] - }, - { - "name": "MASK", - "type": "MASK", - "links": [] - } - ], - "title": "REFERENCE 1 (ref2va identity)", - "properties": { - "cnr_id": "comfy-core", - "ver": "0.30.0", - "Node name for S&R": "LoadImage" - }, - "widgets_values": [ - "example.png", - "image" - ] - }, - { - "id": 50, - "type": "LoadImage", - "pos": [ - -2583.5884958767797, - 1610.1483776240293 - ], - "size": [ - 302.8521484375, - 314 - ], - "flags": {}, - "order": 6, - "mode": 0, - "inputs": [], - "outputs": [ - { - "name": "IMAGE", - "type": "IMAGE", - "links": [ - 73 - ] - }, - { - "name": "MASK", - "type": "MASK", - "links": [] - } - ], - "title": "REFERENCE 2 (ref2va identity)", - "properties": { - "cnr_id": "comfy-core", - "ver": "0.30.0", - "Node name for S&R": "LoadImage" - }, - "widgets_values": [ - "example.png", - "image" - ] - }, - { - "id": 57, - "type": "ImageBatch", - "pos": [ - -2204.315668416005, - 1132.1128904695718 - ], - "size": [ - 234.61484375, - 46 - ], - "flags": { - "collapsed": true - }, - "order": 63, - "mode": 0, - "inputs": [ - { - "name": "image1", - "type": "IMAGE", - "link": 77 - }, - { - "name": "image2", - "type": "IMAGE", - "link": 78 - } - ], - "outputs": [ - { - "name": "IMAGE", - "type": "IMAGE", - "slot_index": null, - "links": [ - 79 - ] - } - ], - "title": "auto refs 1+2", - "properties": { - "cnr_id": "comfy-core", - "ver": "0.32.0", - "Node name for S&R": "ImageBatch" - }, - "widgets_values": [] - }, - { - "id": 60, - "type": "PrimitiveBoolean", - "pos": [ - -2239.719668751282, - 1201.2431022131907 - ], - "size": [ - 472.335546875, - 58 - ], - "flags": {}, - "order": 7, - "mode": 0, - "inputs": [], - "outputs": [ - { - "name": "BOOLEAN", - "type": "BOOLEAN", - "slot_index": null, - "links": [ - 83 - ] - } - ], - "title": "USE AUTO REFS (off = the two manual LoadImage slots)", - "properties": { - "cnr_id": "comfy-core", - "ver": "0.32.0", - "Node name for S&R": "PrimitiveBoolean" - }, - "widgets_values": [ - false - ] - }, - { - "id": 58, - "type": "ImageBatch", - "pos": [ - -2202.246562478545, - 1166.043343639111 - ], - "size": [ - 234.61484375, - 46 - ], - "flags": { - "collapsed": true - }, - "order": 64, - "mode": 0, - "inputs": [ - { - "name": "image1", - "type": "IMAGE", - "link": 79 - }, - { - "name": "image2", - "type": "IMAGE", - "link": 80 - } - ], - "outputs": [ - { - "name": "IMAGE", - "type": "IMAGE", - "slot_index": null, - "links": [ - 81 - ] - } - ], - "title": "auto refs +3", - "properties": { - "cnr_id": "comfy-core", - "ver": "0.32.0", - "Node name for S&R": "ImageBatch" - }, - "widgets_values": [] - }, - { - "id": 56, - "type": "H3AutoRefs", - "pos": [ - -2247.312640975518, - 1299.0918739796418 - ], - "size": [ - 481.7271484375, - 354 - ], - "flags": {}, - "order": 62, - "mode": 0, - "inputs": [ - { - "name": "prompt_text", - "type": "STRING", - "link": 76 - } - ], - "outputs": [ - { - "name": "ref_1", - "type": "IMAGE", - "slot_index": null, - "links": [ - 77 - ] - }, - { - "name": "ref_2", - "type": "IMAGE", - "slot_index": null, - "links": [ - 78 - ] - }, - { - "name": "ref_3", - "type": "IMAGE", - "slot_index": null, - "links": [ - 80 - ] - }, - { - "name": "ref_4", - "type": "IMAGE", - "slot_index": null, - "links": null - }, - { - "name": "ref_5", - "type": "IMAGE", - "slot_index": null, - "links": null - }, - { - "name": "ref_6", - "type": "IMAGE", - "slot_index": null, - "links": null - }, - { - "name": "ref_7", - "type": "IMAGE", - "slot_index": null, - "links": null - }, - { - "name": "ref_8", - "type": "IMAGE", - "slot_index": null, - "links": null - }, - { - "name": "ref_9", - "type": "IMAGE", - "slot_index": null, - "links": null - }, - { - "name": "prompt_out", - "type": "STRING", - "slot_index": null, - "links": null - }, - { - "name": "report", - "type": "STRING", - "slot_index": null, - "links": null - } - ], - "title": "AUTO REFS - scans the script for character folders under refs_root", - "properties": { - "Node name for S&R": "H3AutoRefs" - }, - "widgets_values": [ - 3, - "", - "", - "", - "error" - ] - }, - { - "id": 15, - "type": "H3ModelLoaderAny", - "pos": [ - -1138.2782184496637, - -541.184899110452 - ], - "size": [ - 378.86105961417525, - 82 - ], - "flags": {}, - "order": 38, - "mode": 0, - "inputs": [ - { - "name": "activation_reserve_gb", - "shape": 7, - "type": "FLOAT", - "widget": { - "name": "activation_reserve_gb" - }, - "link": 1 - } - ], - "outputs": [ - { - "name": "MODEL", - "type": "MODEL", - "slot_index": 0, - "links": [ - 2 - ] - } - ], - "title": "H3 model", - "properties": { - "Node name for S&R": "H3ModelLoaderAny" - }, - "widgets_values": [ - "MiniMax-H3-ref2va-curve-Q5_1.gguf", - 0 - ] - }, - { - "id": 61, - "type": "LoadVideo", - "pos": [ - -3009.7496777868246, - 1149.1346505920278 - ], - "size": [ - 326.4498046875, - 82 - ], - "flags": {}, - "order": 8, - "mode": 2, - "inputs": [], - "outputs": [ - { - "name": "VIDEO", - "type": "VIDEO", - "links": [ - 85 - ] - } - ], - "title": "LOAD VIDEO (your reference clip)", - "properties": { - "cnr_id": "comfy-core", - "ver": "0.32.0", - "Node name for S&R": "LoadVideo" - }, - "widgets_values": [ - "", - "image" - ] - }, - { - "id": 62, - "type": "GetVideoComponents", - "pos": [ - -2998.9401148790407, - 1286.518721954194 - ], - "size": [ - 199.3619140625, - 86 - ], - "flags": {}, - "order": 36, - "mode": 2, - "inputs": [ - { - "name": "video", - "type": "VIDEO", - "link": 85 - } - ], - "outputs": [ - { - "name": "images", - "type": "IMAGE", - "links": [ - 86 - ] - }, - { - "name": "audio", - "type": "AUDIO", - "links": [ - 87 - ] - }, - { - "name": "fps", - "type": "FLOAT", - "links": [] - }, - { - "name": "bit_depth", - "type": "INT", - "links": [] - } - ], - "title": "split into frames + audio", - "properties": { - "cnr_id": "comfy-core", - "ver": "0.32.0", - "Node name for S&R": "GetVideoComponents" - }, - "widgets_values": [] - }, - { - "id": 63, - "type": "H3ReferenceVideo", - "pos": [ - -3015.697402650093, - 1433.3478398754492 - ], - "size": [ - 390.4751953125, - 146 - ], - "flags": {}, - "order": 42, - "mode": 2, - "inputs": [ - { - "name": "frames", - "type": "IMAGE", - "link": 86 - }, - { - "name": "audio", - "shape": 7, - "type": "AUDIO", - "link": 87 - } - ], - "outputs": [ - { - "name": "ref_frames", - "type": "IMAGE", - "links": [ - 88 - ] - }, - { - "name": "ref_audio", - "type": "AUDIO", - "links": [ - 89 - ] - }, - { - "name": "info", - "type": "STRING", - "links": [] - } - ], - "title": "H3 REFERENCE VIDEO (trim - keep it short)", - "properties": { - "Node name for S&R": "H3ReferenceVideo" - }, - "widgets_values": [ - 0, - 3, - 24 - ] - }, - { - "id": 64, - "type": "Note", - "pos": [ - -3011.3748836783366, - 1632.678905130506 - ], - "size": [ - 387.359018006352, - 180.70520039327334 - ], - "flags": {}, - "order": 9, - "mode": 0, - "inputs": [], - "outputs": [], - "title": "V2V REFERENCE", - "properties": { - "Node name for S&R": "Note" - }, - "widgets_values": [ - "VIDEO REFERENCE (optional - ships muted)\n\nHand it a video clip and your render copies that clip's look, room and framing (NOT its motion). Community tip: load a single IMAGE here and add \"Start Frame is