MSST Bible

Full list of model architectures supported by UVR: MDX-Net (a.k.a. v2), MDX23C (archs by kuielab), VR (voice-remover by tsurumeso, versions: 4, 5 [UVR fork], and 5.1), Demucs (by Meta; v. 1-4, only models trained on OG code, not MSST ones), BS-Roformer, Mel-Roformer (arch by Bytedance & implementation from paper by lucidrains; issues on Linux explained later), SCNet, Apollo (in Tools; for upscaling, no DirectML acceleration), BandIt (SFX, no DirectML support). It has also a feature of ensembling models of various archs. If some models don't appear on the ensemble list reach the appropriate section below (or rich the document outline in options). Demudder functionality added in newer UVR patches (currently not on Linux and MacOS).

Page 4 of 228 · Open the original GDoc ↗

Models for Roformers/SCNet/Bandit arch are located altogether in the MDX-Net menu.

Apollo audio upscaler is located in Tools.

Don’t forget to enable GPU Conversion - if it works, it speeds up separation hugely. Even Tiger Lake iGPUs are capable of working with at least MDX-Net HQ (v2) models.

- Min. 4GB VRAM AMD GPUs tested/recommended for Roformers (with chunk_size between 112455 and 200655 depending on the model in the Roformer yaml; table of chunks).
- Min. 2GB VRAM NVIDIA GPU (even 2GB Rifforge worked with low enough chunks), but generally it can give memory allocation errors randomly and sometimes working or not with Roformers. Setting your NVIDIA Control Panel UVR profile to “CUDA Sysmem Fallback Policy” to “Prefer Sysmem Fallback” makes it crash less - mohammedmehditber


- Bare minimum for GPU acceleration on NVIDIA is Maxwell/900 series GPUs/compute compatibility 5 (unsupported for CUDA in UVR are at least NVIDIA GTX 600 and GT 700 series and older, returning: “AssertionError: "" Traceback Error:” or "CUDNN_STATUS_NOT_INITIALIZED), although DirectML should be theoretically supported by all DX12 GPUs (I’m not sure if in newer versions than 5.6.0 it’s still possible to switch to DirectML setting on NVIDIA GPUs).
- For AMD, at least RX 4GB models tested (not sure about R9 200 4GB GPUs - either if on newer modded Radeon-ID drivers and/or with downgraded DirectML.dll attached with drivers, copied to UVR\torch_directml folder, but seems like someone had occasional memory issues on HD 7870 2GB, but GPU Conversion still worked). “AssertionError: "" Traceback Error:” also exists when your AMD driver/Windows is outdated (then use e.g. 1.9.1.0 library).
- Intel was confirmed to work with ARC GPUs, and Xe integrated graphics (e.g. Tiger Lake 2021) with at least MDX-Net HQ (v2) models.

- If your separation on DirectML is stuck (AMD/Intel), and takes an enormously long time, decrease chunk_size.

 

- RTX 5000 series support on Windows was added in a separate UVR patch (or possibly you can use OpenCL (DirectML) in options instead [slower]). The patch is not compatible with Intel/AMD GPUs, and potentially also older NVIDIA GPUs, giving the following error:

“AttributeError: module 'torch_directml' has no attribute 'is_available’

Be aware that some newer models are incompatible with this version giving:
“torch._dynamo.polyfills.fx” error

 

- In patch #12 a new “Inference mode” option in Advanced MDX-Net>Multi Network was implemented (disabled by default). In the current state, it fixes silence in separation on GTX 10XX and maybe older, but might make separations longer for other compatible GPUs. So if you have slower separations after updating UVR, check if GPU Conversion is still enabled (it’s rather disabled by default on new installations) and you can try to turn on Inference Mode if you have RTX GPU, or potentially GTX 16XX.

 

- To potentially increase separation time (from 45 to 32 minutes) using DirectML (AMD/Intel) on Windows, you can try using vkd3d-proton -
Extract it with PeaZip (if 7-Zip returns an error), copy the two .dll libraries from the X64 folder near UVR.exe.

 

UVR download

(if your download speed gets slow, use e.g. “Free Download Manager” on Windows or any other increasing connection count).

 

- for Linux 

 

Sadly, official building instructions on GitHub are outdated, and the current branch working on Linux with Roformers is old and doesn’t support all those models (at least without some workarounds below). Also, normally you can’t use WINE and use at least DirectML GPU acceleration (error), and I doubt VKD3D would help.

 

Someone found a way to use GPU Conversion with WINE by using Bottles and used newer UVR Windows packages linked later below, based on newer unreleased codebase (although it might be slower than MSST due to additional translation layer, so consider it instead, although it worked well on 5060, but slow on 4090):

 

"My way to easily run UVR on Linux:

I just downloaded Bottles

https://usebottles.com/ (which uses WINE) and used the provided .exe file from the repository's releases. I created a new bottle with a gaming profile (to utilize GPU) and moved the exe file into "drive_c" (otherwise it won't work), then just ran through the installer and it worked like a charm!" (src)

 

 

If you still want to use native Linux codebase:

 

- Some installation directions (from our Discord) from Roformer patch #1/2 period (or also here), plus comment out:

segmentation-models-pytorch 0.3.3 in requirements.txt here (line 136) (for Nvidia/CPU).
Current code repository for Roformers with DirectML support is located here (although at certain periods it might lack current patches):
(might work for non-Nvidia GPUs):
https://github.com/Anjok07/ultimatevocalremovergui/tree/v5.6.0_roformer_add%2Bdirectml

Judging by the date of files from 9 December 2024 in the repo at the moment, they seem to derive from outdated 12_8_24_23_30_BETA beta #9 patch (some newer models will fail with that codebase, plus it’s before chunk_size implementation, so it rather still uses dim_t).
- Some other potentially useful information:

https://github.com/Anjok07/ultimatevocalremovergui/issues/1674

- Or “you just need to use export PYGLET_SHADOW_WINDOW=0 and it'll work”

- See here if you get following errors:
“Getting requirements to build wheel did not run successfully. ... ModuleNotFoundError: No module named 'imp'”

edit requirements.txt:
pyrubberband==0.3.0

PyYAML==6.0

scipy==1.9.3

playsound

numpy==1.23.5

- Workarounding issues with Python 3.12:

https://github.com/Anjok07/ultimatevocalremovergui/issues/1789

- Fixing issues with RTX 5000 GPUs on the version built from the source:

https://github.com/Anjok07/ultimatevocalremovergui/issues/1752#issuecomment-6390698828

 

- Becruily karaoke model error fix:

“Those of you on linux running the current roformer_add+directml branch that cant get becruily's karaoke model working due to the same error: it seems editing line 790 in separate.py setting the keyword argument strict to False when calling load_state_dict seems to make the karaoke model load and infer properly, so I think it will work

model.load_state_dict(checkpoint, strict=False)

I don't know if this is a robust workaround, but I haven't observed anything behaving differently than it should yet, so if you want to give it a shot I think it will work

TL;DR change line 790 in separate.py to the codeblock and then run again and karaoke model should work” stephanie

ROCm instructions for AMD (also for Windows, but currently only using WSL)

- For better separation speed than DirectML:

https://github.com/Anjok07/ultimatevocalremovergui/issues/1822#issuecomment-2824363747

- Fix for” “ModuleNotFoundError: No module named 'audioread’”

https://github.com/Anjok07/ultimatevocalremovergui/issues/1797#issuecomment-3315191055

- Workarounding issues with playsound & sklearn dependencies:
https://github.com/Anjok07/ultimatevocalremovergui/issues/2107

 

- Fixing issues in Matchering on Linux:

 

“Succeeded to run after modifying UVR.py :

 

match.process(

            target=target,

            reference=reference,

            results=[match.save_audiofile(save_path, wav_set=self.wav_type_set),],

        )

to

 

match.process(

            target=target,

            reference=reference,

            results=[match.pcm16(save_path)]

        )

“

 

- Fixing matching errors

https://github.com/Anjok07/ultimatevocalremovergui/issues/2018#issue-3564850746

- Python 3.11 dependencies fix

https://github.com/Anjok07/ultimatevocalremovergui/issues/2108#issuecomment-3808617707

- natsort issues
https://github.com/Anjok07/ultimatevocalremovergui/issues/2214

- more

- SIGSEGV crashes in Tcl/Tk

https://github.com/Anjok07/ultimatevocalremovergui/issues/2372

 

 

__________

 

Below you’ll find download links for ready packages for other platforms
(they contain isolated Python environment - so you don’t have to mess with your local Python installation - you don’t even have to have Python installed on your computer)

 


- for macOS 

(it doesn’t incorporate demudder from Windows patch #14)

 

- UVR Roformer beta patch #13.1

(beta_0115_MacOS_arm64_hf)

which applies a hotfix to address a few graphics issues.

- Mac M1 (arm64) users - Link

- Mac Intel (x86_64) users - Link (it went offline for some reason; older version below)

 

Note: Some people get error about failed malicious software check. Then check out patch #9 below or read “MacOS Users: Having Trouble Opening UVR?” section in the GH repo. Plus:

“Functionality for systems running macOS Catalina or lower is not guaranteed”.

“What ended up working for me was to make sure that UVR lived in my root level Applications folder. I normally have an 'Installs' folder inside of Applications to help me keep track of things I have downloaded and installed. Nothing would load from the Installs folder, but worked fine from the root Applications folder.”

 

Older Mac packages:

 

UVR beta Roformer patch #13

VR_Patch_1_15_25_22_30_BETA:

- Mac M1 (arm64) users - Link

- Mac Intel (x86_64) users - Link

 

UVR Roformer beta patch #9:
UVR_Patch_12_8_24_23_30_BETA:

Mac M1 (arm64) users - Link

Mac Intel (x86_64) users - Link
(Patch #9 fixes mainly Apollo arch issues)

Apollo arch was made compatible with MacOS MPS (metal) but it might be unstable and very RAM intensive - use chunk size over 7 to prevent errors.
Apollo is now compatible with all Lew models (fixed incompatibility with any other than previously available in Download Center). Fixed Matchering (presumably regression).

Changelog for Mac since patch #2 (older patches later below):

“Roformer checkbox now visible for unrecognized Roformer models” so now you can use custom Roformer models on MacOS Roformer patch without copying/modifying configuration files from Windows version or other users. Plus it includes all the previous fixes in the previously released patch (overlap code fixed, so no stem misalignment should occur on certain overlap settings - higher overlap now means longer separation - so it's the opposite now)

 

 

- for Windows

 

- (optional) Standalone UVR Roformer beta patch #15 for RTX 5000 (or more precisely #14b) fixing issues with not working or slower than CPU, CUDA separations on those GPUs. 
It’s not compatible with older NVIDIA GPUs or AMD/Intel (error at launch).

UVR_Patch_4_24_25_20_11_BETA_full_cuda_12.8

- Full Install: Download

(standalone, although still called patch just for simplification to refer codebase functionality as to digits hashtag number)

Note: Some newer models are exclusively not compatible with this specific version giving torch dynamo error unless you set ot false torch checkpointing in the yaml of the model.

 

- UVR Roformer beta full patch #13 (for most modern GPUs; RTX 5000 will be slow)

UVR_Patch_1_15_25_22_30_BETA

It fixes the issue with no sound on some Roformer models (like avvuew’s de-reverb) on GTX 10XX or older:

- Full Install: Link

(means it's standalone, and doesn't need 5.6.0 on top, or any other existing UVR installation to work)

- Patch Install (for non-beta UVR installed, e.g. 5.6, not Roformer 5.6.x patch): Link

- Small Patch Install (for any Roformer patch previously installed): Link

The issue was some older GPUs are not compatible with Torch’ "Inference Mode," (which is apparently faster) so it's now using "No Grad" mode instead. Users can switch back to using "Inference Mode" via the advanced multi-network options. More

 

- UVR Roformer beta small patch #14 - the long anticipated demudder added:

UVR_Patch_1_21_25_2_28_BETA: Link
(for it you must have a Roformer Installation [e.g. full #13 above] previously installed for this to work).

- Demudder is already included in the standalone RTX 5000 patch above (download)
Furthermore, minor bugs were fixed and calculating compensation for MDX-Net v1 models added.

The MacOS version of this patch is not released yet.

 

Demudder

To enable demudder, go to Settings>Choose Advanced Menu>Advanced MDX-Net Options>Enable Demudder (in Demudder options pick one out of the three described below)

Troubleshooting:

- At least Phase Rotate doesn’t work on AMD and 4GB VRAM GPUs on even 88200 chunk size (prev. dim_t 201 - 2 seconds) and 800MB Roformers like Becruily’s, while 112455 (2,55s, prev. dim_t = 256) works fine for normal separation.

- In case of file not found error on attempt of using demudder, reinstall UVR.
- In case of “Format not recognised” error for demudder, keep Match freq cut-off enabled in MDX settings.

- “For Roformer models, it must detect a stem called "Instrumental” so for some models like Mel-Kim, you need to open the model's corresponding yaml, and change “other” to “instrumental”.”

“With the new config editor feature you could probably edit the configs of models to have the vocal stem labelled as the Instrumental stem so the demudder demuds the vocal stem, it definitely still makes a difference

I accidentally did this when installing another model, but it seems to actually have an effect on vocal stems too” stephanie


Demudder consists of three methods to choose from:

  • Phase Rotate
  • Phase Remix (Similar to X-Minus) - “the fullest sounding, but can leave a lot of artifacts with certain models. I only recommend that method for the muddiest models. Otherwise, Combined Methods is the best” “I don't recommend using phase remix on the Instrumental v1e model. I recommend combined methods or phase rotate for models produce fuller instrumentals.” - Anjok
  • Combine Methods (weighted mix of the final instrumentals generated by the above). More in the full changelog.

PS. You can also use phase remix in SESA Colab

 

Demudder is “meant to solely target instrumentals. The vocals should stay exactly as before.”

“It works best on tracks that are spectrally dense (ex. Metal, Rock, Alternative, EDM, etc.)

I don't recommend it for acoustic or light tracks.

I don't recommend using it with models that emphasize fuller instrumentals (like Unwa's v1e model).” Anjok
“I've noticed with the few amounts of tracks I've tried, demudding can sometimes accentuate instances of bleeding or otherwise entirely missed vocal-like sounds”. More in the full changelog.
“I put the demudded instrumental in the bleed suppressor, and it sounds really good, almost noise free. I either do a bleed suppressor or a V1/bleed suppressor ensemble” - gilliaan
“I found that Phase Remix also works well on pop and other genres of music, but it only works using the vocal models (Phase Remix and VOICE-MelBand-Roformer Kim FT (from Unwa) or

VOICE-MelBand-Roformer Kim FT 2 (by Unwa).” - Fabio

“I do plan on adding options to tweak the phase rotation.

I also plan on adding another combination method that may work better on certain tracks.” - Anjok

 

If you set 64-bit float output in Options>Additional settings, the results might be slightly less muddy, but also in very big size.

 

Demudder can be also used in a Colab and x-minus.pro/uvronline.app (more)

 

Discord channel to follow the updates

 

 

Outdated

____________

(old) Potential fixing of RTX 5000 series CUDA acceleration for #14 patch -
now unnecessary since dedicated patch was released above
(although there’s no full success with the below, so also refer here)

 

Some people reported that following the steps below might still result in slow separations:

Probably you’ll be able to install required CUDA 12.8 and nightly PyTorch to fix the compatibility issue when following steps for manual installation (unfold it), so UVR won't use its own Python environment. In addition to the above link, use this repo with newer code, although for now, not the newest code is attached from the patches below... and all if you fix "Getting requirements to build wheel ... error" afterwards. Then you’ll have a bug causing no GPU Conversion option functional - then you need to use:

python.exe -m pip install --upgrade torch --extra-index-url https://download.pytorch.org/whl/cu118

instead of cu117 as in the instruction above (although for RTX 5090 it probably won’t work, and you can use this https://download.pytorch.org/whl/nightly/cu128 instead.

- Similar issue might occur when you don’t install "onnxruntime-gpu"

when the current is "onnxruntime" library (which does not support GPU)

- For Demucs UnpicklingError issue using manual installation:

modify the line 46 in demucs/states.py:

package = torch.load(path, 'cpu', weights_only=False)

- Sometimes the same happens for e.g. Becruily inst model (different arch). It’s also the indicator that the model file is corrupted and has the wrong CRC (most likely wrongly downloaded) - redownload the model.

- A bit newer instructions here

 

At least on the old 5.6.0 version, there's OpenCL written in options instead of DirectML in newer patches (although technically it's the latter).

Alternatively, you can use MSST-GUI.

__________

 

Older Roformer patches

 

- Anjok released a new UVR beta Roformer patch #11 (Windows only for now)

It fixes 4 bugs: with VR post-processing threshold, Segment default in multi-arch menu, CMD will no longer pop-in during operations, and error in phase swapper.

More details/potential updates.

 

Standalone (for non-existent UVR installation)

UVR_1_13_0_23_46_BETA_full.exe

For 5.6 stable (so for non-beta Roformer installation)

UVR_Patch_1_13_0_23_46_BETA_rofo.exe

Small (for already existing Roformer beta patch installation)

UVR_Patch_1_13_25_0_23_46_rofo_small_patch.exe

 

- Patch #12 which is a hotfix for the 4 stem BS-Roformer model by ZFTurbo (trained on MUSDB)

UVR_Patch_1_13_0_23_46_BETA_rofo_fixed.exe (Windows only)

 

Users undergo some issues (no sound) with Mel-Roformer de-reverb by anvuew (a.k.a. v2/19.1729 SDR) since the latest UVR beta #11 or #12 update. Patch #10 works.

The issue seems to occur only on GTX 10XX series, and maybe older.

You should be able to use more than one UVR installation at the same time when one’s been copied before updating (potentially patch #10 will still work) or use MSST repo and/or its GUIs.


UVR Roformer beta patch #9:

UVR_Patch_12_8_24_23_30_BETA

Windows: Full | Patch (Use if you still have non-beta UVR installed) |

Small Patch (for this you must have a Roformer patch previously installed for this to work)

 

UVR Roformer beta patch #10

UVR_Patch_1_9_25_23_46_BETA_rofo_small_patch - Link

For now, only small patch for already existing beta Roformer installation above is available, and only for Windows.

 

If you have Python DLL error on startup, reinstall the last beta update using the full package instead, then the small installer from the newer patch.

 

Since beta version #10, UVR doesn't rely on 'inference.dim_t' value for Roformers anymore (if you were using edited "dim_t" value in yaml configuration files).

You have to edit audio.chunk_size instead if need it (e.g. for 4-12GB VRAM on AMD/Intel).

It’s located “In model yaml config file, at top of it, chunk_size is first parameter (...) you can edit model config files directly inside UVR now.” or in the new config editor in newer versions.

 

“Conversion between dim_t and chunk_size

 

dim_t = 801 is chunk_size = 352800 (8.00s)

dim_t = 1101 is chunk_size = 485100 (11.00s)

dim_t = 256 is chunk_size = 112455 (2,55s)

dim_t = 1333 is chunk_size = 587412 (13,32s)

 

[more values later below]

 

The formula is: chunk_size = (dim_t - 1) * hop_length)” - jarredou

 

Generally, to have the best SDR, use chunks not lower than 11s in the yaml for inference, which is usually training chunks value (rarely higher). Although, at times people get better results with 2,55s chunks, although some models behave worse than others with such small values.

 

“Most of the time using higher chunk_size than the one used during training gives a bit better SDR score, until a peak value, and then quality degrades.

For Roformers trained with 8sec chunk_size, 11 sec is giving best SDR (then it degrades with higher chunk size)

For MDX23C, when trained with ~6sec chunks, iirc, peak SDR value was around 24 sec chunks (I think it was same for vit_large, you could make chunks 4 times longer)

How much chunk_size can be extended during inference seems to be arch dependant.” - jarredou

 

Changelog #10:

Added SCNet and Bandit archs with models in Download Center, fixed compatibility with some newer Roformer models (prob. the Phantom center and 400MB small Unwa models, not sure yet), new Model Installer option added, model configuration menu enhanced, allowing aliases to selected models, added compatibility for Roformer/MDX23C Karaoke models with the vocal splitter, VIP code issue is gone, issues with secondary models options and minor bugs and interface annoyances are addressed, “improved the "Change Model Settings" menu. Now, any existing settings associated with a selected model are automatically populated, making it easier for users to review and adjust settings (previously, these settings were not visible even if applied).”.

“Unfortunately, SCNet is not compatible with DirectML, so AMD GPU users will have to use the CPU for those models.

Bandit models are not compatible with MPS or DirectML. For those with AMD GPU's and Apple Silicon, those will be CPU only.

The good news is those models aren't all that slow on CPU.” - Anjok


Changelog #9:

Apollo fixes: “Chunk sizes can now be set to lower values (between 1-6)

Overlap can be turned off (set to 0)”

Fix both for Apollo and Roformers: now 5 seconds or shorter input files no longer cause errors.

OpenCL was wrongly referenced in the UVR. It was actually DirectML all the way, and Anjok changed all the OpenCL names in the app into DirectML.

 

Changelog for all platforms:
Patch #3 fixed the issue with stem misalignment when using incorrect overlap setting for Roformers. Now it uses ZFTurbo code (also for MDX23C), meaning that now increasing overlap for Roformers will result in increasing separation times and potentially better SDR [the opposite of what it used to be in the previous beta Roformer patches #1 and #2]. Also, it “Fixed manual download link issues in the Download Center. Roformer models can now be downloaded without issue.”). Also, new Roformer models were added to Download Center, so you don't have to download them manually.

 

- UVR Roformer beta patch #8 for Win: full | patch | Mac: M1 | x86-64:

UVR_Patch_12_3_24_1_18_BETA
Apollo arch was made compatible with OpenCL too, but it might be unstable and very RAM intensive - use chunk size over 7 to prevent errors (currently it’s not certain that all models will work with less than 12GB of VRAM). At least in newer patches, it can straight up say that Apollo is not compatible with DirectML, and fall back to CPU mode.
Apollo is now compatible with all Lew models (fixed incompatibility with any other than previously available in Download Center). Fixed (presumably regression with) Matchering.

 

UVR Roformer beta patch #7 (full | patch) Win
UVR_Patch_12_2_24_2_20_BETA.

It introduces support for Apollo arch. The OG mp3 enhancer and Lew v1 vocal enhancer were added to Download Center. The arch is located in Audio Tools. Sadly, this arch cannot be GPU accelerated with OpenCL so AMD and Intel cards (you’re forced to use CPU which might be long).
Also, “Phase Swapper” a.k.a. Phase fixer for Unwa inst models was added to Audio Tools.

Roformer beta patch #6: M1 | x86-64

 

UVR Roformer beta patch #6: Win

UVR_Patch_11_25_24_1_48_BETA (standalone or patch - you can install it on stable 5.6 version already installed)
Fixes issues with viperx’ models.

And with it, a long anticipated MDX-Net HQ_5 model was released (available for older versions in Download Center too. Changelog

 

UVR_Patch_UVR_11_17_24_21_4_BETA_patch_roformer (Beta patch #5 for UVR, Windows only):

“- Fixed OpenCL compatibility issue with Roformer & MDX23C models.

- Fixed stem swap issue with Roformer instrumental models in Ensemble Mode.”

That patch is probably not standalone like patch #3, so have a previous UVR installation.

Roformer patch #4 for MacOS: M1 | x86-64

 

UVR_Patch_11_17_24_21_4_BETA (Windows: full | patch | changelog) beta patch #4

 

UVR_Patch_11_14_24_20_21_BETA_patch_roformer (beta patch #3 “requires an existing UVR installation” so either the previous beta Roformer patch above or stable 5.6 patch.
Full changelog.

 

UVR_Patch_4_14_24_18_7_BETA_full_Roformer | mirror (standalone Roformer beta patch #2, fixed OpenCL separation for AMD/Intel GPUs)

 

UVR_Patch_3_29_24_5_11_BETA_full_roformer.exe (older Roformer patch #1)

With the following issue fixed in the newer patch #2 above -

if you have playsound.py errors, disable notification chimneys in settings>additional settings, using OpenCL GPU acceleration (AMD) for BS-Roformer doesn’t work (or at least not for everyone)

 

Older Roformer patch #1/2 for MacOS (ARM only) got deleted from the Discord server
____________

(Roformer models are also added on MVSEP and x-minus.pro/uvronline.app and MSST-GUI, and inference Colab and MDX23 v.2.4/2.5 here)