Nodes/ComfyUI-SA-Nodes-QQ/Video Merge ABC (QQ)
ComfyUI Node

Video Merge ABC (QQ)

Stitch three Wan clips into one video with two eased crossfades

By siraxe·Created 11 months ago·Updated 2 days ago· 72
Video Merge ABC (QQ)
  • image_A
  • image_B
  • image_C
  • images
  • debug
  • video_meta
A_overlap24
B_overlap24
easing_clamp0.50
easing_type
resize_to_Boff

Three clips, one timeline. That's the whole job of VideoMergeABC: take A, B, and C as image sequences, crossfade A into B and B into C over configurable overlaps, and hand back a single assembled video. If you're making anything longer than a single Wan generation - establishing shot, close-up, wide - this is the node that turns three separate runs into one deliverable.

It's part of siraxe/ComfyUI-WanVideoWrapper_QQ, the "(QQ)" Wan pack, and it's the three-clip sibling of VideoAudioMergeAB. Where that node does the audio-aware two-clip case, this one is the pure-video three-clip assembler - and it emits a VIDEO_META blob so the pack's AudioMergeABC node can sync audio to your exact fade positions.

How it works

The structure is A → [transition] → B → [transition] → C. A_overlap and B_overlap (in frames, default 24 each) define the two crossfade zones. Inside each zone, frames are blended with a weight curve chosen by easing_type - linear, ease_in, ease_out, ease_in_out - and easing_clamp (default 0.5) controls how much of the curve is actually traversed, so you can make transitions start fast and end gently or vice versa.

There's also an optional custom opacity_curve hidden parameter (a JSON list of per-frame opacity values) that the pack's front-end can feed in for hand-drawn fade shapes - if you see one in a saved workflow, that's what it is. The resize_to_B toggle (off/on) scales clips to match clip B's dimensions, which is the polite default when your three generations came out at slightly different resolutions; off means each clip keeps its own size and gets letterboxed/mismatched.

The debug output is an IMAGE - it renders the fade curve visually so you can eyeball whether the transition is easing the way you intended. And the video_meta output is the key to keeping audio in sync: it carries A_overlap, B_overlap, easing_clamp, and easing_type, which AudioMergeABC reads back to rebuild the same envelope for the audio track.

Inputs and outputs that matter

  • image_A, image_B, image_C - the three clips, in order.
  • A_overlap / B_overlap - crossfade lengths in frames (0–10000, default 24).
  • easing_type + easing_clamp - the fade curve shape.
  • resize_to_B - match all clips to B's dimensions.

Outputs: images (the assembled IMAGE), debug (IMAGE), video_meta (VIDEO_META - wire this to AudioMergeABC).

Installation

cd ComfyUI/custom_nodes
git clone https://github.com/siraxe/ComfyUI-WanVideoWrapper_QQ.git

Restart ComfyUI (or ComfyUI Manager → "WanVideoWrapper_QQ"). No extra dependencies - pure torch; the pack's requirements.txt is empty. After the v1.3.4 rename to ComfyUI-SA-Nodes-QQ, delete any old wanwrapper_qq folder to avoid duplicate-node warnings.

Common issues

The big one is overlap arithmetic: with the 24-frame default on both transitions you're blending almost two full seconds of a 3-second clip into crossfade, which at default 121-frame clips leaves very little "pure" footage - reduce A_overlap/B_overlap for shorter clips. Resolution mismatches are the second classic: if you skip resize_to_B, a 720p B next to a 1080p A and C produces a visibly inconsistent frame batch. And remember video_meta only describes this merge - wire it straight into AudioMergeABC in the same run, or your audio fades will drift from the visuals.

CategoryWanVideoWrapper_QQ/video

Inputs (8)

NameTypeDefaultDescription
image_AIMAGE
image_BIMAGE
image_CIMAGE
A_overlapINT240–10000
B_overlapINT240–10000
easing_clampFLOAT0.50-1–2
easing_typeCOMBO4 options: linear, ease_in, ease_out, ease_in_out
resize_to_BCOMBOoff2 options: off, on

Outputs (3)

NameTypeDescription
imagesIMAGE
debugIMAGE
video_metaVIDEO_META