[Legacy] H3 Continuum Sampler V3.3
Make a 30-second MiniMax H3 video with one sampler node
- model
- clip
- video_vae
- sampler
- sigmas
- first_frame
- last_frame
- reference_image_1
- reference_image_2
- reference_image_3
- reference_audio_1
- reference_audio_vae
- timeline_video
- video_latents
- audio_latents
- assembly_plan
- status
MiniMax H3 is native video and audio, and it's genuinely good - but a single H3 clip tops out around 15 seconds, and each one is a roll of the dice on whether the next clip matches the last. That's the entire problem H3 Continuum Sampler V3.3 exists to solve. It's the flagship node of the H3 Continuum pack: give it one prompt (or a timeline of prompts), tell it how many chunks you want, and it chains 1 to 16 H3 generations together while carrying the raw video and audio latents between them. No decode/re-encode between chunks, no "watch the character melt and reform" jumps.
The key mechanic is latent continuation. Each chunk is sampled with the tail of the previous chunk's raw latent context carried in - continuity defaults to Balanced - 22 frames (22 prior frames of video context plus the matching audio). Because the context stays in latent space, the pack never round-trips through the VAE between chunks, which is where most continuation approaches lose identity, motion, and the room tone. The continuity dropdown also offers Fast - 5 frames when you want speed and Strong - 39 frames (Experimental) when the subject keeps drifting.
What to connect
The node is a drop-in replacement for a normal H3 sampler. From the README's standard connection:
model- your H3 MODEL (optionally through SageAttention, Turbo/LoRA, or Spectrum, in that order).clip- MiniMax H3 CLIP/Text Encoder output.video_vae- used only to encode image conditioning; T2VA doesn't touch it, and Continuum never decodes with it.samplerandsigmas- normal KSampler-style outputs.sequence_prompt- one Text (Multiline) node. Setprompt_mode = Autoand it detects Fixed (one prompt for all chunks), List (---between per-chunk prompts), or Timeline ([0-5s]headers).chunks(3) andchunk_seconds(5.0) - start there.width/heightdefault to 1344×768 and should stay multiples of 32.base_seed- the base that per-chunk seeds are derived from deterministically.
Optional conditioning inputs: first_frame, last_frame (I2VA / FL2VA), and up to three reference_image_1..3 (Ref2VA) - images and frames are mutually exclusive, and bypassed sockets are ignored. reference_audio_1 + reference_audio_vae add a native H3 reference audio track. The timeline_video input is the new V3.3 party trick: connect one continuous Core VIDEO and it slices it per chunk, resizes the slice to timeline_video_size (default Efficient - 0.4 MP), and uses it as chunk-local conditioning. Its audio is deliberately ignored, so keep using reference_audio_1 for sound.
What comes out
Three of the four outputs are lists, which trips everyone up the first time:
video_latentsandaudio_latents- one list entry per chunk. Wire each into a normal ComfyUI CoreVAE Decode/VAE Decode Audio; ComfyUI maps the decoder across the list. Decoding is deliberately external so Core updates benefit you without the pack copying H3 VAE code.assembly_plan- feeds H3 Continuum Assemble + Seam, which trims the overlap and fixes seams.status- a plain STRING; connect it to Core Preview as Text when you want the run report.
Install and gotchas
Via ComfyUI Manager, search H3 Continuum and install, or:
cd ComfyUI/custom_nodes
git clone https://github.com/ukr8b3g-cmyk/ComfyUI-H3-Continuum.git
Restart ComfyUI. There are no extra pip dependencies - requirements.txt is just PyTorch and safetensors, both already in ComfyUI. What you do need is a working MiniMax H3 environment (the H3 MODEL/CLIP/VAE loaders, plus weights) and ComfyUI v0.32.0 or later for the current Core VAE fixes. Turbo weights, if you want the 8-step path, come from the LightX2V MiniMax H3 Turbo repo on Hugging Face.
Three things bite people. First, if your output is just a black frame, you probably forgot the Core VAE Decode step - this node never decodes. Second, Run Storage = Save + Auto Resume is worth enabling for anything longer than a test: each completed raw AV chunk is atomically saved, so an interrupted run resumes from disk on the next Queue instead of starting over, and reroll_from_chunk lets you regenerate from a specific chunk. Third, "accelerator markers not detected (informational only)" in the status text is not an error - it's just the pack telling you SageAttention markers weren't observable.
Inputs (33)
| Name | Type | Default | Description |
|---|---|---|---|
| model | MODEL | — | |
| clip | CLIP | — | |
| video_vae | VAE | Used only to encode image conditioning. T2VA does not use it; Continuum never decodes with it. | |
| sampler | SAMPLER | — | |
| sigmas | SIGMAS | — | |
| sequence_prompt | STRING | Connect one Text (Multiline) for the complete sequence. | |
| prompt_mode | COMBO | Auto | Auto accepts Fixed, list-separated, and timeline prompt styles. |
| chunks | INT | 31–16 | Number of sequential Continuum chunks to generate. |
| chunk_seconds | FLOAT | 5.04–30 | Target duration shared by every chunk. 5–15 seconds is the recommended and validated range. Values above 15 seconds are supported, but VRAM use and processing time can increase substantially, especially at high resolution. |
| width | INT | 134432–16384 | Output width. Use a multiple of 32. |
| height | INT | 76832–16384 | Output height. Use a multiple of 32. |
| continuity | COMBO | Balanced — 22 frames | Amount of prior video context retained at each chunk boundary. |
| base_seed | INT | 00–18446744073709550000 | Base seed used to derive deterministic per-chunk seeds. |
| audio_continuity | BOOLEAN | true | On passes prior audio context into continuation chunks. Turn it off only to isolate or replace generated audio. |
| diagnostics | COMBO | Basic | 3 options: Basic, Detailed Report, Off |
| reroll_from_chunk | COMBO | Auto | Auto resumes the longest compatible saved prefix. Choosing a chunk reuses earlier chunks and regenerates that chunk and everything after it. |
| reroll_nonce | INT | 00–4294967295 | Change only when regenerating an explicit chunk and you want a new variation with otherwise identical settings. |
| strict_compatibility | BOOLEAN | true | — |
| debug | BOOLEAN | false | — |
| show_preview | BOOLEAN | true | — |
| run_storage | COMBO | Off | Atomically save raw AV chunks and resume a compatible saved run. |
| run_name | STRING | Enter a stable name for this saved run. Compatible chunks are selected automatically. | |
| reference_size | COMBO | Match Output | Match Output is the practical default; Max Identity preserves more reference detail. |
| timeline_video_size | COMBO | Efficient - 0.4 MP | Efficient limits each chunk-local reference slice to about 0.4 MP. Match Output uses the output pixel area and may be substantially heavier. |
| project_id | STRING | Optional. Leave blank to derive a stable ID from this sampler node. Run Name remains the explicit override. | |
| first_frameopt | IMAGE | Optional. Leave all image inputs disconnected for T2VA. | |
| last_frameopt | IMAGE | — | |
| reference_image_1opt | IMAGE | — | |
| reference_image_2opt | IMAGE | — | |
| reference_image_3opt | IMAGE | — | |
| reference_audio_1opt | AUDIO | — | |
| reference_audio_vaeopt | VAE | — | |
| timeline_videoopt | VIDEO | Optional. One continuous Core VIDEO covering every configured chunk. When omitted or bypassed, the node uses the standard conditioning path. Its audio is ignored; use the normal audio inputs for generated audio. |
Outputs (4)
| Name | Type | Description |
|---|---|---|
| video_latents | LATENT | — |
| audio_latents | LATENT | — |
| assembly_plan | H3_CONTINUUM_ASSEMBLY_PLAN | — |
| status | STRING | — |