MiniMax H3 Image to Video
Prompt in, video-plus-audio latent out
- clip
- vae
- first_frame
- last_frame
- positive
- LATENT
MiniMax H3 is the newest heavyweight in ComfyUI core - an open-weight, multimodal video model from the Hailuo people, added in August 2026. Most local video models give you silent frames and you bolt audio on afterwards. H3 is different: it's built to generate picture and soundtrack from one denoising pass. This node is its front door. You type a prompt, optionally hand it a first and/or last frame, and it hands you the two things your sampler needs - a positive CONDITIONING and a LATENT - with the audio stream already packed inside the latent.
What it actually does
Think of it as the conditioning stage of a text-to-video / image-to-video pipeline. It does three jobs in one pass:
- It tokenizes your prompt through the H3 CLIP (a Qwen3-VL-32B text encoder) into conditioning.
- It builds the empty "AV latent" - a video stream plus an audio stream in a single nested tensor. That's the
LATENToutput, and it's why there's no separate audio stage in your graph: the audio is already in there. - If you fed it keyframes, it VAE-encodes them and pins them onto the conditioning as guides that get re-injected at every sampling step, never denoised.
The video side works like you'd expect: a diffusion transformer denoises frames. The audio side runs its own shifted schedule under the hood - you don't manage it, the model does.
The inputs that matter
Most of the schema is boilerplate, but two fields deserve attention:
- length - Frame count at 24 fps, snapped up to the model's 17k+5 grid. 124 is about 5 seconds. The trained range is roughly 124–362 frames; beyond that is untested and quality wanders. Ask for 120 and you'll get the next valid grid number back, so don't be surprised when the output runs a frame or two longer than you asked.
- first_frame / last_frame - Optional images. The first frame is stretched to the canvas (the "geometry anchor"), the last frame is cover-cropped (the "follower"). Feed both and you get a video that starts on one image and lands on another; feed just
first_frameand you have classic image-to-video.
width/height default to 1344×768 and must be multiples of 32.
Wiring it up
Both outputs feed the sampler: positive → KSampler's positive input, LATENT → its latent input. The node itself loads nothing - it consumes the clip and vae from wherever you loaded the H3 checkpoint (the model lives on HuggingFace as MiniMaxAI/MiniMax-H3; load it with Comfy's normal loaders and the structure is auto-detected). The flow-shift defaults for the optional ModelSamplingMiniMaxH3 patch (12/3) are already baked into the checkpoint, so you don't need it unless you want to tune.
Where people get burned
- Length surprises. Not a bug - it's the frame grid. Read the tooltip, expect snapping.
- New-model rough edges. This shipped weeks ago as of writing. If a sampler misbehaves, try another - H3's audio schedule made the early samplers unhappy, and the fix history in the repo is real.
- Don't look for reference identity here. For character consistency, the sibling
MiniMax H3 Reference to Videonode is the one with reference images, clips and audio. This node is plain text-plus-keyframes.
The bottom line: if you want to try the most interesting open video model of the summer, this is the node that gets your prompt into it - video and audio, one pass, one graph.
Inputs (8)
| Name | Type | Default | Description |
|---|---|---|---|
| clip | CLIP | — | |
| vae | VAE | — | |
| prompt | STRING | — | |
| width | INT | 134432–16384 | — |
| height | INT | 76832–16384 | — |
| length | INT | 1245–3600 | Frame count at 24 fps, snapped up to the model's 17k+5 grid (124 = ~5s; trained range is ~124-362, longer is untested) |
| first_frameopt | IMAGE | — | |
| last_frameopt | IMAGE | — |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| positive | CONDITIONING | — |
| LATENT | LATENT | — |