Nodes/Isaac's Nodes/Isaac's Audio Unmixer (drums)
ComfyUI Node

Isaac's Audio Unmixer (drums)

Pull drums, vocals, and 'everything else' out of any track — locally

By iemesowum·Created 2 years ago·Updated about a year ago· 1
Isaac's Audio Unmixer (drums)
  • audio
  • drums
  • vocals
  • other

Isaac's Audio Unmixer is the workhorse of Isaac's Nodes - the reason the pack exists. It takes any audio track and splits it into three stems: drums, vocals, and other, using a real neural source-separation model running entirely on your machine. No API, no key, no upload. Drop a song in, get the kick and snare out the other side.

Why would you want that? The classic use is audio-reactive animation. In the audio-synced AnimateDiff corner of the ecosystem, people separate stems and use the drum track's amplitude to drive per-frame parameters - ControlNet strength, AnimateDiff motion amount, IPAdapter switching - so the motion lands on the beat instead of vaguely wobbling. Isolating the drums is how you get a clean beat signal instead of one smeared across vocals and melody. Same trick works if you want a vocal-free backing track or just the acapella.

How it works

The node is a thin wrapper around Open-Unmix (UMXL). On import it builds a separator with umxl(targets=['drums', 'vocals', 'other']), then runs the waveform through predict.separate(). The heavy lifting is the UMXL model itself, a 64-band deep-encoder/decoder network trained to demix music. It's the same family of models that made Music Demixing Challenges a thing - real source separation, not an EQ guess.

Three practical things to know about how it runs:

  • It auto-downloads the model on first use. The code comment says it plainly: "load unmix model (auto download)". That first run will stall while it pulls the pre-trained UMXL weights, so don't panic if the queue sits there a while. Subsequent runs use the cached weights.
  • It speaks the VideoHelperSuite audio format. The input is the standard ComfyUI AUDIO dict - waveform plus sample rate - which is exactly what VHS's Load Audio node produces. Wire a VHS audio output straight in.
  • It outputs three separate AUDIO streams, one per stem, all at the input's sample rate.

There's a small code smell worth a grin: the source creates three BytesIO buffers it never uses - leftover scaffolding from a draft where it probably wrote files. Harmless, and it tells you this is a personal tool that got published as-is rather than a polished library.

Inputs and outputs

Just one required input, three outputs:

  • audio (required) - an AUDIO dict, e.g. from VHS Load Audio.
  • drums - the percussive stem.
  • vocals - the sung stem.
  • other - everything that isn't drums or vocals (guitars, keys, bass, pads...).

Wire the outputs to a VHS audio preview, an audio save node, or - for the audio-reactive workflow - into your amplitude-analysis chain. The drums output is the one you'll most often reach for.

How to install it

ComfyUI Manager → Install Custom Nodes → search "Isaac's Nodes" (or ComfyUI_IsaacNodes) → install → restart. Manager reads the pack's dependency and installs it for you. Manually:

cd ComfyUI/custom_nodes
git clone https://github.com/iemesowum/ComfyUI_IsaacNodes
cd ComfyUI_IsaacNodes
pip install -r requirements.txt

Then restart. The pack's single real dependency is openunmix[stempeg] (it also pulls in torchaudio, which a normal ComfyUI install already has). The author publishes this as version 1.0.2 under AGPL-3.0.

Common issues

First-run download. The UMXL weights download is the #1 "why is it hanging" moment. Give it time; it's one-time.

It's not a real-time tool. UMXL is a big model and the separation is compute-heavy - plan to batch it, not stream it. If you need fast or real-time stems, the Demucs-based nodes are generally quicker and often sound better; UMXL's edge is that it's what this pack is built around and it just works.

Missing module errors. If you cloned by hand and skipped pip install -r requirements.txt, you'll hit ModuleNotFoundError: openunmix. Manager installs avoid this. If torchaudio throws, make sure your ComfyUI environment actually has it.

"Other" is a grab-bag. There are four classic stems in demixing land (bass, drums, other, vocals) - this node deliberately only asks for three, so bass lives inside other. If you were hoping for a clean bass line, you won't find it here.

Small pack, real tool. If your workflow needs the beat separated from the song, this is the node that does it without leaving your machine.

CategoryIsaac's Nodes

Inputs (1)

NameTypeDefaultDescription
audioAUDIO

Outputs (3)

NameTypeDescription
drumsAUDIO
vocalsAUDIO
otherAUDIO