H3 Continuation · Continue
Hand the Next Clip the Previous Latent, Not a Last Frame
- clip
- vae
- previous_latent
- handover
- last_frame
- reference_image
- cine_linx
- positive
- latent
- actual_head_context_frames
- ignored_tail_frames
- handover_info
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 intomanual_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) andlatent(LATENT) - into your sampler.actual_head_context_frames(INT) - how much inherited history actually ended up at the head. Wire this into Save'shead_context_framesand Stitch'shead_context_frames. Without it, your saved file can't describe itself and your trim is guesswork.ignored_tail_frames(INT) andhandover_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.
Inputs (16)
| 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 | — |
| duration | FLOAT | 10.00.25–150 | Requested 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_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 | terminal | TERMINAL 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_mode | COMBO | phase_aligned_extended | phase_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_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>. | |
| cine_linxopt | IAMCCS_SUPERNODE_LINX | — |
Outputs (5)
| Name | Type | Description |
|---|---|---|
| positive | CONDITIONING | — |
| latent | LATENT | — |
| actual_head_context_frames | INT | — |
| ignored_tail_frames | INT | — |
| handover_info | STRING | — |