MiniMax H3 Masking · Two-Clip AV Bridge
Generate the missing middle between two real MiniMax H3 clips
- latent
- vae
- audio_vae
- start_frames
- start_audio
- end_frames
- end_audio
- latent
- middle_frames
- preserve_frames
Two-Clip AV Bridge is the answer to a specific and surprisingly common problem: you have two real video clips that should be joined - scene A's ending, scene B's beginning - and there's a gap between them that needs to be generated, convincingly, in a way that blends into both. This node builds a true two-ended H3 bridge target: it preserves the first clip's tail and the second clip's head as protected AV windows, then lets H3 denoise only the middle. One-ended continuation is the pack's bread and butter; two-ended is this node's whole personality.
It's the fanciest of the masking nodes, and it earns it. Where the chain's normal AV continuation protects a single predecessor tail, a bridge needs both ends pinned - the last frames of clip A and the first frames of clip B must survive the generation untouched, while everything between them gets invented. That's a harder contract, and the node's job is to make it exact.
What it needs
- latent - an empty joint H3 AV target latent for the full bridge duration.
- vae and audio_vae - the H3 video and audio VAEs.
- start_frames / start_audio - the first clip; its final protected window becomes the bridge prefix.
- end_frames / end_audio - the second clip; its initial protected window becomes the bridge suffix.
- start_fps / end_fps - actual frame rates of the two clips; each is converted to H3's 24 fps timeline before selecting the protected window, so a 30 fps clip and a 24 fps clip still meet cleanly.
- preserve_frames - the exact H3 run length for the protected windows: 5, 22, 39, 56... Use 39 for an exact 65-step AV boundary, matching the chain's hard_av behavior. This is the number that determines how much of each endpoint survives and how much middle is left to generate.
- crop - resize policy for both endpoint videos:
center(preserve aspect ratio, center-crop) ordisabled(stretch to canvas).
What you get out
- latent - the full bridge target with protected source AV windows at both ends and a denoised middle.
- middle_frames - how many picture frames H3 actually has left to generate between the two protected endpoints. If this is tiny, the bridge is mostly a copy; if it's huge, your endpoints are barely anchored. Both extremes are worth noticing before you queue.
- preserve_frames - the actual number of protected picture frames copied from each endpoint, for verification.
The workflow this node supports is the "Two-Clip Masked AV Bridge" example in the pack, which is the maintained path if you're bridging real footage rather than two generated scenes. For pure generated-to-generated continuation you probably don't need a bridge at all - the chain's normal transition handles it. Reach for this node when at least one end is real footage you can't re-render.
Install
From ComfyUI-MiniMaxH3-Contex-Loop. ComfyUI Manager → search the pack, or:
cd ComfyUI/custom_nodes
git clone https://github.com/ethanfel/ComfyUI-MiniMaxH3-Contex-Loop.git
Restart. No pip deps. Requires current ComfyUI with native Add Guide (PR #15439) and native per-token H3 AV masks (PR #15375) for the masked path. H3 weights not bundled; geofenced out of the US/EU/UK/South Korea under the Community License.
Gotchas
The preserve_frames choice is the whole game: too few and the bridge isn't anchored to either real clip; too many and there's nothing left to generate. 39 is the tested sweet spot for a full AV boundary. And check middle_frames before you spend GPU - a bridge that computes to zero middle frames is a copy operation wearing a sampler's clothes.
Inputs (11)
| Name | Type | Default | Description |
|---|---|---|---|
| latent | LATENT | Empty joint H3 AV target latent for the full bridge duration. | |
| vae | VAE | MiniMax H3 video VAE. | |
| audio_vae | VAE | MiniMax H3 audio VAE. | |
| start_frames | IMAGE | First source clip. Its final protected window becomes the bridge prefix. | |
| start_audio | AUDIO | Audio synchronized with the first clip. | |
| end_frames | IMAGE | Second source clip. Its initial protected window becomes the bridge suffix. | |
| end_audio | AUDIO | Audio synchronized with the second clip. | |
| start_fps | FLOAT | 24.0000.001–1000 | Actual frame rate represented by start_frames; it is converted to H3's 24 fps timeline before selecting the protected tail. |
| end_fps | FLOAT | 24.0000.001–1000 | Actual frame rate represented by end_frames; it is converted to H3's 24 fps timeline before selecting the protected head. |
| preserve_frames | INT | 395–9999 | Exact H3 run: 5, 22, 39, 56, ... . Use 39 for an exact 65-step AV boundary. |
| crop | COMBO | center | Resize policy for both endpoint videos: disabled stretches to the target canvas; center preserves aspect ratio and center-crops. |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| latent | LATENT | Full bridge target with protected source AV windows at both ends and a denoised middle. |
| middle_frames | INT | Number of picture frames left for the model to generate between the two protected endpoints. |
| preserve_frames | INT | Actual number of protected picture frames copied from each endpoint. |