VR Params
Window size, aggression, and the rest of the UVR control panel
- vr_params
What it is
The parameter node for VR Separate and VR Separate List. It outputs a vr_params socket of type PYMSS_VR_PARAMS that plugs into the separator's optional params input.
If you've used Ultimate Vocal Remover, you've seen this panel before - the names are lifted straight from it, because the models are the same UVR/VR architecture. And unlike MSS Params, where the defaults are usually right, this one is genuinely worth touching: VR models are aggressive by default and the two big sliders are how you stop them shredding your audio.
The inputs
window_size- INT, 128–4096 in steps of 128, default512. The FFT window the VR network operates over. 512 is the safe default because it's what most of these models were trained around; raising it gives finer frequency resolution, costs time, and can introduce ringing; lowering it smears things. Change it if you know why you're changing it.aggression- INT, 0–100, default5. The UVR aggressiveness setting: how hard the predicted mask is pushed. Higher removes more (including more of what you wanted), lower is gentler and leaves more residue. For vocals out of a rough recording, 5 is a reasonable start; for de-noise work, 2–3 usually sounds more natural.enable_tta- BOOLEAN, default off. Multiple passes averaged. pymss puts a number on it in its docs: roughly triple the time for a small quality gain.high_end_process- BOOLEAN, default off. UVR's high-end processing, which mirrors the top of the frequency spectrum back from the original mixture instead of trusting the model to fill it in. The usual fix for separated vocals that sound dull or lispy on 44.1kHz material.enable_post_process- BOOLEAN, default off, withpost_process_threshold- FLOAT, 0–1, default0.2. A second cleanup pass that suppresses leftover residue, with the threshold deciding how much counts as residue. Raise the threshold and it cleans more aggressively; this is the knob for the faint "ghost" bleed you get around a separated voice.normalize- BOOLEAN, default off. Peak-normalizes the returned stems. It applies to output level only - it has nothing to do with the model's input level.batch_size- INT, 1–128, default1. Raise to 2 (what pymss benchmarked with) and VR inference gets noticeably quicker at a modest VRAM cost. VR models are small; there's headroom.
One thing you won't find a widget for: mixed precision (use_amp) is pinned on inside the node. There's no reason to touch it, and no way to.
Wiring it up
Load Audio ──► VR Separate ──► Audio Normalize ──► Save Audio
▲
VR Params
One VR Params node can feed every VR separator in the graph. Nothing in it is consumed. Leave the params socket empty and the separator uses pymss's built-in VR defaults, which are exactly the values above - so wiring it up with everything at default changes nothing except which values are visible in your graph. That's a feature: the settings live where you can see them.
Install
It ships with the pack:
cd ComfyUI/custom_nodes
git clone https://github.com/pymss-project/comfy-mss
python -m pip install pymss # ComfyUI's Python environment
Manager → Comfy-MSS does the same. Restart afterwards. Parameters need no weights, but the separators do, and they download to ComfyUI/models/pymss on first run.
Troubleshooting
- Nothing changes when I move the sliders. The node has to be wired into
params. Unwired, it's decoration. - Buzzy, watery vocals. Lower
aggression, and tryhigh_end_processon. VR clipping the top end is normal behaviour, not a broken install. - Still hearing the backing track faintly. That's
enable_post_processwith a slightly higherpost_process_threshold- or the honest answer, a modern roformer viaMSS Separate. - Slow for no reason. Raise
batch_sizeto 2. Leave TTA alone unless this is a final render.
Inputs (8)
| Name | Type | Default | Description |
|---|---|---|---|
| batch_size | INT | 11–128 | — |
| window_size | INT | 512128–4096 | — |
| aggression | INT | 50–100 | — |
| enable_tta | BOOLEAN | false | — |
| high_end_process | BOOLEAN | false | — |
| enable_post_process | BOOLEAN | false | — |
| post_process_threshold | FLOAT | 0.200–1 | — |
| normalize | BOOLEAN | false | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| vr_params | PYMSS_VR_PARAMS | — |