Nodes/ComfyUI-FL-MiniMaxH3/FL MiniMax H3 Transition Assembler
ComfyUI Node

FL MiniMax H3 Transition Assembler

This node splices your H3 transition for you

By filliptm·Created about a month ago·Updated a day ago· 17
FL MiniMax H3 Transition Assembler
  • transition_plan
  • video_a
  • bridge
  • video_b
  • images
  • restored_bridge

FL MiniMax H3 Transition Assembler is the payoff node at the end of the pack's two-node transition path. Transition Prep sets everything up - protected frames, prompt, masked latent, and a transition_plan that records it all. You sample that latent and decode it to pixels. This node takes the three pieces - your two original clips and the freshly decoded bridge - and produces the final, correctly-spliced clip. Its whole reason to exist is that it does the exact-frame bookkeeping so you don't have to.

That sounds trivial until you've done it by hand once. The bridge H3 renders is a full continuous clip: it starts by reproducing A's tail and ends on B's head, because those reference frames were part of the prompt. If you just concatenated A + bridge + B you'd get duplicated frames at both seams - A's tail appearing twice, then B's head appearing twice. The naive fix involves you computing overlap counts and slicing arrays, and getting it wrong produces a visibly stuttering double-frame at each join. This node exists to kill that whole category of fiddly error.

Here's what it does, grounded in what the node actually runs. It reads the transition_plan (which carries frame counts, how many reference frames per side, which control mode you chose, crop info, and the seam-edit spans) and uses it to restore protected reference pixels inside the bridge - overwriting the bridge's first reference_frames with A's real tail and its last reference_frames with B's real head, so any drift the sampler introduced at the references is corrected. Then it splices according to mode:

  • empty bridge - output is video_a + only the generated middle of the bridge + video_b. The protected frames stay exactly where they already were (end of A, start of B); nothing is doubled, nothing is dropped. The result is longer than A+B by the generated middle.
  • source seam repair - it also trims the small seam-edit spans off A and B that Prep deliberately added, and stitches the repaired middle between them, so the total duration is unchanged - you just get a cleaner join where the two clips meet.

Four inputs, all images or the plan:

  • transition_plan - the exact plan from the matching Transition Prep run. This is the node's memory; without it, no splicing.
  • video_a / video_b - the same frame batches you fed Prep (or their center-cropped/normalized outputs, which Prep conveniently echoes out of its own video_a/video_b outputs).
  • bridge - per the tooltip, the decoded H3 render from Transition Prep's masked latent. Decode with the H3 video VAE and feed the resulting IMAGE.

Two outputs. images is the finished clip - your transition, ready for Save Video. restored_bridge is the bridge with the real protected frames stitched back in, decoupled from the splice - it's the diagnostic output: preview it to check the model actually respected your A-tail/B-head references before you commit to the assembly. That separation is quietly useful: Prep and sampling are the slow, iterative part, and this node is pure post-processing, so you can rerun seeds and reassemble cheaply.

Where people get burned:

  1. Feeding an undecoded latent in as bridge. The bridge input is an IMAGE, not a latent. If you skip the H3 video VAE decode, it errors on shape immediately - but the error message assumes you know that, so now you do.
  2. Mixing up plans and clips. The plan encodes a specific canvas (width/height) and mode. Give it a bridge at the wrong resolution or clips shorter than the plan expects and it refuses, rather than silently producing garbage - that's the good kind of failure.
  3. Expecting it to fix a bad render. This node restores protected pixels and cuts on exact boundaries; it can't un-smear a middle that H3 generated badly. If the seam looks wrong, the fix is upstream - better transition_description, more reference_frames, or a different seed - then re-assemble.

Install is the pack-standard two-liner: ComfyUI Manager → search FL MiniMax H3, or

cd ComfyUI/custom_nodes
git clone https://github.com/filliptm/ComfyUI-FL-MiniMaxH3.git

then restart ComfyUI. It's filliptm's pack (the Fill Nodes author; these H3 nodes left Fill Nodes at v1.2.0, so update that pack first if you have it). You need current ComfyUI with MiniMax H3 support plus your own H3 model, text encoder and VAE files - this node supplies no weights, only the splice.

CategoryFL/MiniMax H3/Transition

Inputs (4)

NameTypeDefaultDescription
transition_planFL_H3_TRANSITION_PLAN
video_aIMAGE
bridgeIMAGEDecoded H3 bridge from the Transition Prep latent.
video_bIMAGE

Outputs (2)

NameTypeDescription
imagesIMAGE
restored_bridgeIMAGE