Audio Merge ABC (QQ)
Match your three-clip video merge with audio that fades in sync
- audio_A
- audio_B
- audio_C
- video_meta
- audio
If you've ever stitched three generated clips together and just dumped three audio tracks on top, you know the result: a brick wall of noise at every cut. AudioMergeABC is the fix - it merges three audio sources using the exact same fade envelope as the video merge you already did, so the audio crossfades land precisely where the visual crossfades land. It's the audio half of the pack's A→B→C assembly story, and it exists because eyeballing audio fades never works.
It's part of siraxe/ComfyUI-WanVideoWrapper_QQ, the "(QQ)" Wan pack. Niche, yes - but if you're assembling multi-shot Wan videos with audio, this is the node that keeps the seams from being audible.
How it works
The clever bit is the video_meta input. When you run the companion VideoMergeABC node, it outputs a VIDEO_META blob carrying the exact overlap lengths and easing settings it used (A_overlap, B_overlap, easing_clamp, easing_type). AudioMergeABC reads that metadata instead of asking you to re-enter the numbers, then applies the same curve to audio. A fades out through the A→B zone, B sits at full volume through the middle, B fades out and C fades in across B→C. Same structure as the video, by construction.
Audio is processed on CPU to dodge device-mismatch crashes. Each track is resampled to a common rate (at least 44.1 kHz), channel counts are matched, and if normalize_volume is on (default), each source is peak-normalized before blending so one loud clip doesn't dominate. If you leave an audio input disconnected, it substitutes silence of the right length - the video still works, you just get a silent section.
Inputs and outputs that matter
audio_A,audio_B,audio_C- three AUDIO tensors, one per clip segment.video_meta- theVIDEO_METAoutput fromVideoMergeABC. This is what keeps audio and video in lockstep.video_fps- your project frame rate (default 24). Used to convert frame counts to audio samples.normalize_volume- peak-normalize each track before blending (default on).
Output: a single merged audio in ComfyUI's AUDIO format, ready for a video-combine/save node that accepts audio.
Installation
cd ComfyUI/custom_nodes
git clone https://github.com/siraxe/ComfyUI-WanVideoWrapper_QQ.git
Restart ComfyUI (or ComfyUI Manager → search "WanVideoWrapper_QQ"). No extra Python packages needed - the pack's requirements.txt is empty and this runs on torch alone. As with the rest of the pack, if you're upgrading from before v1.3.4, delete the old wanwrapper_qq folder to avoid duplicate-import warnings after the rename to ComfyUI-SA-Nodes-QQ.
Common issues
The number-one failure is feeding it stale or missing video_meta - if you wired it from a different merge run, the fades will drift from the visuals. Run the video merge first, and wire its video_meta straight into this node. Also don't expect magic from normalization: it fixes loudness mismatch, not clipping, so a track that's already peaking will stay crunchy. And there's a subtle one - the node assumes your audio tracks are about the same length as their video segments. Wildly mismatched audio (a 10-second clip on a 2-second segment) gets truncated to fit, so trim before you merge.
Inputs (6)
| Name | Type | Default | Description |
|---|---|---|---|
| audio_A | AUDIO | — | |
| audio_B | AUDIO | — | |
| audio_C | AUDIO | — | |
| video_meta | VIDEO_META | — | |
| video_fps | FLOAT | 24.01–120 | — |
| normalize_volume | BOOLEAN | true | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| audio | AUDIO | — |