Nodes/ComfyUI-GGUF-Loader/Audio Stem Split ⚡
ComfyUI Node

Audio Stem Split ⚡

Split a song into vocals and instrumental without leaving ComfyUI

By ChrisColeTech·Created about a month ago·Updated 4 days ago· 10
Audio Stem Split ⚡
  • audio
  • vocals
  • instrumental
model_name

You've got a finished song and you want the voice on its own - for a lip-sync test, an A2V voice clone, or just to re-mix the vocals over something else. Audio Stem Split is the node that does it inside the graph: one AUDIO in, vocals and instrumental out, sample rate and channel count preserved on both. No external app, no exporting stems to a DAW, no cloud service. It's part of the CCTech audio tooling bundled in the ChrisColeTech/ComfyUI-GGUF-Loader pack, and it's about as simple as a node gets to operate.

What it actually does

Under the hood it runs a MelBandRoformer model - the band-split transformer architecture that's become the default for stem separation in the open ecosystem - and it separates in one shot. The clever bit of the implementation is that it estimates only the vocal stem; the instrumental is literally wave - vocals, whatever the model left behind. Then it resamples back to your source rate and hands you both stems as standard comfy AUDIO. One required input beyond the audio itself:

  • model_name - which MelBandRoformer checkpoint to use, picked from models/scenema-audio/extras/mel-band-roformer/. If the dropdown only shows none, that's the problem: no checkpoint in the folder yet.

The outputs are vocals (AUDIO) and instrumental (AUDIO). Wire the vocals into an LTX-2.3 reference_audio slot for a lip-synced clip, or chain it into a voice-clone node - and keep the instrumental as the music bed underneath.

Why you'd bother

The audio layer of ComfyUI lives at the edge of the ecosystem, in bespoke node packs rather than core - that's just where this stuff lives today. But the moment your video workflows gained sound, a stem split stopped being a nice-to-have. The LTX-2.3 talking-head workflows in this same pack want a clean reference voice; feeding the whole mixed song into an audio-to-video node is how you get the model fighting the drums. Splitting first is the difference between "the lips say the lyrics" and "the lips vaguely move".

Installing it

The node ships inside the pack, so install the pack once. In ComfyUI Manager, search for ComfyUI-GGUF-Loader (by ChrisColeTech), or:

cd ComfyUI/custom_nodes
git clone https://github.com/ChrisColeTech/ComfyUI-GGUF-Loader
cd ComfyUI-GGUF-Loader
pip install --upgrade gguf

Then restart ComfyUI. The only hard dependency for inference is gguf; sentencepiece and protobuf (tokenizer support) are in requirements.txt too - the classic "No module named sentencepiece" import error is solved by installing those. This node itself needs the MelBandRoformer weights, which are not auto-downloaded: drop a checkpoint into models/scenema-audio/extras/mel-band-roformer/. The Scenema extras (the same ChrisColeTech/scenema-audio HuggingFace repo the pack's audio nodes reference) have them.

Gotchas

The dropdown showing only none is the whole failure mode here - the node is otherwise deliberately boring. One thing worth knowing: stem separation is a real model load, so the first run pays a weight-loading cost and it uses GPU memory while it works. Keep it at the front of the graph and cache the split if you're going to re-run the same track; there's no reason to pay for it twice.

Category🤖 CCTech/MiniMax Music

Inputs (2)

NameTypeDefaultDescription
audioAUDIO
model_nameCOMBOMelBandRoformer checkpoint from models/scenema-audio/extras/mel-band-roformer.

Outputs (2)

NameTypeDescription
vocalsAUDIO
instrumentalAUDIO