ComfyUI Node

Audio Mixer

Mixing audio inside ComfyUI

By alice-lab-dev·Created about a month ago·Updated 10 days ago· 2
Audio Mixer
  • audio_1
  • audio_2
  • audio_3
  • audio_4
  • audio_5
  • audio_6
  • audio_7
  • audio_8
  • mixed_audio
  • track_1
  • track_2
  • track_3
  • track_4
  • track_5
  • track_6
  • track_7
  • track_8
master_db0.0
prevent_clippingtrue
track_settings[]
reset_before_runfalse

ComfyUI has gotten genuinely good at making audio - TTS engines, music models, foley. What it's never been good at is arranging it. Until now, mixing three clips into one soundtrack meant exporting each one, opening a DAW, and exporting again. Audio Mixer puts a proper little multi-track timeline right in the graph so the whole edit stays in ComfyUI.

It's the biggest node in the ALICE Lab Audio Tools pack (a fresh, alpha-stage pack from a Japanese dev - the README is bilingual EN/JA - with essentially no community footprint yet, so consider this article one of the few write-ups anywhere). Audio Mixer is the flagship: up to eight AUDIO inputs arranged on a shared timeline with waveform previews, per-clip gain, position, fades, mute and solo, a master gain, and clipping protection. It's a mini-DAW with training wheels, and for the price (no model downloads, no Python deps) it's very much worth having.

How it works

The node is a pure torch mix bus. All connected sources are standardized to the highest sample rate among them, each clip gets its gain (10^(dB/20)), timeline offset, and fades applied, then everything is summed onto one bus. A positive offset delays a clip; a negative offset cuts samples that fall before the timeline start. The README is refreshingly blunt about what prevent_clipping is not: it's a uniform peak-normalization step, not a limiter, compressor, or LUFS normalizer. If the mixed peak exceeds 1.0 it rescales the whole mix down - it won't squash transients for you.

The inputs that actually matter:

  • audio_1 through audio_8 - optional, wire in whatever tracks you have.
  • master_db - master gain, −100 to +24 dB, 0 is unity.
  • prevent_clipping - on by default, and I'd leave it on.
  • reset_before_run - clears all your clip edits, pastes, gain, position, and fades before mixing. Your "start over" button.

track_settings is the serialized JSON the UI writes behind the scenes. Don't hand-edit it; that's a trap. Edit clips in the node instead: click a clip to select, drag it along the timeline, drag its edges to shorten or extend (trimmed audio is restorable; areas past the source become silence), drag the top handles for linear fades, right-click for copy/cut/duplicate/delete, and double-click the dB, Pos, Fade In, or Fade Out label to zero that value.

Outputs

  • mixed_audio - the finished bus. This is the one you save or feed into Replace Video Audio.
  • track_1 through track_8 - each track processed (gain, position, fades applied) so you can keep individual stems. Muted, inactive-solo, and missing tracks emit a block instead of silent audio, so anything downstream silently skips - keep that in mind if a branch "disappears" from your render.

Install

# ComfyUI Manager → Install Custom Nodes → search "ComfyUI ALICE Lab Audio Tools" → Install → restart
# or:
cd ComfyUI/custom_nodes
git clone https://github.com/alice-lab-dev/ComfyUI-ALICE-Lab-Audio-Tools
# restart ComfyUI, then Add Node → ALICE_Lab → Audio

No pip dependencies and nothing to download, but you do need ffmpeg and ffprobe visible to the process that launches ComfyUI (on macOS, /opt/homebrew/bin and /usr/local/bin are checked automatically), and a current ComfyUI build with the native AUDIO type. If the node doesn't appear, hard-refresh the browser and check the terminal for import errors.

The gotchas

The 8-track cap is real - don't plan a 12-track session here. And the always-rerun design (the node forces itself to rebuild every run so audio and UI never go stale) means it's not a free lunch, but for a mixer that's the correct trade. If your mix suddenly sounds wrong, check mute/solo first; then check whether reset_before_run has been flipped on. When it all lines up, you get a real soundtrack without ever leaving the graph.

CategoryALICE_Lab/Audio

Inputs (12)

NameTypeDefaultDescription
master_dbFLOAT0.0-100–24
prevent_clippingBOOLEANtrue
track_settingsSTRING[]
reset_before_runBOOLEANfalse
audio_1optAUDIO
audio_2optAUDIO
audio_3optAUDIO
audio_4optAUDIO
audio_5optAUDIO
audio_6optAUDIO
audio_7optAUDIO
audio_8optAUDIO

Outputs (9)

NameTypeDescription
mixed_audioAUDIO
track_1AUDIO
track_2AUDIO
track_3AUDIO
track_4AUDIO
track_5AUDIO
track_6AUDIO
track_7AUDIO
track_8AUDIO