Nodes/ComfyUI-MiniMaxH3-Context-Loop/MiniMax H3 Masking · Two-Clip AV Bridge
ComfyUI Node

MiniMax H3 Masking · Two-Clip AV Bridge

Generate the missing middle between two real MiniMax H3 clips

By ethanfel·Created about a month ago·Updated a day ago· 415
MiniMax H3 Masking · Two-Clip AV Bridge
  • latent
  • vae
  • audio_vae
  • start_frames
  • end_frames
  • start_audio
  • end_audio
  • latent
  • middle_frames
  • preserve_frames
start_fps24.000
end_fps24.000
preserve_frames39
cropcenter

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) or disabled (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.

Categoryconditioning/minimax/context_loop/masking

Inputs (11)

NameTypeDefaultDescription
latentLATENTEmpty joint H3 AV target latent for the full bridge duration.
vaeVAEMiniMax H3 video VAE.
audio_vaeVAEMiniMax H3 audio VAE.
start_framesIMAGEFirst source clip. Its final protected window becomes the bridge prefix.
end_framesIMAGESecond source clip. Its initial protected window becomes the bridge suffix.
start_fpsFLOAT24.0000.001–1000Actual frame rate represented by start_frames; it is converted to H3's 24 fps timeline before selecting the protected tail.
end_fpsFLOAT24.0000.001–1000Actual frame rate represented by end_frames; it is converted to H3's 24 fps timeline before selecting the protected head.
preserve_framesINT395–9999Exact H3 run: 5, 22, 39, 56, ... . Use 39 for an exact 65-step AV boundary.
cropCOMBOcenterResize policy for both endpoint videos: disabled stretches to the target canvas; center preserves aspect ratio and center-crops.
start_audiooptAUDIOOptional audio synchronized with the first clip. When absent, H3 generates the bridge's opening audio instead of protecting silence.
end_audiooptAUDIOOptional audio synchronized with the second clip. When absent, H3 generates the bridge's ending audio instead of protecting silence.

Outputs (3)

NameTypeDescription
latentLATENTFull bridge target with protected source AV windows at both ends and a denoised middle.
middle_framesINTNumber of picture frames left for the model to generate between the two protected endpoints.
preserve_framesINTActual number of protected picture frames copied from each endpoint.