Skip to content

christian-byrne/audio-separation-nodes-comfyui

Repository files navigation

worklow picture

isolate-vocals-song.mp4

Nodes

Node Description
Audio Separation Separate audio into four stems (bass, drums, other, vocals) using Hybrid Demucs.
Audio Combine Combine two audio tracks by overlaying their waveforms (add, mean, subtract, multiply, divide).
Audio Crop Crop (trim) audio to a specific start and end time.
Audio Tempo Match Match the tempo of two audio tracks by time-stretching both to their average BPM.
Audio Speed Shift Time-stretch or time-compress audio by a given rate.
Audio Get Tempo Get the tempo (BPM) of audio using onset detection.
Audio Video Combine Replace the audio of a VIDEO input with a new audio track.

Examples

Separating Voices in a Video

  Show

[!NOTE]

In order to load videos into the LoadAudio Node, change this line in your Comfy install to include the video's extension (e.g., .mp4)

workflow.json

isolate-vocals-matrix-smaller.mp4

Replacing BGM with StableAudio-Generated BGM

  Show

[!NOTE]

In order to load videos into the LoadAudio Node, change this line in your Comfy install to include the video's extension (e.g., .mp4)

You can use this to replace copyrighted BGM in a video with new BGM. You can set the denoise low, so that the new BGM is still stimilar to the original.

workflow json

bgm-replace.mp4

Remixing Songs with StableAudio

  Show

Separating Song Vocals

  Show

workflow.json

isolate-vocals-song.mp4

Extracting Instrumentals from Songs

  Show

 

Stem Mapping

The Audio Separation node uses Hybrid Demucs to split audio into four stems:

Output Contains
Bass Bass guitar, sub-bass, low-frequency instruments
Drums Drums, percussion, hi-hats
Other Everything else — guitars, keyboards, synths, strings, etc.
Vocals Singing, speech, vocal harmonies

Looking for a specific instrument like guitar? Guitar is included in the Other stem. To isolate guitar, separate first, then use the Audio Combine node to subtract unwanted elements or further process the "Other" output.

Requirements

librosa>=0.10.2,<1
torchaudio>=2.3.0
numpy
moviepy

Installation

  1. If you run ComfyUI inside of a virtual environment, make sure it is activated
  2. git clone this repository in ComfyUI/custom_nodes folder
  3. cd into the cloned repository
  4. pip install -r requirements.txt

Troubleshooting

BadZipFile / "failed finding central directory"

This error means the Hybrid Demucs model checkpoint was corrupted during download. Delete the cached file and restart ComfyUI to trigger a fresh download:

# Default location (Linux/macOS)
rm ~/.cache/torch/hub/checkpoints/*.th

# Windows
del %USERPROFILE%\.cache\torch\hub\checkpoints\*.th

See #21.

ConnectionResetError on Windows
Exception in callback _ProactorBasePipeTransport._call_connection_lost(None)
ConnectionResetError: [WinError 10054]

This is harmless Windows asyncio noise — it does not affect audio separation results. The error comes from Python's ProactorEventLoop closing connections and can be safely ignored. See #9.

About

Separate stems (vocals, bass, drums, other) from audio. Recombine, tempo match, slice/crop audio

Topics

Resources

License

Contributing

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages