MiniMax H3 Guided Continuation Window
Stretching a MiniMax H3 clip past its 15-second limit starts here
- previous_av_latent
- latent
- window_length
- overlap_video_tokens
- overlap_audio_tokens
- transition_video_tokens
- transition_audio_tokens
MiniMax H3 is the 33B open-weight video model with native stereo audio, and it's great - right up until you need a scene longer than its ~15-second ceiling. That's the wall every H3 user eventually hits. This node is the first step over it: it plans the next chunk of your clip, before anything has been sampled.
It comes from ttulttul's ComfyUI-Minimax-H3-Continuation pack, which is a three-node set designed around ComfyUI's native H3 support. There's no patched model, no VAE round trip, no API call - the pack only rearranges latents that ComfyUI already produces.
What it actually does
Feed it your completed initial H3 latent, and it allocates a fresh, all-zero AV target that's deliberately longer than the frames you want to see. The leading part is the hidden overlap - motion context that will get sampled and then thrown away. The trailing part is your visible extension, the frames you actually keep.
Why the overlap at all? Because the previous clip's ending needs somewhere to anchor. A sibling node in the pack injects that ending as a native guide, the overlap is where it lands, and once sampling is done the overlap is discarded and only the new suffix survives. Think of it as scaffolding: useful while you build, removed afterward.
The two numbers that matter
overlap_frames(default 22) - hidden context span. It has to satisfy the model's own17k + 5video-grid rule, which is why it's capped at a minimum of 5 and steps by 17.extension_frames(default 119) - the visible new frames, and it must be a multiple of 17. At 24 fps, 119 frames is about five seconds.
Those defaults aren't the author being cute; they're the model's native temporal grid. H3's video latent doesn't tile by single frames - it works in 17-frame groups. 22 + 119 = 141, and that's exactly what the window_length output reports.
Outputs and how to wire them
The outputs are the connective tissue for the whole pack, and there are more of them than a typical node. The ones you actually touch:
latent- the fresh unmasked target. Feed it to your continuation sampler's latent input.window_length- plug this into the extension MiniMax H3 Image to Video node'slengthinput. This is the wire people forget, and the mismatch is how you get a conditioning length that doesn't match your target.overlap_video_tokensandoverlap_audio_tokens- small ints that describe the hidden overlap in the model's own token units (22 frames is 7 video tokens; the audio count is 36 or 37 depending on where you are on the global 40 Hz timeline). Wire them into the guide and append nodes.transition_video_tokens/transition_audio_tokens- always zero in the current release, since the whole overlap is discarded after sampling.
Installing it
Install via ComfyUI Manager (search "MiniMax H3 Continuation"), or clone it:
cd ComfyUI/custom_nodes
git clone https://github.com/ttulttul/ComfyUI-Minimax-H3-Continuation
Then restart ComfyUI. There are no Python dependencies - the pyproject.toml dependency list is empty - and the pack ships no model files. You still need the MiniMax H3 weights themselves (the MiniMaxAI/MiniMax-H3 repo, a chunky ~42.5 GB download) loaded through ComfyUI's normal UNET/CLIP/VAE loaders. And check your ComfyUI is on commit e01fb4c or newer: that's the upstream change that added arbitrary-frame H3 guides, and this pack won't run without it.
One more thing worth a glance: the MiniMax H3 Community License excludes the US, EU, UK and South Korea from running the local weights. The nodes don't care about any of that, but you should.
Where people get burned
The most common mistake is treating window_length as optional. It isn't - the extension node's length has to equal your overlap plus extension, or the conditioning and the sampled target disagree. And don't touch first_frame/last_frame on that extension node: a competing guide inside the overlap is exactly what this workflow rejects.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| previous_av_latent | LATENT | The completed cumulative H3 AV latent to continue. | |
| overlap_frames | INT | 225–3600 | Hidden motion-context span; must satisfy 17k + 5. |
| extension_frames | INT | 11917–3570 | New visible frame count; must be a multiple of 17. |
Outputs (6)
| Name | Type | Description |
|---|---|---|
| latent | LATENT | Fresh unmasked AV target for the continuation sampler. |
| window_length | INT | Connect to MiniMax H3 Image to Video's length input. |
| overlap_video_tokens | INT | — |
| overlap_audio_tokens | INT | — |
| transition_video_tokens | INT | Always zero: the complete hidden overlap is discarded after sampling. |
| transition_audio_tokens | INT | Always zero: the complete hidden overlap is discarded after sampling. |