Mel-Band RoFormer Sampler
Cut the vocals out of anything — the sampler that turns one song into two
- model
- audio
- vocals
- instruments
This is the node you actually came for. Feed it a model from the MelBandRoFormerModelLoader and an AUDIO input, and it hands back two AUDIO outputs: vocals and instruments. The example workflow is genuinely just LoadAudio → MelBandRoFormerSampler → two PreviewAudio nodes. That's the whole pipeline - no settings buried three menus deep.
What it's doing under the hood
The sampler takes the {waveform, sample_rate} dict that ComfyUI calls AUDIO, upmixes mono to stereo, and resamples whatever you fed it to 44.1kHz. Then it runs the Mel-Band RoFormer over the song in overlapping ~8-second windows (the model's context is 352,800 samples at 44.1k, stepped 4 seconds at a time) with a short crossfade so chunks stitch together without clicks, averaging the overlap regions.
The model estimates a mask for what's vocal. Vocals = that mask applied to the input. Instruments = the original minus the vocals. That last part is worth internalizing: the two outputs sum back to exactly the original signal, so you never lose audio - and the "instrumental" is a subtraction, which explains one of the artifacts below.
What you set, what you get
Inputs are sparse on purpose:
- model - the
MELROFORMERMODELoutput from the loader. Only that node produces it. - audio - any
AUDIOsource: coreLoadAudio, or a yt-dlp download node, or the audio output of an audio-to-video workflow.
Outputs are vocals and instruments, both AUDIO at 44.1kHz. Wire them into PreviewAudio to listen, SaveAudio to write a file, or Video Helper Suite's audio nodes if you're mashing this into a video project.
Why you'd bother
If you live in ComfyUI for image and video work, this is a detour - but a genuinely useful one. The most common pairing on the ground is download + split: grab a track with a yt-dlp node, feed the result straight in here, and get an acapella and an instrumental without ever leaving the graph. It beats standing up a separate Demucs install for a one-off, and at 456 MB the model isn't eating your disk.
The gotchas, honestly
- Output is always 44.1kHz. Feed it a 48kHz file and it comes back at 44.1. Not a bug, just know it's happening if you're matching sample rates downstream.
- It's GPU-based. The model gets moved to your compute device, so the first run has a warm-up hiccup. Long songs are chunked, so memory stays bounded - a full track won't OOM you the way a video gen might.
- Vocals leaking into the instrumental is normal. Because instruments are computed by subtraction, anything the model gets wrong about the vocals lands in the other stem. A bit of voice bleeding through isn't a malfunction - it's what separation looks like for this whole class of model. If you need surgical stems, a dedicated multi-stem tool will beat a two-stem pack.
That's it. Two inputs, two outputs, one pretty good acapella. For the price of a single node search it's hard to argue with.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| model | MELROFORMERMODEL | — | |
| audio | AUDIO | — |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| vocals | AUDIO | — |
| instruments | AUDIO | — |