ComfyUI Node

Apply Demucs

Run Demucs and get drums, bass, vocals and other back separately

By kale4eat·Created 2 years ago·Updated about a year ago· 23
Apply Demucs
  • model
  • audio
  • drums
  • bass
  • other
  • vocals

This is where Demucs actually runs. Feed it a loaded model and a clip, and it hands back four separate AUDIO outputs - drums, bass, other, and vocals - split out of whatever mixed audio you gave it. For a speech-dataset pipeline the payoff is usually the vocals output specifically: strip the music out before you transcribe, and Whisper (or kotoba-whisper) has a much cleaner signal to work with.

How it works

It runs the Demucs model loaded by SDT_DemucsLoader over the input clip using whatever shifts, overlap, segment, and split settings were configured on the loader - this node itself takes no processing parameters of its own, it's pure "apply the model" with all the tuning living upstream. Demucs' four-stem split (drums/bass/other/vocals) is the standard decomposition it was trained on, and it applies that same split regardless of what's actually in your source audio - if there's no drums in the clip, the drums output will just be quiet/near-silent, not absent.

The inputs and outputs that matter

  • model (type DEMUCS) - from SDT_DemucsLoader, required.
  • audio - the mixed clip to separate, required.
  • drums, bass, other, vocals - four separate AUDIO outputs. Wire vocals into a transcription or VAD node if cleanup is the goal; wire multiple stems into SDT_ConcatAudio or a remix chain if you're doing something more creative with the split.

How to install it

ComfyUI Manager: search ComfyUI-speech-dataset-toolkit, install, restart. Manual:

cd ComfyUI/custom_nodes
git clone https://github.com/kale4eat/ComfyUI-speech-dataset-toolkit
cd ComfyUI-speech-dataset-toolkit
pip install torchaudio --index-url https://download.pytorch.org/whl/cu121
pip install -r requirements.txt

The weight is all on the loader side - this node just needs a DEMUCS model handed to it.

Common issues & troubleshooting

Slow to run. This is really a SDT_DemucsLoader tuning question - check shifts and whether you picked htdemucs_ft there, since this apply node just executes whatever those settings dictate.

Vocals stem still has audible background noise or music bleed. Expected on difficult source material - dense mixes, heavy reverb, or unusual instrumentation can all produce some bleed between stems. If it's bad enough to hurt downstream transcription, running SDT_DemucsApply once and checking the vocals output by ear (via SDT_PlayAudio) before you commit to a whole batch pipeline is worth the ten seconds.

Ran it on a clip that's already just speech, no music. Demucs will still separate it - you'll typically get a vocals stem close to the original and near-silent drums/bass/other. That's not an error, just Demucs doing its job on audio it wasn't really built to split; skip this node entirely if your source is already clean speech.

Categoryspeech-dataset-toolkit/ai/demcus

Inputs (2)

NameTypeDefaultDescription
modelDEMUCS
audioAUDIO

Outputs (4)

NameTypeDescription
drumsAUDIO
bassAUDIO
otherAUDIO
vocalsAUDIO