MiniMaxH3 • Transition Guide
Transition Guide Pins Both Edges of the Cut and Makes the Model Fill the Middle
- clip
- vae
- guide
- audio_vae
- positive
- latent
- transition
A hard cut between two takes reads as a mistake. If you want the last half-second of clip A to actually turn into the first half-second of clip B, the model has to see both ends at once - and that's not something a prompt can express. H3 gets it from guides: hidden frames pinned into the sampling window. MiniMaxH3 • Transition Guide is the node that turns "join these two clips with a bridge" into "here are both anchors, generate the 29 frames between them."
It's a drop-in replacement for the Director Guide, not a stacker alongside it. Same clip, vae, audio_vae; the guide input carries the Director's settings - mode, canvas, references - while its prompt and Continuity are deliberately replaced for this window. Drop it in the Director's sampler graph in place of the Guide and you have a transition renderer.
What transition_data contains
The Director's Join clips dialog fills it, and you should let it. The shape is {"version":1,"rows":[clipA,clipB],"context_frames":22,"transition_frames":29,"prompt":""} - two media rows only, both kind: media, resolved inside ComfyUI's input folder, with the same optional trims. context_frames must be 5, 22, 39 … (17k+5). transition_frames must be 12, 29, 46 … such that 2 × context + transition stays on the same 17k+5 grid. prompt is optional, up to 4000 characters, describing what happens in the bridge.
Get those two numbers off-grid and you get a plain-English error about the H3 window, which is a much better experience than the smeared garbage you'd otherwise get.
How the mechanism runs
It decodes only what it needs: the trimmed tail of clip A and the trimmed head of clip B, via PyAV, with a host-RAM estimate checked before it starts. Frames are centre-cropped and resampled into the clips' own framing rounded to 32 pixels and capped at H3's 1344 × 768 pixel budget - so the Director's width and height don't matter here, and the bridge is rendered at the framing of the footage it has to sit between. Audio comes along as 48 kHz for the guide encode.
Then it builds conditioning: an auto-written prompt explaining that the opening and closing seconds are hidden context and the middle must be generated as one continuous bridge (your description appended beneath it), a latent for exactly window_frames, and both anchors added as native H3 guides - clip A's tail at frame 0, clip B's head at context + transition. Two positive/latent outputs go to your sampler: positive to the guider's conditioning, latent to the sampler's latent_image. The third output, transition, is the plan, and it goes to Transition Render.
Installing it
cd ComfyUI/custom_nodes
git clone https://github.com/darksidewalker/ComfyUI-DaSiWa-Nodes
cd ComfyUI-DaSiWa-Nodes
pip install -r requirements.txt
Or Manager → DaSiWa-Nodes. Beyond the H3 model, CLIP and both VAEs, this node uses PyAV from the requirements file (av>=18) for the bounded edge decode. Be aware the pack also drags in nvidia-vfx and llama-cpp-python; they're for other nodes and they're a real download. The DaSiWa name is better known on Civitai for Wan 2.2 workflows than for H3 tooling, so budget an install that's bigger than this one node suggests.
Where people get burned
A clip shorter than the context fails. With the default 22 frames of context per side, a take trimmed to 20 frames can't anchor anything. Trim less or drop the context to 5.
Image Inpaint mode is rejected. Transitions need a video mode; that's a guard, not a bug.
One sampling run per cut, and it's a real run. With defaults that's a 73-frame window - roughly three seconds - of normal H3 sampling, per seam. Three cuts is three runs. Closing the dialog stops the monitoring, not the queue.
The Director has to be wired properly. Director → a single Guide → exactly one sampler that takes that Guide's latent. If your graph fans the Guide's latent out to two samplers, or feeds the sampler from something else, the dialog can't swap this node in.
Guide frames are not magic. If the two clips genuinely don't connect - different room, different character, mismatched motion - the model will produce a bridge that proves it. And the saved bridge contains only the middle: both clips keep all their own frames up to their trims, so the join gets longer by one transition per cut. Trim the clip edges if you want the bridge to eat part of them.
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| clip | CLIP | — | |
| vae | VAE | Native MiniMax H3 video VAE; encodes both edge clips as guides. | |
| guide | MINIMAX_H3_DIRECTOR_GUIDE | Director settings: mode, canvas and references. Its prompt and Continuity are replaced for the transition. | |
| transition_data | STRING | Set by Director → Join clips. Two uploaded clips, context frames per side, bridge length and optional description. | |
| audio_vae | VAE | Native MiniMax H3 audio VAE; encodes both edge soundtracks as guides. |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| positive | CONDITIONING | — |
| latent | LATENT | — |
| transition | DF_H3_TRANSITION | — |