Nodes/ComfyTV/Audio Mix
ComfyUI Node

Audio Mix

Four faders and a pan knob — ComfyTV's Audio Mix is the glue for your soundtrack

By jtydhr88·Created 3 months ago·Updated about 16 hours ago· 725
Audio Mix
  • audio_a
  • audio_b
  • audio_c
  • audio_d
  • audio
force_run_token0
project_id
parent_output_id0
pan_lawaudacity
dithernone
gain_a0.0
pan_a0.00
gain_b0.0
pan_b0.00
gain_c0.0
pan_c0.00
gain_d0.0
pan_d0.00

The Audio Mix stage is ComfyTV's answer to "I have four audio tracks and they need to become one." You generate a stem, a foley loop, a voice-over, and a music bed - they all want to be one WAV before anything downstream cares about them - and this node is the four-channel fader bank that gets you there. It's the glue of the audio suite, sitting between your sources and whatever plays or exports them.

Mechanically it's plain, boring, and exactly what you want from a mixer: up to four audio inputs (audio_a through audio_d), each with its own gain (−60 to +12 dB) and pan (−1 to 1, so full left to full right), summed into a single stereo output named audio. The two combo controls that actually matter: pan_law (audacity or constant_power) chooses how loud a panned signal stays - Audacity's law is the everyday default, constant-power is the more "proper" studio choice for center-image preservation - and dither adds noise-shaped dithering (tpdf / shaped) to tame quantization at low levels before you export. Set dither to none unless you're hearing audible hiss artifacts on a quiet mix; it's a detail, not a feature.

Every ComfyTV AudioFX node also carries three hidden inputs you should ignore: force_run_token, project_id, and parent_output_id. That's ComfyTV's internal plumbing for its per-node Run model - each stage runs on its own and downstream stages consume its snapshot, so you can re-mix one channel without re-running the whole generation chain above it. That per-node independence is the whole reason the audio suite feels like an editor instead of a pipeline.

What you actually set is just the gain/pan on the two or three channels you care about. Start everything at 0 dB and pull the quiet sources up; if you're mixing a vocal over music, the old trick still applies - dip the music a few dB, don't push the vocal. And because the stage also accepts a video input in place of an audio one (it extracts the clip's audio track), you can mix the soundtrack of a rendered video directly into your arrangement.

Install is the pack-wide story: via ComfyUI Manager search "ComfyTV", or

cd ComfyUI/custom_nodes
git clone https://github.com/jtydhr88/ComfyTV

then restart. On ComfyUI Desktop or macOS with several ComfyUI installs, clone into the running instance by absolute path or you'll get the classic "clone succeeded, nodes never show up" failure. ComfyTV declares zero extra Python dependencies - this mixer is a PyAV/FFmpeg filter graph, no model, no pip install, no GPU.

One honest caveat: this is a sum mixer, not a bus mixer. There's no per-channel EQ or compression inside it - those are separate stages (the AudioFX subcategory has an EQ and dynamics nodes of their own). Chain those before or after this, or stack them into an FX Chain. For gluing 2–4 finished tracks together, this is the one you'll reach for.

CategoryComfyTV/AudioFX

Inputs (17)

NameTypeDefaultDescription
force_run_tokenINT00–2147483647Internal — bumped on Run to invalidate ComfyUI's input cache.
project_idSTRINGInternal — populated by the projectStore on the frontend.
parent_output_idINT00–2147483647Internal — lineage parent set by spawn handlers on the frontend.
pan_lawCOMBOaudacity2 options: audacity, constant_power
ditherCOMBOnone3 options: none, tpdf, shaped
gain_aFLOAT0.0-60–12
pan_aFLOAT0.00-1–1
gain_bFLOAT0.0-60–12
pan_bFLOAT0.00-1–1
gain_cFLOAT0.0-60–12
pan_cFLOAT0.00-1–1
gain_dFLOAT0.0-60–12
pan_dFLOAT0.00-1–1
audio_aoptCOMFYTV_AUDIO
audio_boptCOMFYTV_AUDIO
audio_coptCOMFYTV_AUDIO
audio_doptCOMFYTV_AUDIO

Outputs (1)

NameTypeDescription
audioCOMFYTV_AUDIO