Audio Separator β‘π ‘π π £π
Pull vocals, drums, bass, and everything else apart with OpenUnmix
- model
- audio
- audio
- drums_audio
- vocals_audio
- bass_audio
- other_audio
This is the node behind the "separate instruments" line in this pack's own README: feed it a track and a loaded OpenUnmix model, and it splits the mix into vocals, drums, bass, and everything left over as "other." OpenUnmix isn't some in-house guess at source separation - it's a real, established open-source music source separation model, and this node is a thin, straightforward wrapper around it.
Inputs and outputs
model(OPEN_UNMIX_MODEL) - you need a separate loader node upstream to produce this;AudioSeparatorSimpleitself doesn't load or download anything, it just runs whatever model you hand it.audio- the mix you want separated.
Outputs: audio (a passthrough/reconstructed version), drums_audio, vocals_audio, bass_audio, and other_audio - the standard four-stem split.
How it works, and what to expect
OpenUnmix was trained on well-produced studio recordings, and it shows: a clean stereo mix separates cleanly, and vocals/drums/bass isolation genuinely holds up. Feed it something mono, heavily compressed, or already lossy-encoded multiple times, and expect more bleed between stems - the model's doing its best with less information to work from, not failing outright. Use the split stems for things like feeding AudioFeatureExtractor a drum-only or vocal-only signal, so your reactive effects lock onto one instrument instead of the whole mix.
Installing it
ComfyUI Manager: search RyanOnTheInside, install, restart. Manual:
cd ComfyUI/custom_nodes
git clone https://github.com/ryanontheinside/ComfyUI_RyanOnTheInside
cd ComfyUI_RyanOnTheInside
pip install -r requirements.txt
openunmix is in this pack's requirements.txt, so a normal install covers the Python side. What it doesn't cover is model weights: OpenUnmix pulls its pretrained separator weights down on first use, not at install time - so your first separation will pause for a download before it actually starts processing. After that it's cached locally like any other model.
Where people get burned
The download-on-first-use pattern catches people who assume the pack install finished everything - if the node seems to hang the first time you run it, it's probably fetching weights, not stuck. Check your console log to confirm.
Separation quality is entirely a function of your source material, not a setting on this node - there's nothing to tune here that will fix bleedy separation on a bad source file. And a general note that applies to this node as much as anywhere: this pack, like every custom node pack, installs its Python dependencies into the same environment as everything else in your custom_nodes folder. If you've got a lot of other packs installed and something breaks after adding this one, a version conflict on a shared dependency (rather than this node itself) is worth checking first - it's the single most common failure mode in the ComfyUI ecosystem broadly, not specific to this pack.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| model | OPEN_UNMIX_MODEL | OpenUnmix model for audio separation | |
| audio | AUDIO | Input audio to be separated into stems |
Outputs (5)
| Name | Type | Description |
|---|---|---|
| audio | AUDIO | β |
| drums_audio | AUDIO | β |
| vocals_audio | AUDIO | β |
| bass_audio | AUDIO | β |
| other_audio | AUDIO | β |