UVR Audio Separate
The old-school vocal-remover lane, for people who already own the models
- audio
- model_info
- stem_0
- stem_0_fn
- stem_1
- stem_1_fn
If MSST Audio Separate is the modern lane of this pack, UVR Audio Separate is the legacy lane - and "legacy" here is not a slur. UVR stands for Ultimate Vocal Remover, the tool that defined local vocal separation for years, and MSST WebUI still bundles the machinery to run its classic two-stem models. This node exists so you can keep using that entire old model zoo from inside ComfyUI instead of switching apps. It's the same idea as its MSST sibling, just pointed at the VR model folder instead of the MSST one.
How it works
Identical architecture, different target. Your AUDIO gets written to a temp WAV, a subprocess launches the MSST WebUI package's own Python environment, and the worker script runs MSST's bundled vocal_remover separator with the model file you picked. Result WAVs come back as AUDIO objects and the temp files are cleaned up. The key thing to remember: nothing about this runs inside ComfyUI's Python. It's fully isolated in the MSST environment, which is exactly what keeps a niche audio node like this from nuking your other nodes' dependencies.
The inputs
Four inputs, one fewer than the MSST node because VR models are always two stems - there's no category filter to bother with:
audio(AUDIO) - from MSST Load Audio, or from another separator if you're chaining stems.model_name(COMBO) - the VR models MSST discovered in itspretrain/VR_Modelsfolder. If you've ever downloaded aUVR-MDX-NETor similar model, this is where it shows up.device(COMBO) -auto,cuda, orcpu. Note thatautoon a CUDA build will use the GPU; the worker only forces CPU when you explicitly pickcpu, which is the README's suggestion for tight VRAM.base_filename(STRING) - feeds output naming, wired from Load Audio'sfilenameoutput.
The outputs are model_info (a JSON string describing the model and stems), then exactly two pairs: stem_0/stem_0_fn for the primary stem (usually Vocals) and stem_1/stem_1_fn for the secondary (Instrumental). The port labels update to whatever the model actually calls its stems, just like on the MSST node.
Why you'd reach for this over MSST Audio Separate
Honest take: if you're starting from zero, you probably want the MSST node - its Roformer models are the current quality pick and it handles more than two stems. You pick UVR when you already have the VR models and know what they sound like. A lot of vocal-cleaning workflows were tuned around specific UVR-era models for years, and this node lets you keep using exactly those without leaving ComfyUI. It's a compatibility play more than a quality play, and that's a legitimate reason to exist.
The wiring is the same shape as the rest of the pack:
MSLoadAudio → UVRSeparate ── stem_0 ──→ MSSaveAudio.audio
└──────── stem_0_fn ─→ MSSaveAudio.filename
MSLoadAudio ── folder_path ───────────→ MSSaveAudio.folder_path
Installing it
Same one-time setup as the whole pack:
cd ComfyUI/custom_nodes/
git clone https://github.com/Wang-Huachen/ComfyUI-MSST-WebUI
Edit custom_nodes/ComfyUI-MSST-WebUI/config.json so msst_root points at your MSST WebUI portable install (e.g. D:\MSST_WebUI_1.7.0_v2_cu128), leave python_env empty, restart ComfyUI. ComfyUI Manager works too - search "MSST". The hard requirement is the MSST WebUI package itself: this node has no standalone mode and will not download VR models for you.
Common issues
- Empty model dropdown - the MSST install couldn't be reached or has no VR models in
pretrain/VR_Models. Fixconfig.jsonor drop your models into that folder. - Expecting more than two stems - UVR models are two-stem by construction. Need drums/bass/other? That's the MSST node's job.
- Slow on CPU - these models are older but not free; with
device=cpua full track takes a while. There's no model caching between runs either, so a batch of songs re-loads the model every time. - Files landing somewhere odd - if you don't wire
folder_pathon the save node, check where the save node defaulted; that's a save-node gotcha, not this node's.
It's the pack's "I've been doing this since UVR was the only option" node - narrow, but for exactly the people who need it, it removes the last excuse to leave ComfyUI.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| audio | AUDIO | — | |
| model_name | COMBO | 1 options: -- 请配置 config.json -- | |
| device | COMBO | auto | 3 options: auto, cuda, cpu |
| base_filename | STRING | audio | — |
Outputs (5)
| Name | Type | Description |
|---|---|---|
| model_info | STRING | 模型元信息 JSON |
| stem_0 | AUDIO | 主音轨音频 |
| stem_0_fn | STRING | 主音轨文件名 |
| stem_1 | AUDIO | 次音轨音频 |
| stem_1_fn | STRING | 次音轨文件名 |