ComfyUI Extension: audio-separation-nodes-comfyui

Authored by christian-byrne

Created

Updated

587 stars

Run ComfyUI workflows without the setup

No installs, no CUDA version roulette, no GPU sitting idle on your bill. Bring a workflow and run it in the browser.

Separate audio track into stems (vocals, bass, drums, other). Along with tools to recombine, tempo match, slice/crop audio.

README

worklow picture

https://github.com/user-attachments/assets/c5cf20de-a17f-438d-81ac-0c392af669cf

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

<details> <summary> &nbsp; Show </summary>

[!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

https://github.com/user-attachments/assets/c5af418e-7137-4c36-b86e-3352cf558ea8

</details>

Replacing BGM with StableAudio-Generated BGM

<details> <summary> &nbsp; Show </summary>

[!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

https://github.com/user-attachments/assets/a7d5656b-5f8b-439a-936f-6ebb6a0d538a

</details>

Remixing Songs with StableAudio

<details> <summary> &nbsp; Show </summary> </details>

Separating Song Vocals

<details> <summary> &nbsp; Show </summary>

workflow.json

https://github.com/user-attachments/assets/c5cf20de-a17f-438d-81ac-0c392af669cf

</details>

Extracting Instrumentals from Songs

<details> <summary> &nbsp; Show </summary> </details>

 

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

<details> <summary><b>BadZipFile / "failed finding central directory"</b></summary>

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.

</details> <details> <summary><b>ConnectionResetError on Windows</b></summary>
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.

</details>

Run ComfyUI workflows without the setup

No installs, no CUDA version roulette, no GPU sitting idle on your bill. Bring a workflow and run it in the browser.

Learn more