Nodes/IAMCCS-nodes/H3 Continuation · Continue
ComfyUI Node

H3 Continuation · Continue

Hand the Next Clip the Previous Latent, Not a Last Frame

By IAMCCS·Created 12 months ago·Updated about 14 hours ago· 113
H3 Continuation · Continue
  • clip
  • vae
  • previous_latent
  • handover
  • last_frame
  • reference_image
  • cine_linx
  • positive
  • latent
  • actual_head_context_frames
  • ignored_tail_frames
  • handover_info
prompt
width1344
height768
duration10.0
context_frames22
handover_modeterminal
alignment_modephase_aligned_extended
manual_landing_tail_frames34
ref_image_sizematch

Every long-video pipeline hits the same wall: to continue a shot you normally decode a frame, feed it back in as an image, and generate again. It works, and it costs you a generation of detail each round trip - colours shift, grain resets, fine texture gets re-invented slightly differently. Do it five times and your "one shot" looks like five shots.

This node skips the round trip. It takes the previous clip's AV latent and splices a slice of it onto the head of the next clip's latent, so the model continues from its own internal state rather than from a picture of it. Picture and audio both carry.

How the splice works

H3's timeline isn't a simple frames-per-token grid. It uses a 1-4-4-4-4 token spacing, which is why everything in this pack snaps to multiples of 17 - a group of five latent tokens covers 17 pixel frames, and clips come out on a 17k+5 grid. Getting a clean handover means cutting the previous latent on a real boundary, not an arbitrary frame, and ideally on phase 0, so the carried history sits on the new clip's canonical timeline instead of half a beat off it.

That's alignment_mode, and there are three choices:

  • phase_aligned_extended - the recommended default, and the one the author's v1.0 guidance points at. It slices at the exact latent boundary, which can extend backward past your requested context to reach a phase-0 start.
  • phase_aware (Legacy) - the older phase-aligned cut. Kept for reproducing old workflows and A/B diagnostics.
  • legacy_17 (Legacy) - whole 17-frame groups only. The most conservative, the least precise.

context_frames (5, 22 or 39) is the minimum motion and audio history you want carried in - 22 corresponds to seven latent steps. Under phase_aligned_extended it's a floor, not a target.

Then handover_mode:

  • terminal - continue from the final AV latent boundary. This is the recommended setting for straightforward external A→B continuation, and it's what you want if you generated clip 1 elsewhere.
  • auto - consume the freeze/lock metadata saved by Analyze Handover and cut where the previous shot actually stopped moving.
  • manual - exclude the tail length you type into manual_landing_tail_frames (default 34 pixels). A sensible fallback when there's no metadata.

Under auto, the node checks the metadata's frame count against the actual latent and refuses a mismatch rather than silently mis-cutting. It also warns you if the metadata came from an older detector generation - the stored cutoff still works, but it won't have the later lock point, and re-analysing the source clip is the fix.

Inputs and outputs

clip, vae, previous_latent, prompt, width, height, duration - same seconds-at-24fps contract as Start, including the upward snap to the 17k+5 grid. Optional: handover (the metadata wire), last_frame (a pre-generated target endpoint - handy for the final clip of a chain), reference_image (Qwen-only identity/style reference, addressed as <Picture 1>), and cine_linx (the pack's project bus). ref_image_size is match or max.

Outputs, and here's the part to get right:

  • positive (CONDITIONING) and latent (LATENT) - into your sampler.
  • actual_head_context_frames (INT) - how much inherited history actually ended up at the head. Wire this into Save's head_context_frames and Stitch's head_context_frames. Without it, your saved file can't describe itself and your trim is guesswork.
  • ignored_tail_frames (INT) and handover_info (STRING) - the receipt. Read them.

Install

cd ComfyUI/custom_nodes
git clone https://github.com/IAMCCS/IAMCCS-nodes.git

Manager → IAMCCS Nodes works too. Restart, hard-refresh, exactly one copy in custom_nodes. The continuation engine is bundled with the pack - no third-party continuation node pack required - but you need a real H3 model setup, since no weights ship with the repo.

The trap you will hit

More context is not free. Carrying 39 frames of history on the head means the next clip is longer internally, so your VRAM bill goes up and your visible clip gets shorter for the same duration. And if the previous clip's tail was still genuinely moving - not decelerating into a lock - you're carrying motion that the new prompt may fight. That's exactly the case auto mode and the analyser exist to catch: without a lock, the tool falls back and excludes a few frames rather than pretending the motion is a clean boundary.

The other thing to internalise: this node doesn't trim anything. It builds the next clip's inputs. What you keep in the delivered timeline is Stitch's job.

CategoryIAMCCS/MiniMax H3/Continuation

Inputs (16)

NameTypeDefaultDescription
clipCLIP
vaeVAE
previous_latentLATENTLoaded sampler output from the previous accepted clip.
promptSTRING
widthINT134432–16384
heightINT76832–16384
durationFLOAT10.00.25–150Requested duration in seconds at H3's native 24 fps. The actual clip snaps upward to H3's 17k+5 frame grid (10.0 s -> 243 frames ~= 10.125 s).
context_framesCOMBO22Minimum 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_modeCOMBOterminalTERMINAL continues from the final AV latent boundary (recommended for external A->B continuation). AUTO consumes saved freeze/lock metadata. MANUAL excludes the requested tail.
alignment_modeCOMBOphase_aligned_extendedphase_aligned_extended is the v1.0 recommended direct-latent handover. phase_aware and legacy_17 remain only for reproducing older workflows / A-B diagnostics.
manual_landing_tail_framesINT340–3400Manual/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_sizeCOMBOmatch2 options: match, max
handoveroptH3_CONTINUOUS_HANDOVERAuto-handover metadata from Load AV Latent.
last_frameoptIMAGERecommended: next pre-generated keyframe / target endpoint.
reference_imageoptIMAGEOptional Qwen-only identity/style reference. Address it as <Picture 1>.
cine_linxoptIAMCCS_SUPERNODE_LINX

Outputs (5)

NameTypeDescription
positiveCONDITIONING
latentLATENT
actual_head_context_framesINT
ignored_tail_framesINT
handover_infoSTRING