Phase fixer/swapper
(decreases vocal residues in instrumentals)
The method was invented by Aufr33 to fix noise in Roformers models trained with instrumental or other stem target. It copies phase from instrumental from a model trained with vocal stem target which usually gives muddy instrumentals but better bleedless metric (e.g. Kim’s or Becruily’s vocal) and copies it into the instrumental model result. Initially it was added only to x-minus/uvronline (iirc for premium users), but later Becruily wrote his own script doing the same (both torch and librosa implementations if you fail to use one of them).
Later Anjok implemented it into one of the UVR Roformer beta patches (Tools>Phase Swapper), although there it only allows changing high and low cutoff, but no high frequency weight.
Santilli_ (Michael) found out that increasing it from 0.8 to 2 is beneficial for phase swapping from Becruily vocal to instrumental model, and that it’s much better than manipulating with high and low cutoff. Also dca points out his ensembles fit better for the parameters of the CML phase fixer used in the Colabs (or locally).
The most common mistake people make when phase fixing manually is that, you still need instrumental result of a vocal model as reference, not vocal result, and instrumental from instrumental model as target, ofc.
Also, don't use separated stems in various formats (lossy and lossless will start in different places), and rather also from different sources - e.g. on MVSEP only 32-bit float for premium is not normalized - rather refrain from use it with results from e.g. Colab, which are not normalized. Even the normalization option in UVR might work a bit differently, but feel free to ensure.
Use manual phase fix Colab (by A5/Squid) - fork of Michael's Colab, but without inference.
(OG santilli_/Michael Auto Phase fixer Colab here was fixed (it allowed inferencing and batch separation with phase fixing automatically), although since Google's changes to the env, the OG Colab got broken and the fix for it started giving sometimes weird results both with FLAC and FLOAT [less with the latter iirc], while the local scripts give only slightly less muddy results than the manual Colab - dca).
Optionally you can also check the manual phase fixer in the inference Colabs (they can also work closer to the intended result):
MK Colab by makidanyee’s or in SESA Colab by Sir Joseph and MVSepless Colab by noblebarkrr
(here you inference models in a separate cell first, and then the results are used as input for the phase fixer in the other cell).
(premium) You can also use the MVSEP preset called “phase corrected instrumental”.
This specific preset is currently only for premium because by default it uses HyperACE V2 inst with (currently paywalled) BS-Roformer 124 bands.
But you can just click “Editor” option in the presets menu, and pick “phase corrected instrumental” preset in the editor on a free account, and on the displayed graph pick whatever models you want for phase fixing instead (e.g. becruily vocals [even instead of BS-Roformer 2025.07], which might work better for phase fixing than default BS-Roformer 124 bands, and is free model), and maybe run the job from there. Solely presets functionality and the editor is not paid, but such a modified preset on your main MVSep page will be paywalled. “If 2+ algorithm nodes, it is premium only”.
Currently you can only save your preset on your account and sharing is possible only by screenshotting or copying the graph code manually and sharing on your own.
- You can use and edit the original phase swap Python scripts for previously separated files here for local use, and use it as a reference (iirc - be aware it has hardcoded file names into script to work, so Kim as voc model, so while using any other model, you still need the same file name).
The result of the phase fixer with correct models and parameters - less noise in the instrumental, but more muddiness (not necessary in all cases). Instructions of usage of the script is described in the DL link above.
Cutoffs for phase fixer
Optionally to the default settings in the Phase Fixer Colab, you could optionally set:
- 420 for low and 4200 for high or
- 500/500 and e.g. Mel-Kim model for source;
and bleed suppressor (by unwa/97chris) to alleviate the noise further (e.g. phase fixer on its own works better with v1 model to alleviate the residues).
- Besides the default UVR default 500/5000 and
- Colab default 500/9000 values, you could potentially “even try like
- 200/1000 or even below for 2nd value.” “I would say that the more noisy the input is, the lower you have to set the frequency for the phase fixer.” - jarredou
(“200/1000 is probably the most aggressive setting”, “for v1e 200/1000 def works better, v1e is very noisy”)
- 200/10000 is the least aggressive
You can just experiment what fits the best for your specific set of models for phase fixing, esp. if it's something not covered by the below settings or in the ensembles made with phase fixer in mind where the parameters for cutoffs are already specified.
Phase fixer models suggestions
Usually, I post suggested models for phase fixer in the descriptions of instrumental models along with necessary values in the instrumental models list here, and also sometimes in the ensembles list here, but you have also some suggestions gathered in one place in auto phase fixer Colab (note at the bottom).
E.g.
a) becruily voc/becruily inst (very bleedless, but muddy)
b) becruily voc/flowersv10 (not as muddy)
c) FT2 Bleedless/flowersv10 (can be more effective, but FT3 might cut fewer instruments)
d) BS-Roformer 2025.07 (exclusive to MVSEP)/(any other inst model)
e) Mel-Roformer Bas Curtiz Edition on MVSEP/(any other inst model) - less bleeding/vocal shells than while using becruily voc, and might be even less than 2025.07 (bigger vocal bleedless metric)
Other models occasionally used for phase fixer with certain models: bigbeta5e, Unwa beta 6 (or experiment some newer models with potentially high bleedless metric)
Scale factor
“Personally, I think leaving the scale factor as 0.8 is fine, increasing it to like 1.4 as in the notebook creates "holes" where the vocals are originally heard, so I don't think that's good.
Higher than 0.8 makes it muddy, v1e is great at being the fullest model so I would not touch scale factor if I were you (if you use v1e)”