Vocals using MDX
Pull vocals out of any track without leaving ComfyUI
- input_sound
- Vocals
- Complement
You want an acapella, you want a karaoke version, or you want the vocal track to drive an audio-reactive AnimateDiff workflow - and you'd rather not open a second app to get it. That's exactly what Vocals using MDX (AudioSeparateVocals) does: drop an AUDIO signal in, get the clean vocal stem and everything-else out, all inside the graph.
It's one node in the Audio Separation (Demix) pack by Salvador Tropea (set-soft), which pairs tiny MDX-Net models with the bigger, fancier Demucs models. This node is the fast-and-light end of that trade. If you've seen the UVR5 / Ultimate Vocal Remover ecosystem, you've seen these models before - the pack collects 46 of them, mostly from that project, and turns them into plain ComfyUI nodes.
How it works
MDX-Net is a music-demixing architecture that works in the frequency domain. The node runs the model over short-time Fourier transform (STFT) spectrogram chunks and reconstructs the audio back via overlap-add - that's where the segments input comes in. The neat part is how it gets the second output: it doesn't run a second model. Complement is just the input minus the vocals. That's why, as the README is careful to point out, a dedicated instrumental model usually beats a vocals node's Complement output.
Everything is normalized before processing: any sample rate is resampled to the 44.1 kHz the models were trained on, mono gets faked into stereo (left == right), and a batch in means a batch out (processed one track at a time, not in parallel). Outputs are ComfyUI's standard AUDIO type, so they plug straight into core PreviewAudio / SaveAudio nodes.
The inputs that matter
model- the whole point. A dropdown of 16 vocal MDX models (Kim Jensen, KUIELab A/B, UVR 9482/9703/9682…). A model with ⬇️ hasn't been downloaded yet; 💾 means it's on disk. Models auto-download toComfyUI/models/audio/MDXthe first time you run with them. The default, Kim Vocal 2, is a fine place to start.segments- how many chunks to process at once (1–64, default 1). More chunks = more VRAM but fewer discontinuities between segments. Leave it at 1 unless you hear stitching artifacts.target_device-cpuorcudafor the inference. Defaults to what your machine has.input_sound- the AUDIO you're demixing. Feed it from coreLoadAudio.
Installing it
The easy route: ComfyUI Manager, search Audio Separation, install, restart. The manual route:
cd ComfyUI/custom_nodes/
git clone https://github.com/set-soft/AudioSeparation
pip install seconohe
# then restart ComfyUI
The only extra Python package is seconohe, the author's helper library - everything else (torchaudio, numpy, safetensors, tqdm) is already in a stock ComfyUI install, so there's no heavy dependency drag. Nodes land under audio/separation in the Add Node menu, and there are ready-made template workflows under Workflow → Browse Templates → Audio Separation.
Where people get burned
- The model dropdown can fall out of sync after a download. Press
Rto refresh ComfyUI and pick the name again - the pack literally tells you to do this. - Your first run is a download run. MDX models are small (21–65 MB) so this is painless, but it's not instant.
- Don't judge the pack by the Complement output. For instrumentals, use the dedicated Instrumental using MDX node - you'll get a better result than subtracting vocals.
If your source is a clean studio mix, vocals are the easiest stem of all, and this node nails it on the first try. Quality-per-megabyte is hard to beat; when MDX artifacts show up, that's what the Demucs node in the same pack is for.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| input_sound | AUDIO | — | |
| model | COMBO | 16 options: ⬇️ Kim Jensen 2, ⬇️ KUIELab A, ⬇️ KUIELab B, ⬇️ Kim Jensen 1, ⬇️ UVR (9482), ⬇️ UVR 1 (9703), +10 | |
| segments | INT | 11–64 | — |
| target_device | COMBO | cpu | The device (CPU or CUDA) to which the projection layer will be assigned for computation. |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| Vocals | AUDIO | — |
| Complement | AUDIO | — |