LC Audio Separate πΌ
Real Demucs stem separation, bass/drums/other/vocals, inside ComfyUI
- audio
- Bass
- Drums
- Other
- Vocals
This is the heavy hitter of the pack's audio side. LC Audio Separate takes a full mix and hands back four clean stems - Bass, Drums, Other, Vocals - using torchaudio's Hybrid Demucs model (HDEMUCS_HIGH_FINDLY). Want an acapella without buying one? Vocal stem out. Want a beat to score under a different clip? Drums and bass. This is the same four-stem layout the common AudioSeparation nodes use, so if you've seen that workflow pattern, this drops into place.
Read the fine print before you get excited: this is the one node in the pack with a real dependency. It needs torchaudio, and the first time it runs it downloads the Hybrid Demucs model from torchaudio's pipeline bundles. There's no way around that - it's the model doing the work. What it deliberately doesn't need is the Numba and SoX stack that some other audio packs drag in; the author rewrote the seam handling in plain NumPy.
How it works
The full mechanism is worth understanding because it determines what you'll fiddle with:
- Mono input is doubled to stereo first; everything is resampled to the Demucs model's native rate, then split into overlapping chunks.
- Each chunk goes through the model and comes back as four stems.
- The chunks are crossfaded back together so the joins don't click. That's what
chunk_length,chunk_overlap, andchunk_fade_shapecontrol.
The trade-off is the eternal VRAM-versus-seams one. chunk_length (seconds per chunk, default 10) is the main lever: longer chunks mean fewer seams but more VRAM - the tooltip's guidance of 8β12 s on a 16 GB card, dropping to 4β6 s if you OOM, is accurate. chunk_overlap (fraction, default 0.1) hides splice clicks at the cost of speed; zero is fastest and can click. chunk_fade_shape picks how one chunk hands over to the next - linear is the safe default, half_sine the smoother one, and the log/exp options exist if you're chasing a specific artifact.
The outputs that matter
Four AUDIO outputs, named exactly as you'd expect: Bass, Drums, Other, Vocals. Wire whichever you need forward - vocals into a re-EQ and on to LC Save Video's audio socket, drums through LC Audio Volume, and so on. The stems stay separate, so you can also remix them by routing each through a volume node before combining.
How to install it
Ships in lonecatone23/ComfyUI_LC_AV_nodes (LC Audio_Video, MIT, companion to the image-side ComfyUI_LC123_nodes):
- ComfyUI Manager: search "LC Audio_Video" or
ComfyUI_LC_AV_nodes. - Manual:
cd ComfyUI/custom_nodes && git clone https://github.com/lonecatone23/ComfyUI_LC_AV_nodes, restart.
Then make sure torchaudio is present in ComfyUI's Python (pip install torchaudio into the same environment if it isn't). The Demucs model downloads itself on first use - a one-time wait, and you'll see it in the model cache afterward. Console should print [LC AV] total 16 nodes.
Where it goes wrong
Two failure modes dominate. If the node errors out with a message about Hybrid Demucs, it's almost always torchaudio missing or a model download that got blocked - check your environment, not the node. And if it OOMs on long files, don't blame the pack: shorten chunk_length. Also set expectations on speed - this is real inference over your whole track, so a two-minute song takes a while, not a moment. For simply pulling the left channel off a file, the pack's LC Audio Channel is instant and does the same job for that narrow case; don't run Demucs when you just want one side.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| audio | AUDIO | Full mix. Split into four Hybrid Demucs stems: Bass, Drums, Other, Vocals. Mono is doubled to stereo first. Needs torchaudio; no Numba/SoX. Use LC Audio Channel if you only want L/R. | |
| chunk_fade_shape | COMBO | linear | Crossfade shape between overlapping chunks. Linear is safest. half_sine is smoother. logarithmic / exponential change how fast the next chunk takes over at the seam. |
| chunk_length | FLOAT | 10.01β600 | Seconds sent to Demucs at a time. Longer = fewer seams, more VRAM. 8β12 s is a good default on 16 GB; drop toward 4β6 if it OOMs. |
| chunk_overlap | FLOAT | 0.100β0.9 | Fraction of each chunk that overlaps the next (0.1 = 10%). Higher hides splice clicks; 0 is fastest and can click at joins. |
Outputs (4)
| Name | Type | Description |
|---|---|---|
| Bass | AUDIO | β |
| Drums | AUDIO | β |
| Other | AUDIO | β |
| Vocals | AUDIO | β |