Music - Stem Recombination
Put It Back Together
- vocals
- drums
- bass
- music
- others
- AUDIO
Stem separation only gets you halfway. Once you've split a track into vocals, drums, bass, music and residual, you need a node that puts them back together - which is exactly what Music - Stem Recombination does. It's the natural companion to Music - Stem Separation, and it's the node that makes the whole "remix inside ComfyUI" idea click.
The interface
Five AUDIO inputs (VOCALS, DRUMS, BASS, MUSIC, OTHERS) and five volume sliders, one per stem:
vocals_volume,drums_volume,bass_volume,music_volume,others_volume- each 0 to 2, default 1.
That's the entire node. Feed it the five outputs of Stem Separation, dial each stem's level, get one AUDIO output. Everything stays in the same sample rate and channel layout, so it chains cleanly with the rest of the pack.
What it's actually for
The pattern is: split → process → recombine. Separating just to separate is pointless; the payoff is being able to touch stems independently. Typical graphs:
Load Audio -> Stem Separation -> Stem Recombination -> Save Audio
(pass-through, no-op - but a valid way to verify the chain)
Load Audio -> Stem Separation
VOCALS -> Music_Equalize -> Stem Recombination
DRUMS -> Music_Compressor -> Stem Recombination
(vocal EQ on the vocal stem only, drums compressed in isolation)
Load Audio -> Stem Separation -> Stem Recombination (vocals_volume: 0.3)
(the karaoke move - duck the vocal without any model)
That last one is the killer use case for the pack's heuristic stems. Because the stems aren't clean, you don't want to treat them like studio tracks - but for leveling, they're more than good enough. Turning the vocals down to 0.3 on a dense mix gets you a decent instrumental with zero GPU and zero model downloads.
The gotcha: headroom
The pack's README mentions "safe headroom" on recombination, and it matters in practice. Each stem from Stem Separation is normalized to peak near 1.0 (it says so in the source), so if you recombine five stems all at volume 1.0, the sum peaks well above 1.0. The node handles this internally to avoid clipping, but the practical lesson is: don't push several stems above 1.0 expecting more loudness - you'll just compress your headroom away. If the result sounds quieter than the original, that's the safe-sum trade; follow it with LUFS normalization or a limiter if you need loudness back.
Where the trap lives
The real trap is expecting quality stems to recombine into a quality mix. The pack's stem split is a fast heuristic - vocals bleed, drums smear. Recombining clean-looking stems at equal volume can reveal artifacts that were hidden in the mix. If that happens, it's not the recombination node's fault; it's the source split. Back off the problem stems, or use real neural separation if you need surgical results.
Install
Same pack, same drill:
cd ComfyUI/custom_nodes
git clone https://github.com/jeankassio/ComfyUI_MusicTools.git
cd ComfyUI_MusicTools
python -m pip install -r requirements.txt
Restart and look under music. Pure NumPy/SciPy, no models, works on CPU.
Inputs (10)
| Name | Type | Default | Description |
|---|---|---|---|
| vocals | AUDIO | — | |
| drums | AUDIO | — | |
| bass | AUDIO | — | |
| music | AUDIO | — | |
| others | AUDIO | — | |
| vocals_volume | FLOAT | 1.00–2 | — |
| drums_volume | FLOAT | 1.00–2 | — |
| bass_volume | FLOAT | 1.00–2 | — |
| music_volume | FLOAT | 1.00–2 | — |
| others_volume | FLOAT | 1.00–2 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| AUDIO | AUDIO | — |