H3 Continuous - Continue from Latent (Legacy v0.x)
The Node That Makes MiniMax H3 Videos Longer Than 10 Seconds
- clip
- vae
- previous_latent
- handover
- last_frame
- reference_image
- positive
- latent
- actual_head_context_frames
- ignored_tail_frames
- handover_info
MiniMax H3 is great at making a ~10 second clip with real audio, and completely helpless at making a minute-long one. That's the problem this node exists to solve. H3ContinuousContinue is the legacy v0.x "Continue from Latent" node: it takes the sampler output latent of the previous accepted clip, copies a chunk of its motion/audio history onto the front of a new target, and hands you back a fresh conditioning + latent that H3 will extend. Clip 2 stitches to clip 1, clip 3 to clip 2, and so on - that's your "infinite" H3.
This is the original direct-AV-latent handover design, and it's notable for one reason: it doesn't decode video to pixels and re-encode. It carries the actual latent forward, which is why motion and native audio survive the seam instead of melting into a diffusion re-roll. It's registered as legacy for a reason - newer versions (v1.2, v1.3, v1.4) refine this - but old workflows load it and it keeps working.
How it works
You feed it the previous latent plus its handover metadata. The node decides how much of that latent to keep as the "head" context: context_frames is the minimum you want (default 22), and alignment_mode decides the rest. The recommended phase_aligned_extended keeps the late cutoff but extends the source backward to a phase-0 start, so the carried head sits on H3's canonical temporal phase. Getting that phase wrong is what caused startup flicker in earlier experimental versions - the frame grid has to line up or the reused frames look wrong.
handover_mode picks where the cut lands. AUTO reads freeze-analysis metadata saved with the previous latent (that's what the Auto Handover analyzer produces). MANUAL uses manual_landing_tail_frames (default 34) to just cut N frames off the end by hand. Auto is the point of the suite; manual is the fallback when you don't trust the analyzer.
Outputs: positive (CONDITIONING) and latent (the new target) go to the sampler. actual_head_context_frames is the one to wire into stitching - it's the exact number of frames that were reused, so the seam nodes know how much duplicated head to remove. ignored_tail_frames and handover_info are diagnostics.
The inputs you set
previous_latent- sampler output of the last accepted clip. Non-negotiable.length- in frames at 24 fps, default 243 (~10.1 s). Snaps up to H3's 17k+5 grid.prompt,clip,vae,width,height- same as a normal H3 gen. The prompt describes what happens next, not what already happened.last_frame/reference_image- optional guidance for where the clip should end up.
Install
It's in the Herrgotts-H3-Infinite-Continuation-Suite pack:
cd ComfyUI/custom_nodes
git clone https://github.com/HerrgottMargott/Herrgotts-H3-Infinite-Continuation-Suite.git
Restart and reload. No heavy pip deps, no bundled weights - the H3 models and VAEs come from Comfy-Org's MiniMax-H3 repo, and given H3's ~33B omni-modal size plus the Qwen 3 VL encoder, the download and VRAM are the real cost of entry.
Gotchas
The length default of 243 frames matters: with a ~39-frame head being carried over, you're really generating fewer new frames than the number suggests. And the legacy legacy_17 alignment mode is a diagnostic fossil - manual_landing_tail_frames must be a multiple of 17 there, so if a workflow breaks on a non-multiple, that's why. If you're starting a new project, jump to v1.4's masked continuation instead; this v0.x node is for understanding how the suite works and for keeping old graphs alive.
Inputs (15)
| Name | Type | Default | Description |
|---|---|---|---|
| clip | CLIP | — | |
| vae | VAE | — | |
| previous_latent | LATENT | Loaded sampler output from the previous accepted clip. | |
| prompt | STRING | — | |
| width | INT | 134432–16384 | — |
| height | INT | 76832–16384 | — |
| length | INT | 2435–3600 | — |
| context_frames | COMBO | 22 | Minimum requested direct-latent motion/audio history. phase_aligned_extended may extend backward to the nearest phase-0 start so the head stays on H3's canonical timeline. |
| handover_mode | COMBO | auto | AUTO uses freeze-analysis metadata saved with the previous latent. MANUAL uses manual_landing_tail_frames. |
| alignment_mode | COMBO | phase_aligned_extended | phase_aligned_extended (v0.4.6 recommended; handover geometry unchanged from v0.4.3): keep the late cutoff but extend context backward to a phase-0 source start, matching the target head timeline. phase_aware is the v0.4.1 experimental non-zero-phase mode; legacy_17 is the conservative baseline. |
| manual_landing_tail_frames | INT | 340–3400 | Manual/fallback desired pixel tail. phase_aligned_extended/phase_aware snap the END only to an actual latent boundary; legacy_17 requires a multiple of 17. Never trims rendered video. |
| ref_image_size | COMBO | match | 2 options: match, max |
| handoveropt | H3_CONTINUOUS_HANDOVER | Auto-handover metadata from Load AV Latent. | |
| last_frameopt | IMAGE | Recommended: next pre-generated keyframe / target endpoint. | |
| reference_imageopt | IMAGE | Optional Qwen-only identity/style reference. Address it as <Picture 1>. |
Outputs (5)
| Name | Type | Description |
|---|---|---|
| positive | CONDITIONING | — |
| latent | LATENT | — |
| actual_head_context_frames | INT | — |
| ignored_tail_frames | INT | — |
| handover_info | STRING | — |