H3 Relay · Generate Shot
The node that actually makes the H3 video — and lets you approve it before paying for finishing
- h3_model
- sequence
- first_frame
- last_frame
- reference_image_1
- reference_image_2
- reference_image_3
- additional_reference_images
- reference_video
- reference_video_audio
- reference_audio
- sequence
- video
- video_path
- status
Generate Shot is where the actual MiniMax H3 inference happens. Everything else in H3 Relay is loaders, patchers, enhancers, and assembly plumbing; this is the node that takes your model bundle and your continuation state and produces one native-resolution H3 shot with audio. If you only remember one thing about it, make it this: run the raw shot first, review it, and only then run LTX enhancement and interpolation. That approve-before-you-pay-for-finishing loop is the entire philosophy of the pack, and it's what saves you from burning LTX inference on shots you were going to delete anyway.
The inputs that matter
Required inputs are the h3_model bundle (from the H3 or Hybrid loader, run through Attention if you want), the sequence state from Sequence Start, the shot-specific prompt (connect a multiline text node - the tooltip is explicit that this is shot direction, not global), a seed, duration_seconds, h3_steps, output_crf, and ref_image_size (match or max).
Three of those deserve a closer look:
- duration_seconds - rounded upward to MiniMax H3's valid
5+17kframe grid. Ask for 5.2s and you'll get the next valid duration. Also note H3's sliding history follows a 17k+1 temporal grid, and overlap choices onSequence Start(18/35/52/69 frames) trade carried-over context against delivered duration. - output_crf - H.264 quality for this shot's cached review/assembly segment. The tooltip is blunt: this is not an H3 model parameter. It only controls the cached H.264, so changing it re-encodes a variant without repeating inference.
- ref_image_size -
matchkeeps reference images at the H3 resolution;maxlets a larger reference drive the size. Leave it onmatchunless you know why you want the other.
The optional inputs are where H3's strengths show: first_frame/last_frame for strict bookends, up to three reference_image_* sockets, plus reference_video, reference_video_audio, and reference_audio for I2V/V2V-style conditioning. shot_id is a stable identifier - leave blank and you get shot_0001, shot_0002, and so on automatically.
Outputs are sequence (the continuation state, wired to the next Generate Shot), video, video_path, and status.
How the audio trick works
H3 generates native audio, and here's a subtlety the pack handles for you: the checkpoint MP4 is picture-only, and the lossless WAV stays separate. Generate Shot stream-copies the checkpoint picture and muxes the WAV into a dedicated raw preview MP4, so the VIDEO output and any connected core Save Video node get audio without re-encoding the H3 picture. Good engineering, invisible to you unless you go digging in the output files.
Continuation semantics
Raw H3 continuation depends only on accepted raw H3 checkpoints - it never needs the LTX or interpolation models loaded. That's what makes the staged pipeline memory-bounded: an H3-only stage can run with just the H3 model family resident. Each shot's accepted state is written to a content-addressed disk manifest, so you can restart ComfyUI mid-project and pick up exactly where you left off, and a cache hit won't even materialize checkpoint weights on the GPU.
Install via ComfyUI Manager (H3 Relay) or clone the repo into custom_nodes. Needs ComfyUI 0.32.0+, FFmpeg on PATH, and the H3 model files (FL2VA/Ref2VA int8, Qwen3-VL 32B encoder, video/audio VAEs) from MODELS.md. And the usual license gate: MiniMax H3's community license excludes the US, EU, UK, and Korea - check before downloading.
Inputs (18)
| Name | Type | Default | Description |
|---|---|---|---|
| h3_model | H3_RELAY_MODEL | — | |
| sequence | H3_RELAY_SEQUENCE | — | |
| prompt | STRING | — | |
| seed | INT | 4242420–18446744073709550000 | — |
| duration_seconds | FLOAT | 5.001–15 | Rounded upward to MiniMax H3's valid 5+17k frame grid. |
| h3_steps | INT | 161–100 | Sampling steps for standard H3 profiles. FastH3 VSA Profile always uses its trained four-forward schedule. |
| output_crf | INT | 180–51 | H.264 quality for this shot's cached review/assembly segment. This is not an H3 model parameter. |
| ref_image_size | COMBO | match | 2 options: match, max |
| shot_idopt | STRING | Optional stable sequence identifier. Leave blank to assign shot_0001, shot_0002, and so on automatically. | |
| first_frameopt | IMAGE | — | |
| last_frameopt | IMAGE | — | |
| reference_image_1opt | IMAGE | — | |
| reference_image_2opt | IMAGE | — | |
| reference_image_3opt | IMAGE | — | |
| additional_reference_imagesopt | COMFY_AUTOGROW_V3 | — | |
| reference_videoopt | IMAGE | — | |
| reference_video_audioopt | AUDIO | — | |
| reference_audioopt | AUDIO | — |
Outputs (4)
| Name | Type | Description |
|---|---|---|
| sequence | H3_RELAY_SEQUENCE | — |
| video | VIDEO | — |
| video_path | STRING | — |
| status | STRING | — |