Nodes/IAMCCS-nodes/FL2VA CONTINUOUS AV · Phase-Aligned Latent Handover
ComfyUI Node

FL2VA CONTINUOUS AV · Phase-Aligned Latent Handover

Chain H3 shots by handing over the latent, not the video

By IAMCCS·Created 11 months ago·Updated about 17 hours ago· 113
FL2VA CONTINUOUS AV · Phase-Aligned Latent Handover
  • model
  • clip
  • video_vae
  • audio_vae
  • cine_linx
  • reference_image
  • frames
  • audio
  • bridge_last_frame
  • sampled_latent
  • fps
  • report

MiniMax H3 generates 4–15 second clips with native synced stereo audio, which is the thing that made it interesting: the audio isn't a second pass bolted onto a silent generator, it's part of the same model. That's also what makes chaining it hard. If you stitch five of those clips together by decoding to frames and crossfading, you're solving continuity in the wrong domain - and you're crossfading the audio too, which is how you get a conversation that pumps at every cut.

IAMCCS_MiniMaxH3FL2VAContinuousAV takes the other route. It renders the whole authored programme in one execution, and each shot picks up from the previous shot's full native AV latent rather than from re-encoded video.

Inputs

Required: model, clip, video_vae, audio_vae, and cine_linx - the Shotboard plan, which is where the intervals, prompts, canvas, sampling settings and handover contract come from.

Optional: reference_image, described in the tooltip as an optional Qwen-only <Picture 1> identity/style reference. That's a Qwen-specific slot; if your model path isn't the Qwen one, leave it empty.

How the chain works

Shot 1 is a real FL2VA build: your authored first and last keyframes, the prompt, the canvas, the duration. Every later shot goes through a continuation builder that consumes previous_latent - the sampled AV latent from the shot before - and aligns the new window to it (phase_aligned_extended by default, with a context window of 5, 22 or 39 frames). Then the pack's generation backend samples it, an analyzer measures the handover, and the shots are combined.

Two defaults matter more than the rest, and both are the author making a judgement call:

Authored keyframes win. By default, each non-final shot ends on the keyframe you authored, and the next shot continues from a context window that ends on that same frame. The provider's own automatic handover can trim the tail to avoid a freeze, which is fine for free-running continuation but can cut away the final approach to an explicit endpoint. The analyzer still runs - as diagnostics rather than as the authority.

Crossfade defaults to zero frames. There is a crossfade available, and the contract can enable it, but a latent handover should be a direct phase-aligned join. A visible dissolve between two shots that already share a latent gets you a dissolve that shows the same guide twice.

It also refuses things early. Audio mode must be h3_native_generated or external_audio_post - a custom AudioBoard-driven track is a different pipeline and the node says so. Context frames must be one of the three legal values. The interval count comes from the plan, and every interval needs its authored destination image.

Outputs

  • frames - the combined programme.
  • audio - the combined native audio.
  • bridge_last_frame - the last frame, for the next thing in the chain.
  • sampled_latent - the final AV latent, which is what a continuation would open from.
  • fps - 24.
  • report - per-clip lines with head trim, handover status, trim info and the sampling report, then a summary naming the engine, guide count, interval count and total frames.

Install

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

Manager → IAMCCS works as well; restart after either. This node consumes the vendored continuity engine that ships inside the pack's vendor/ directory, so you don't install it separately - but you do need everything above it: the H3 FL2VA model, the text encoder, the video VAE and the audio VAE, plus a Shotboard setup to produce a plan. The pack's own requirements notes are blunt that SuperNodes orchestrate rather than replace: a missing or outdated dependency lets the graph validate and then fail at prompt time or produce unstable results.

Rough edges, honestly

Continuity here is a guidance problem, not a solved one. Long chains still drift, and the pack's requirements doc lists the usual culprits - intervals too long for the model to hold identity, prompts asking for more motion than the source frame supports, and compounding error when each shot's already-degraded tail becomes the next shot's anchor. The authored-keyframe default exists to stop the last of those from accumulating. If your first three shots look great and shot six doesn't, that's not a wiring bug; that's the model.

Also note the aliases. IAMCCS_MiniMaxH3HerrgottsDirectAVChain is the same class under an older identifier, so don't put both in a graph and expect two renders.

CategoryIAMCCS/MiniMax H3/FL2VA Continuous AV

Inputs (6)

NameTypeDefaultDescription
modelMODEL
clipCLIP
video_vaeVAE
audio_vaeVAE
cine_linxIAMCCS_SUPERNODE_LINX
reference_imageoptIMAGEOptional Qwen-only <Picture 1> identity/style reference.

Outputs (6)

NameTypeDescription
framesIMAGE
audioAUDIO
bridge_last_frameIMAGE
sampled_latentLATENT
fpsINT
reportSTRING