Contents
edit. 28.08.26
Last updates and news
- BS/Mel-Roformer UVR beta patch For GPU acceleration, UVR currently supports: a) CUDA (NVIDIA GPUs) b) DirectML (AMD and Intel GPUs; previously misnamed as OpenCL) c) MPS (Mac M1 [ARM]/x86-64) And even old CPUs are supported (AMD A6-9225 Dual-Core or Intel Core 2 Quad [models with SSE4.1 tested]), but for at least MDX-Net HQ (v2) models speeds will be good on such CPUs without GPU acceleration. DirectML acceleration is not supported for Apollo, Bandit (also incompatible with MPS), SCNet and probably Demucs 2 archs - CPU will be used automatically. Minimum reasonably good enough NVIDIA GPU for Roformers might be: desktop RTX 3050 6GB, 2304 CUDA cores (at best 8GB variant with more 2560 CUDA). E.g. Colab’s Tesla T4 11GB (older RTX 2000 gen) has 2560 (which without TTA [not implemented for Roformers in UVR] is just alright - see separation times). The old 980 Ti 6GB with 2816 CUDA will be rather slower than these due to older architecture. I'd refrain from getting a mobile RTX 3050 - the Ti variant has 2560 CUDA cores, but both Ti and regular have 4GB, and using shared memory is slower - Roformers generally use more than that. In FP16 inference, if we “convert” CUDA cores performance to match the Blackwell: RTX 5060 Ti 4608 | 4608 | 100% RTX 4070 Ti 7680 | ~4800-5120 | ~105-110% RTX 3080 8704 | ~3200-3500 | ~70-75% Plus, you can always convert current Roformers to FP16 if some model uses FP32 (more below). Performance comparisons: 1 | 2 | 3 | 4 Using CUDA, even with currently the biggest 2GB size inst model, Rifforge, doesn’t reach 6GB VRAM usage on RTX 2000 (but its separation time on T4 using TTA in Colab takes a long 36 minutes for a 5 minute file), so consider min. 6GB VRAM as bare minimum for reasonable separation times with around 2560 CUDA cores on at least RTX 2000 (newer gens should have faster cores in inferencing). Unless you want to use the 53 stem model. For AMD/Intel GPUs, if you want to use default high chunk_size with certain models, 16GB VRAM is recommended, so you won’t have to decrease it manually (DirectML is way less memory-efficient than CUDA). Minimum AMD GPU capable for Roformers using DirectML might be RX 6600 XT or RX 7600 (might be even faster than 3050, DML will probably use its new RDNA3 AI cores).
DirectML is slow nevertheless, so if you want some serious GPU acceleration boost on AMD GPUs, use MSST/pymms with ROCm instead. DirectML gives tremendous overhead over CUDA. For older GPUs than AMD Vega (which doesn't support ROCm PyTorch or only potentially with ZLUDA with modded libs) or Intel GPUs with Vulkan support, instead of MSST use: https://github.com/chenmozhijin/BSRoformer.cpp (CLI, C++ ready build, model conversion required besides Deux and FV6, allows quantization for faster separation, Vulkan backend faster than ROCm 5+ZLUDA on Windows) or also: https://github.com/pymss-project/pymss-mnn (CLI, requires building and also model conversion, Vulkan backend too, potentially a bit slower)
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).
Models for Roformers/SCNet/Bandit arch are located altogether in the MDX-Net menu.
Ensembling impossible - model not visible in vocal splitter in UVR
- If user-imported Roformers aren't recognized in "instrumental/vocals" in ensemble or in vocal splitter, but are in "multi-stem ensemble": “The .yaml associated with the model usually needs to be updated to match UVR's stem naming conventions. For example, if your config shows the instruments as "other" and "vocals", it will need to be updated to "Instrumental" and "Vocals" (case-sensitive)” - Anjok
Memory issues - chunk_size table for combatting “RuntimeError”
'use_amp' “Key error”
“”’norm’”” attributeError using e.g. unwa beta 5e model in UVR
Layers errors - general
TypeError: (...) freqs_per_bands
mlp_expansion_facfor
"The size of tensor a (484864) must match the size of tensor b (485100) at non-singleton dimension 2"
skip_connection
torch._dynamo.polyfills.fx
[WinError 2] The system cannot find the file specified
num_bands
System error / file not found
Python39.dll
RuntimeError: ""
- Stable 5.6 OpenCL (DirectML) version of UVR 5 GUI for Windows
Supporting AMD and Intel GPUs acceleration but no Roformers yet
- (no longer necessary) Fork of UVR GUI and How to install - support for AMD and Intel GPUs appeared (works only for VR and MDX architectures), Besides W11, also W10 confirmed working, MDX achieves speeds of i5-4460s using 6700 XT, while for VR, speeds are v. fast and comparable to CUDA, so CPU processing might be slower in VR, but for MDX you might want to stick with the official UVR5 GUI.
The best models
for specific stems
- Advanced chain processing chart (image)
Chained separation order
Plugins (different types of noise)
“UVR BVE v2 model [currently on x-minus] is actually full band. There is, however, a small nuance. This model uses MDX VocFT preprocessing, which is not full band. MDX VocFT model is rebalancing the song. The music is slightly mixed with the vocals (25% music + 100% vocals). This mix is then processed by the BVE model. A small amount of music can help the model better understand the context (it's important for harmony separation). We train the model on a rebalanced dataset. It contains 25% of music.” aufr33
MDX settings & ens. explanations in UVR5 (and also Demucs/VR/MDX v2/23C inferencing parameters)
>>Tips to enhance separation results<<
24. arigato78 method for lead vocal acapella
SDR leaderboard & explanation
Bleedness and fullness leaderboard Python evaluation script by jarredou (prob. mirror), Torch version (with Bas Curtiz), used on Quality Checker
50 models sorted by SDR
UVR5 GUI (MDX, VR, Demucs 2-4 and UVR team models)
GUI FAQ & troubleshooting for UVR (PT. 2)
- Chunks may alter separation results
Manual ensemble
UVR’s VR architecture models
First vocal models trained by UVR for MDX-Net arch:
9.703 model is UVR-MDX-NET 1, UVR-MDX-NET 2 is UVR_MDXNET_2_9682, NET 3 is 9662, all trained at 14.7kHz
Demucs 3
Demucs 4 (+ Colab) (4, 6 stem)
Gsep (now GAudio) (2, 4, 5, 6 stem, karaoke)
dango.ai
music.ai
Iterative Ensemble Colab by IntroC
MDX23 by ZFTurbo (jarredou fork) - 2, 4 stems
KaraFan by Captain FLAM
Ripple/Capcut/SAMI-Bytedance/Volcengine/BS-RoFormer (2-4 stem)
>Drumsep - single percussion instruments separation
USS-Bytedance (any; esp. SFX)
Zero Shot (any sample; esp. instruments)
SAM-Audio
AudioSep
__Sources of FLACs for the best quality for separation process__
___AI mastering services___
___Best quality from YouTube and Soundcloud - how to squeeze out the most from the music taken from YT for separation___
List of cloud services with a lot of space
or for temporary storage
AI-killing tracks - difficult ones to get instrumentals (or vocals) - a lot of e.g. vocal (or instrumental) leftovers in current models
Training models guides