Nodes/VACE Automation/VACE Two Video Bridge Assemble
ComfyUI Node

VACE Two Video Bridge Assemble

Trim the padding and hand back the finished bridge

By EnviralDesign·Created 6 months ago·Updated 3 months ago· 0
VACE Two Video Bridge Assemble
  • generated_bridge
  • left_kept
  • right_kept
  • bridge_source
  • bridge_images
  • joined_images
  • bridge_video
  • joined_video
  • fps
padding_start
padding_frames
left_edge_frames
right_edge_frames
fps
bit_depth8
debugfalse
edge_blend_easingease_in

VACE Two Video Bridge Prep builds the bridge window and hides some extra Wan padding inside it; VACE Two Video Bridge Assemble is the node that cleans up after the generation. It trims that hidden padding back out, blends the generated bridge edges against your original footage, and hands you both the bridge-only clip and the full joined clip - as images and as native VIDEO objects. If you're doing NLE-style seam work (drop two videos in, get a smooth transition out), this is the second half of that story.

How it works

Wan's generation length has a 4n + 1 quirk - its windows want to be things like 17, 33, 49, 81 frames. Prep solves that by padding the visible bridge span up to the next 4n + 1 value and telling you where that padding sits (padding_start, padding_frames). Assemble undoes it: it slices the padding back off the generated frames so the visible bridge is exactly the span you asked for.

Then it blends. The edge_blend_frames you set in Prep marked how many frames at each outer edge stay anchored to the original footage. Assemble re-mixes those edges back toward the original source frames using the edge_blend_easing curve (linear, ease_in, ease_out, ease_in_out), so the generated bridge doesn't visibly "pop" against the untouched left and right clips. Same easing family as the pack's older VACE Crossfade Transition - same curve, different job.

Finally it assembles the two outputs: bridge_images is just the cleaned-up generated span, and joined_images is left clip body + bridge + right clip body, all in one batch. Both come out as VIDEO too, encoded at your fps and bit_depth.

Inputs and outputs that matter

Inputs mostly come straight from Prep's outputs: generated_bridge (your VACE decode), left_kept, right_kept, bridge_source, padding_start, padding_frames, left_edge_frames, right_edge_frames, and fps. You set two things yourself: bit_depth (8 or 10, for the output video) and edge_blend_easing (the blend curve). debug prints frame counts when you're verifying lengths.

Outputs: bridge_images, joined_images, bridge_video, joined_video, and fps. The two joined_* outputs are what you'd save or preview; the bridge-only ones are useful if you want the transition as a separate asset.

Installing it

Part of the comfy-vace-automation pack, no extra pip dependencies:

cd ComfyUI/custom_nodes
git clone https://github.com/EnviralDesign/comfy-vace-automation

Restart ComfyUI, or install via ComfyUI Manager (search "comfy-vace-automation").

When it bites you

  • Padding math off. padding_start/padding_frames must match what Prep reported. They're outputs of Prep, so wire them through rather than typing them - mistyping either one leaves stray padding in the bridge or clips real frames.
  • Edge blend fighting the generation. A high edge_blend_frames with ease_in pulls a lot of the bridge back toward the original source, which can flatten the motion the model made. If the transition looks too static, lower the edge frames or switch easing.
  • bit_depth mismatch. If your source videos are 8-bit and you ask for 10-bit output, you'll see banding-fix behavior you didn't intend; keep it matching your source unless you know why you're changing it.

The division of labor here is clean: Prep is all about building the window and hiding Wan's requirements, Assemble is all about unhiding them and delivering a finished clip. Between them you get a bridge that's the exact length you asked for, which is rarer in the Wan ecosystem than it should be.

Categoryvideo/VACE

Inputs (12)

NameTypeDefaultDescription
generated_bridgeIMAGE
left_keptIMAGE
right_keptIMAGE
bridge_sourceIMAGE
padding_startINT0–81
padding_framesINT0–81
left_edge_framesINT0–80
right_edge_framesINT0–80
fpsFLOAT0.01–1000
bit_depthINT88–10
debugBOOLEANfalse
edge_blend_easingCOMBOease_inEasing curve for blending generated bridge edges back into original frames.

Outputs (5)

NameTypeDescription
bridge_imagesIMAGE
joined_imagesIMAGE
bridge_videoVIDEO
joined_videoVIDEO
fpsFLOAT