Apply Demucs
Run Demucs and get drums, bass, vocals and other back separately
- 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(typeDEMUCS) - fromSDT_DemucsLoader, required.audio- the mixed clip to separate, required.drums,bass,other,vocals- four separateAUDIOoutputs. Wirevocalsinto a transcription or VAD node if cleanup is the goal; wire multiple stems intoSDT_ConcatAudioor 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.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| model | DEMUCS | — | |
| audio | AUDIO | — |
Outputs (4)
| Name | Type | Description |
|---|---|---|
| drums | AUDIO | — |
| bass | AUDIO | — |
| other | AUDIO | — |
| vocals | AUDIO | — |