Nodes/ComfyUI-ListHelper/AudioListCombine
ComfyUI Node

AudioListCombine

Combine audio lists into one track — concatenate, mix, or overlay

By dseditor·Created about a year ago·Updated 7 months ago· 75
AudioListCombine
  • audio_list
  • AUDIO
combine_modeconcatenate
fade_duration0.0
normalize_outputtrue
target_sample_rate44100

AudioListCombine is the other half of this pack's audio story: where Audio Split to List breaks one track into timed segments, this node stitches a list back into a single AUDIO. It's the node you use when you've rendered video for each audio segment separately and now need the soundtrack reassembled to match - or when you want to mash a few clips together without leaving ComfyUI to do it in an audio editor.

How it works

The node declares INPUT_IS_LIST, so it receives a proper Python list of audio dicts and does real DSP on them rather than string concatenation. Three combine modes, all of them what they sound like:

  • concatenate - joins the files end-to-end in order. Optionally crossfades between them with fade_duration (0–5s). This is the mode for rebuilding a long narration from its segments.
  • mix - averages all files together, padding shorter ones with silence. Equal weight, so nothing overpowers. Good for blending multiple takes or background layers at the same loudness.
  • overlay - straight-up addition, preserving each file's original volume. Perfect for stacking sound effects, but the author's README warns it can clip - that's what normalize_output is for.

Before combining, the node resamples everything to target_sample_rate (default 44100) and up-converts mono to stereo so mixed-channel lists don't break the math. If normalize_output is on, the result is scaled to a peak of 1.0 so you don't blow your speakers (or clip your video encoder).

Inputs and output

  • audio_list - the list. Feed it from this pack's Audio Split to List, from Impact Pack's MakeAnyList, or any other node that produces an AUDIO list.
  • combine_mode - the three options above, default concatenate.
  • fade_duration, normalize_output, target_sample_rate - the polish knobs. You'll mostly touch fade_duration for seamless narration.

The single output is AUDIO, ready to plug into any video/audio muxer or save node.

Installing it

Bundled in ComfyUI-ListHelper:

cd ComfyUI/custom_nodes
git clone https://github.com/dseditor/ComfyUI-ListHelper

Restart ComfyUI; find it under ListHelper/Audio. It relies on torchaudio for resampling - that ships with ComfyUI already, so there's nothing extra to install despite what the README implies. ComfyUI Manager: search "ComfyUI-ListHelper".

Where people get burned

The most common failure is feeding a single AUDIO (not a list) in by accident - the node raises a clear "audio list cannot be empty" error. And a subtle one: because mix and overlay pad to the longest file, a short clip won't loop to fill the gap, so if you expected background music to cover a 30s narration, you need to concatenate the music first, then overlay. Also, don't set fade_duration longer than the shortest segment - the code clamps it, but for concatenate crossfades longer than a clip will eat the whole clip. Small math, big difference when you're syncing lips.

CategoryListHelper/Audio

Inputs (5)

NameTypeDefaultDescription
audio_listAUDIO
combine_modeCOMBOconcatenate3 options: concatenate, mix, overlay
fade_durationoptFLOAT0.00–5
normalize_outputoptBOOLEANtrue
target_sample_rateoptINT441008000–192000

Outputs (1)

NameTypeDescription
AUDIOAUDIO