Spaces:
Running
Running
Update app.py
Browse files
app.py
CHANGED
|
@@ -17,24 +17,24 @@ use_autocast = device == "cuda"
|
|
| 17 |
ROFORMER_MODELS = {
|
| 18 |
# BS Roformer
|
| 19 |
'BS Roformer | Chorus Male-Female by Sucial': 'model_chorus_bs_roformer_ep_267_sdr_24.1275.ckpt',
|
| 20 |
-
'BS
|
| 21 |
-
'BS
|
| 22 |
-
'BS
|
| 23 |
-
'BS
|
| 24 |
|
| 25 |
# MelBand Roformer
|
| 26 |
'MelBand Roformer | Aspiration by Sucial': 'aspiration_mel_band_roformer_sdr_18.9845.ckpt',
|
| 27 |
'MelBand Roformer | Aspiration Less Aggressive by Sucial': 'aspiration_mel_band_roformer_less_aggr_sdr_18.1201.ckpt',
|
| 28 |
'MelBand Roformer | Bleed Suppressor V1 by unwa-97chris': 'mel_band_roformer_bleed_suppressor_v1.ckpt',
|
| 29 |
-
'
|
| 30 |
-
'
|
| 31 |
-
'
|
| 32 |
'MelBand Roformer | De-Reverb by anvuew': 'dereverb_mel_band_roformer_anvuew_sdr_19.1729.ckpt',
|
| 33 |
'MelBand Roformer | De-Reverb Less Aggressive by anvuew': 'dereverb_mel_band_roformer_less_aggressive_anvuew_sdr_18.8050.ckpt',
|
| 34 |
'MelBand Roformer | De-Reverb-Echo by Sucial': 'dereverb-echo_mel_band_roformer_sdr_10.0169.ckpt',
|
| 35 |
'MelBand Roformer | De-Reverb-Echo V2 by Sucial': 'dereverb-echo_mel_band_roformer_sdr_13.4843_v2.ckpt',
|
| 36 |
-
'
|
| 37 |
-
'
|
| 38 |
'MelBand Roformer | Vocals by Kimberley Jensen': 'vocals_mel_band_roformer.ckpt',
|
| 39 |
|
| 40 |
# MelBand Roformer Kim
|
|
@@ -42,11 +42,11 @@ ROFORMER_MODELS = {
|
|
| 42 |
'MelBand Roformer Kim | Big Beta 5e FT by unwa': 'melband_roformer_big_beta5e.ckpt',
|
| 43 |
'MelBand Roformer Kim | Big SYHFT V1 by SYH99999': 'MelBandRoformerBigSYHFTV1.ckpt',
|
| 44 |
'MelBand Roformer Kim | FT by unwa': 'mel_band_roformer_kim_ft_unwa.ckpt',
|
| 45 |
-
'MelBand Roformer Kim | Inst V1
|
| 46 |
-
'MelBand Roformer Kim | Inst V1 (E)
|
| 47 |
-
'MelBand Roformer Kim | Inst V2
|
| 48 |
-
'MelBand Roformer Kim | InstVoc Duality V1
|
| 49 |
-
'MelBand Roformer Kim | InstVoc Duality V2
|
| 50 |
'MelBand Roformer Kim | SYHFT V2 by SYH99999': 'MelBandRoformerSYHFTV2.ckpt',
|
| 51 |
'MelBand Roformer Kim | SYHFT V2.5 by SYH99999': 'MelBandRoformerSYHFTV2.5.ckpt',
|
| 52 |
'MelBand Roformer Kim | SYHFT V3 by SYH99999': 'MelBandRoformerSYHFTV3Epsilon.ckpt',
|
|
@@ -56,96 +56,97 @@ ROFORMER_MODELS = {
|
|
| 56 |
# MDX23C Models #
|
| 57 |
#=========================#
|
| 58 |
MDX23C_MODELS = [
|
| 59 |
-
'MDX23C-8KFFT-InstVoc_HQ.ckpt',
|
| 60 |
-
'MDX23C-8KFFT-InstVoc_HQ_2.ckpt',
|
| 61 |
-
'MDX23C_D1581.ckpt',
|
| 62 |
-
'MDX23C-De-Reverb-aufr33-jarredou.ckpt',
|
| 63 |
-
'MDX23C-DrumSep-aufr33-jarredou.ckpt',
|
| 64 |
]
|
| 65 |
#=========================#
|
| 66 |
# MDXN-NET Models #
|
| 67 |
#=========================#
|
| 68 |
MDXNET_MODELS = [
|
| 69 |
-
'UVR-MDX-NET-Inst_1.onnx',
|
| 70 |
-
'UVR-MDX-NET-Inst_2.onnx',
|
| 71 |
-
'UVR-MDX-NET-Inst_3.onnx',
|
| 72 |
-
'UVR-MDX-NET-Inst_HQ_1.onnx',
|
| 73 |
-
'UVR-MDX-NET-Inst_HQ_2.onnx',
|
| 74 |
-
'UVR-MDX-NET-Inst_HQ_3.onnx',
|
| 75 |
-
'UVR-MDX-NET-Inst_HQ_4.onnx',
|
| 76 |
-
'UVR-MDX-NET-Inst_HQ_5.onnx',
|
| 77 |
-
'UVR-MDX-NET_Inst_82_beta.onnx',
|
| 78 |
-
'UVR-MDX-NET_Inst_90_beta.onnx',
|
| 79 |
-
'UVR-MDX-NET_Inst_187_beta.onnx',
|
| 80 |
-
'UVR-MDX-NET-Inst_full_292.onnx',
|
| 81 |
-
'UVR-MDX-NET_Main_340.onnx',
|
| 82 |
-
'UVR-MDX-NET_Main_390.onnx',
|
| 83 |
-
'UVR-MDX-NET_Main_406.onnx',
|
| 84 |
-
'UVR-MDX-NET_Main_427.onnx',
|
| 85 |
-
'UVR-MDX-NET_Main_438.onnx',
|
| 86 |
-
'UVR-MDX-NET-Crowd_HQ_1.onnx',
|
| 87 |
-
'UVR-MDX-NET-Voc_FT.onnx',
|
| 88 |
-
'UVR_MDXNET_1_9703.onnx',
|
| 89 |
-
'UVR_MDXNET_2_9682.onnx',
|
| 90 |
-
'UVR_MDXNET_3_9662.onnx',
|
| 91 |
-
'UVR_MDXNET_9482.onnx',
|
| 92 |
-
'UVR_MDXNET_KARA.onnx',
|
| 93 |
-
'UVR_MDXNET_KARA_2.onnx',
|
| 94 |
-
'UVR_MDXNET_Main.onnx',
|
| 95 |
-
'
|
| 96 |
-
'
|
| 97 |
-
'
|
| 98 |
-
'
|
| 99 |
-
'
|
| 100 |
-
'
|
| 101 |
-
'
|
| 102 |
-
'
|
| 103 |
-
'
|
| 104 |
-
'
|
| 105 |
-
'
|
| 106 |
-
'
|
|
|
|
| 107 |
]
|
| 108 |
#========================#
|
| 109 |
# VR-ARCH Models #
|
| 110 |
#========================#
|
| 111 |
VR_ARCH_MODELS = [
|
| 112 |
-
'1_HP-UVR.pth',
|
| 113 |
-
'2_HP-UVR.pth',
|
| 114 |
-
'3_HP-Vocal-UVR.pth',
|
| 115 |
-
'4_HP-Vocal-UVR.pth',
|
| 116 |
-
'5_HP-Karaoke-UVR.pth',
|
| 117 |
-
'6_HP-Karaoke-UVR.pth',
|
| 118 |
-
'7_HP2-UVR.pth',
|
| 119 |
-
'8_HP2-UVR.pth',
|
| 120 |
-
'9_HP2-UVR.pth',
|
| 121 |
-
'10_SP-UVR-2B-32000-1.pth',
|
| 122 |
-
'11_SP-UVR-2B-32000-2.pth',
|
| 123 |
-
'12_SP-UVR-3B-44100.pth',
|
| 124 |
-
'13_SP-UVR-4B-44100-1.pth',
|
| 125 |
-
'14_SP-UVR-4B-44100-2.pth',
|
| 126 |
-
'15_SP-UVR-MID-44100-1.pth',
|
| 127 |
-
'16_SP-UVR-MID-44100-2.pth',
|
| 128 |
-
'17_HP-Wind_Inst-UVR.pth',
|
| 129 |
-
'
|
| 130 |
-
'
|
| 131 |
-
'
|
| 132 |
-
'
|
| 133 |
-
'UVR-
|
| 134 |
-
'
|
| 135 |
-
'
|
| 136 |
-
'
|
| 137 |
-
'
|
| 138 |
-
'UVR-
|
| 139 |
-
'UVR-
|
| 140 |
]
|
| 141 |
#=======================#
|
| 142 |
# DEMUCS Models #
|
| 143 |
#=======================#
|
| 144 |
DEMUCS_MODELS = [
|
| 145 |
-
'hdemucs_mmi.yaml',
|
| 146 |
-
'htdemucs.yaml',
|
| 147 |
-
'htdemucs_6s.yaml',
|
| 148 |
-
'htdemucs_ft.yaml',
|
| 149 |
]
|
| 150 |
|
| 151 |
def print_message(input_file, model_name):
|
|
@@ -238,10 +239,11 @@ def roformer_separator(audio, model_key, seg_size, override_seg_size, overlap, p
|
|
| 238 |
except Exception as e:
|
| 239 |
raise RuntimeError(f"Roformer separation failed: {e}") from e
|
| 240 |
|
| 241 |
-
def mdx23c_separator(audio,
|
| 242 |
"""Separate audio using MDX23C model."""
|
| 243 |
stemname = rename_stems(audio, vocals_stem, instrumental_stem, other_stem, drums_stem, bass_stem, guitar_stem, piano_stem, model)
|
| 244 |
print_message(audio, model)
|
|
|
|
| 245 |
try:
|
| 246 |
out_dir = prepare_output_dir(audio, out_dir)
|
| 247 |
separator = Separator(
|
|
@@ -273,10 +275,11 @@ def mdx23c_separator(audio, model, seg_size, override_seg_size, overlap, pitch_s
|
|
| 273 |
except Exception as e:
|
| 274 |
raise RuntimeError(f"MDX23C separation failed: {e}") from e
|
| 275 |
|
| 276 |
-
def mdx_separator(audio,
|
| 277 |
"""Separate audio using MDX-NET model."""
|
| 278 |
stemname = rename_stems(audio, vocals_stem, instrumental_stem, other_stem, drums_stem, bass_stem, guitar_stem, piano_stem, model)
|
| 279 |
print_message(audio, model)
|
|
|
|
| 280 |
try:
|
| 281 |
out_dir = prepare_output_dir(audio, out_dir)
|
| 282 |
separator = Separator(
|
|
@@ -308,10 +311,11 @@ def mdx_separator(audio, model, hop_length, seg_size, overlap, denoise, model_di
|
|
| 308 |
except Exception as e:
|
| 309 |
raise RuntimeError(f"MDX-NET separation failed: {e}") from e
|
| 310 |
|
| 311 |
-
def vr_separator(audio,
|
| 312 |
"""Separate audio using VR ARCH model."""
|
| 313 |
stemname = rename_stems(audio, vocals_stem, instrumental_stem, other_stem, drums_stem, bass_stem, guitar_stem, piano_stem, model)
|
| 314 |
print_message(audio, model)
|
|
|
|
| 315 |
try:
|
| 316 |
out_dir = prepare_output_dir(audio, out_dir)
|
| 317 |
separator = Separator(
|
|
@@ -345,10 +349,11 @@ def vr_separator(audio, model, window_size, aggression, tta, post_process, post_
|
|
| 345 |
except Exception as e:
|
| 346 |
raise RuntimeError(f"VR ARCH separation failed: {e}") from e
|
| 347 |
|
| 348 |
-
def demucs_separator(audio,
|
| 349 |
"""Separate audio using Demucs model."""
|
| 350 |
stemname = rename_stems(audio, vocals_stem, instrumental_stem, other_stem, drums_stem, bass_stem, guitar_stem, piano_stem, model)
|
| 351 |
print_message(audio, model)
|
|
|
|
| 352 |
try:
|
| 353 |
out_dir = prepare_output_dir(audio, out_dir)
|
| 354 |
separator = Separator(
|
|
@@ -420,7 +425,7 @@ with gr.Blocks(
|
|
| 420 |
with gr.Tab("MDX23C"):
|
| 421 |
with gr.Group():
|
| 422 |
with gr.Row():
|
| 423 |
-
mdx23c_model = gr.Dropdown(label="Select the Model", choices=MDX23C_MODELS)
|
| 424 |
with gr.Row():
|
| 425 |
mdx23c_seg_size = gr.Slider(minimum=32, maximum=4000, step=32, value=256, label="Segment Size", info="Larger consumes more resources, but may give better results.")
|
| 426 |
mdx23c_override_seg_size = gr.Checkbox(value=False, label="Override segment size", info="Override model default segment size instead of using the model default value.")
|
|
@@ -437,7 +442,7 @@ with gr.Blocks(
|
|
| 437 |
with gr.Tab("MDX-NET"):
|
| 438 |
with gr.Group():
|
| 439 |
with gr.Row():
|
| 440 |
-
mdx_model = gr.Dropdown(label="Select the Model", choices=MDXNET_MODELS)
|
| 441 |
with gr.Row():
|
| 442 |
mdx_hop_length = gr.Slider(minimum=32, maximum=2048, step=32, value=1024, label="Hop Length", info="Usually called stride in neural networks; only change if you know what you're doing.")
|
| 443 |
mdx_seg_size = gr.Slider(minimum=32, maximum=4000, step=32, value=256, label="Segment Size", info="Larger consumes more resources, but may give better results.")
|
|
@@ -454,7 +459,7 @@ with gr.Blocks(
|
|
| 454 |
with gr.Tab("VR ARCH"):
|
| 455 |
with gr.Group():
|
| 456 |
with gr.Row():
|
| 457 |
-
vr_model = gr.Dropdown(label="Select the Model", choices=VR_ARCH_MODELS)
|
| 458 |
with gr.Row():
|
| 459 |
vr_window_size = gr.Slider(minimum=320, maximum=1024, step=32, value=512, label="Window Size", info="Balance quality and speed. 1024 = fast but lower, 320 = slower but better quality.")
|
| 460 |
vr_aggression = gr.Slider(minimum=1, maximum=100, step=1, value=5, label="Agression", info="Intensity of primary stem extraction.")
|
|
@@ -473,7 +478,7 @@ with gr.Blocks(
|
|
| 473 |
with gr.Tab("Demucs"):
|
| 474 |
with gr.Group():
|
| 475 |
with gr.Row():
|
| 476 |
-
demucs_model = gr.Dropdown(label="Select the Model", choices=DEMUCS_MODELS)
|
| 477 |
with gr.Row():
|
| 478 |
demucs_seg_size = gr.Slider(minimum=1, maximum=100, step=1, value=40, label="Segment Size", info="Size of segments into which the audio is split. Higher = slower but better quality.")
|
| 479 |
demucs_shifts = gr.Slider(minimum=0, maximum=20, step=1, value=2, label="Shifts", info="Number of predictions with random shifts, higher = slower but better quality.")
|
|
|
|
| 17 |
ROFORMER_MODELS = {
|
| 18 |
# BS Roformer
|
| 19 |
'BS Roformer | Chorus Male-Female by Sucial': 'model_chorus_bs_roformer_ep_267_sdr_24.1275.ckpt',
|
| 20 |
+
'BS-Roformer-De-Reverb': 'deverb_bs_roformer_8_384dim_10depth.ckpt',
|
| 21 |
+
'BS-Roformer-Viperx-1053': 'model_bs_roformer_ep_937_sdr_10.5309.ckpt',
|
| 22 |
+
'BS-Roformer-Viperx-1296': 'model_bs_roformer_ep_368_sdr_12.9628.ckpt',
|
| 23 |
+
'BS-Roformer-Viperx-1297': 'model_bs_roformer_ep_317_sdr_12.9755.ckpt',
|
| 24 |
|
| 25 |
# MelBand Roformer
|
| 26 |
'MelBand Roformer | Aspiration by Sucial': 'aspiration_mel_band_roformer_sdr_18.9845.ckpt',
|
| 27 |
'MelBand Roformer | Aspiration Less Aggressive by Sucial': 'aspiration_mel_band_roformer_less_aggr_sdr_18.1201.ckpt',
|
| 28 |
'MelBand Roformer | Bleed Suppressor V1 by unwa-97chris': 'mel_band_roformer_bleed_suppressor_v1.ckpt',
|
| 29 |
+
'Mel-Roformer-Crowd-Aufr33-Viperx': 'mel_band_roformer_crowd_aufr33_viperx_sdr_8.7144.ckpt',
|
| 30 |
+
'Mel-Roformer-Denoise-Aufr33': 'denoise_mel_band_roformer_aufr33_sdr_27.9959.ckpt',
|
| 31 |
+
'Mel-Roformer-Denoise-Aufr33-Aggr': 'denoise_mel_band_roformer_aufr33_aggr_sdr_27.9768.ckpt',
|
| 32 |
'MelBand Roformer | De-Reverb by anvuew': 'dereverb_mel_band_roformer_anvuew_sdr_19.1729.ckpt',
|
| 33 |
'MelBand Roformer | De-Reverb Less Aggressive by anvuew': 'dereverb_mel_band_roformer_less_aggressive_anvuew_sdr_18.8050.ckpt',
|
| 34 |
'MelBand Roformer | De-Reverb-Echo by Sucial': 'dereverb-echo_mel_band_roformer_sdr_10.0169.ckpt',
|
| 35 |
'MelBand Roformer | De-Reverb-Echo V2 by Sucial': 'dereverb-echo_mel_band_roformer_sdr_13.4843_v2.ckpt',
|
| 36 |
+
'Mel-Roformer-Karaoke-Aufr33-Viperx': 'mel_band_roformer_karaoke_aufr33_viperx_sdr_10.1956.ckpt',
|
| 37 |
+
'Mel-Roformer-Viperx-1143': 'model_mel_band_roformer_ep_3005_sdr_11.4360.ckpt',
|
| 38 |
'MelBand Roformer | Vocals by Kimberley Jensen': 'vocals_mel_band_roformer.ckpt',
|
| 39 |
|
| 40 |
# MelBand Roformer Kim
|
|
|
|
| 42 |
'MelBand Roformer Kim | Big Beta 5e FT by unwa': 'melband_roformer_big_beta5e.ckpt',
|
| 43 |
'MelBand Roformer Kim | Big SYHFT V1 by SYH99999': 'MelBandRoformerBigSYHFTV1.ckpt',
|
| 44 |
'MelBand Roformer Kim | FT by unwa': 'mel_band_roformer_kim_ft_unwa.ckpt',
|
| 45 |
+
'MelBand Roformer Kim | Inst V1 by Unwa': 'melband_roformer_inst_v1.ckpt',
|
| 46 |
+
'MelBand Roformer Kim | Inst V1 (E) by Unwa': 'melband_roformer_inst_v1e.ckpt',
|
| 47 |
+
'MelBand Roformer Kim | Inst V2 by Unwa': 'melband_roformer_inst_v2.ckpt',
|
| 48 |
+
'MelBand Roformer Kim | InstVoc Duality V1 by Unwa': 'melband_roformer_instvoc_duality_v1.ckpt',
|
| 49 |
+
'MelBand Roformer Kim | InstVoc Duality V2 by Unwa': 'melband_roformer_instvox_duality_v2.ckpt',
|
| 50 |
'MelBand Roformer Kim | SYHFT V2 by SYH99999': 'MelBandRoformerSYHFTV2.ckpt',
|
| 51 |
'MelBand Roformer Kim | SYHFT V2.5 by SYH99999': 'MelBandRoformerSYHFTV2.5.ckpt',
|
| 52 |
'MelBand Roformer Kim | SYHFT V3 by SYH99999': 'MelBandRoformerSYHFTV3Epsilon.ckpt',
|
|
|
|
| 56 |
# MDX23C Models #
|
| 57 |
#=========================#
|
| 58 |
MDX23C_MODELS = [
|
| 59 |
+
'MDX23C-InstVoc HQ': 'MDX23C-8KFFT-InstVoc_HQ.ckpt',
|
| 60 |
+
'VIP | MDX23C-InstVoc HQ 2': 'MDX23C-8KFFT-InstVoc_HQ_2.ckpt',
|
| 61 |
+
'VIP | MDX23C_D1581': 'MDX23C_D1581.ckpt',
|
| 62 |
+
'MDX23C De-Reverb by aufr33-jarredou': 'MDX23C-De-Reverb-aufr33-jarredou.ckpt',
|
| 63 |
+
'MDX23C DrumSep by aufr33-jarredou': 'MDX23C-DrumSep-aufr33-jarredou.ckpt',
|
| 64 |
]
|
| 65 |
#=========================#
|
| 66 |
# MDXN-NET Models #
|
| 67 |
#=========================#
|
| 68 |
MDXNET_MODELS = [
|
| 69 |
+
'UVR-MDX-NET Inst 1': 'UVR-MDX-NET-Inst_1.onnx',
|
| 70 |
+
'UVR-MDX-NET Inst 2': 'UVR-MDX-NET-Inst_2.onnx',
|
| 71 |
+
'UVR-MDX-NET Inst 3': 'UVR-MDX-NET-Inst_3.onnx',
|
| 72 |
+
'UVR-MDX-NET Inst HQ 1': 'UVR-MDX-NET-Inst_HQ_1.onnx',
|
| 73 |
+
'UVR-MDX-NET Inst HQ 2': 'UVR-MDX-NET-Inst_HQ_2.onnx',
|
| 74 |
+
'UVR-MDX-NET Inst HQ 3': 'UVR-MDX-NET-Inst_HQ_3.onnx',
|
| 75 |
+
'UVR-MDX-NET Inst HQ 4': 'UVR-MDX-NET-Inst_HQ_4.onnx',
|
| 76 |
+
'UVR-MDX-NET Inst HQ 5': 'UVR-MDX-NET-Inst_HQ_5.onnx',
|
| 77 |
+
'VIP | UVR-MDX-NET_Inst_82_beta': 'UVR-MDX-NET_Inst_82_beta.onnx',
|
| 78 |
+
'VIP | UVR-MDX-NET_Inst_90_beta': 'UVR-MDX-NET_Inst_90_beta.onnx',
|
| 79 |
+
'VIP | UVR-MDX-NET_Inst_187_beta': 'UVR-MDX-NET_Inst_187_beta.onnx',
|
| 80 |
+
'VIP | UVR-MDX-NET-Inst_full_292': 'UVR-MDX-NET-Inst_full_292.onnx',
|
| 81 |
+
'VIP | UVR-MDX-NET_Main_340': 'UVR-MDX-NET_Main_340.onnx',
|
| 82 |
+
'VIP | UVR-MDX-NET_Main_390': 'UVR-MDX-NET_Main_390.onnx',
|
| 83 |
+
'VIP | UVR-MDX-NET_Main_406': 'UVR-MDX-NET_Main_406.onnx',
|
| 84 |
+
'VIP | UVR-MDX-NET_Main_427': 'UVR-MDX-NET_Main_427.onnx',
|
| 85 |
+
'VIP | UVR-MDX-NET_Main_438': 'UVR-MDX-NET_Main_438.onnx',
|
| 86 |
+
'UVR-MDX-NET Crowd HQ 1 By Aufr33': 'UVR-MDX-NET-Crowd_HQ_1.onnx',
|
| 87 |
+
'UVR-MDX-NET Voc FT': 'UVR-MDX-NET-Voc_FT.onnx',
|
| 88 |
+
'UVR-MDX-NET 1': 'UVR_MDXNET_1_9703.onnx',
|
| 89 |
+
'UVR-MDX-NET 2': 'UVR_MDXNET_2_9682.onnx',
|
| 90 |
+
'UVR-MDX-NET 3': 'UVR_MDXNET_3_9662.onnx',
|
| 91 |
+
'UVR_MDXNET_9482': 'UVR_MDXNET_9482.onnx',
|
| 92 |
+
'UVR-MDX-NET Karaoke': 'UVR_MDXNET_KARA.onnx',
|
| 93 |
+
'UVR-MDX-NET Karaoke 2': 'UVR_MDXNET_KARA_2.onnx',
|
| 94 |
+
'UVR-MDX-NET Main': 'UVR_MDXNET_Main.onnx',
|
| 95 |
+
'UVR-MDX-NET Inst Main': 'UVR-MDX-NET-Inst_Main.onnx',
|
| 96 |
+
'kuielab_a_bass': 'kuielab_a_bass.onnx',
|
| 97 |
+
'kuielab_a_drums': 'kuielab_a_drums.onnx',
|
| 98 |
+
'kuielab_a_other': 'kuielab_a_other.onnx',
|
| 99 |
+
'kuielab_a_vocals': 'kuielab_a_vocals.onnx',
|
| 100 |
+
'kuielab_b_bass': 'kuielab_b_bass.onnx',
|
| 101 |
+
'kuielab_b_drums': 'kuielab_b_drums.onnx',
|
| 102 |
+
'kuielab_b_other': 'kuielab_b_other.onnx',
|
| 103 |
+
'kuielab_b_vocals': 'kuielab_b_vocals.onnx',
|
| 104 |
+
'Kim Inst': 'Kim_Inst.onnx',
|
| 105 |
+
'Kim Vocal 1': 'Kim_Vocal_1.onnx',
|
| 106 |
+
'Kim Vocal 2': 'Kim_Vocal_2.onnx',
|
| 107 |
+
'Reverb HQ By FoxJoy': 'Reverb_HQ_By_FoxJoy.onnx',
|
| 108 |
]
|
| 109 |
#========================#
|
| 110 |
# VR-ARCH Models #
|
| 111 |
#========================#
|
| 112 |
VR_ARCH_MODELS = [
|
| 113 |
+
'1_HP-UVR': '1_HP-UVR.pth',
|
| 114 |
+
'2_HP-UVR': '2_HP-UVR.pth',
|
| 115 |
+
'3_HP-Vocal-UVR': '3_HP-Vocal-UVR.pth',
|
| 116 |
+
'4_HP-Vocal-UVR': '4_HP-Vocal-UVR.pth',
|
| 117 |
+
'5_HP-Karaoke-UVR': '5_HP-Karaoke-UVR.pth',
|
| 118 |
+
'6_HP-Karaoke-UVR': '6_HP-Karaoke-UVR.pth',
|
| 119 |
+
'7_HP2-UVR': '7_HP2-UVR.pth',
|
| 120 |
+
'8_HP2-UVR': '8_HP2-UVR.pth',
|
| 121 |
+
'9_HP2-UVR': '9_HP2-UVR.pth',
|
| 122 |
+
'10_SP-UVR-2B-32000-1': '10_SP-UVR-2B-32000-1.pth',
|
| 123 |
+
'11_SP-UVR-2B-32000-2': '11_SP-UVR-2B-32000-2.pth',
|
| 124 |
+
'12_SP-UVR-3B-44100': '12_SP-UVR-3B-44100.pth',
|
| 125 |
+
'13_SP-UVR-4B-44100-1': '13_SP-UVR-4B-44100-1.pth',
|
| 126 |
+
'14_SP-UVR-4B-44100-2': '14_SP-UVR-4B-44100-2.pth',
|
| 127 |
+
'15_SP-UVR-MID-44100-1': '15_SP-UVR-MID-44100-1.pth',
|
| 128 |
+
'16_SP-UVR-MID-44100-2': '16_SP-UVR-MID-44100-2.pth',
|
| 129 |
+
'17_HP-Wind_Inst-UVR': '17_HP-Wind_Inst-UVR.pth',
|
| 130 |
+
'UVR-De-Echo-Aggressive by FoxJoy': 'UVR-De-Echo-Aggressive.pth',
|
| 131 |
+
'UVR-De-Echo-Normal by FoxJoy': 'UVR-De-Echo-Normal.pth',
|
| 132 |
+
'UVR-DeEcho-DeReverb by FoxJoy': 'UVR-DeEcho-DeReverb.pth',
|
| 133 |
+
'UVR-DeNoise-Lite by FoxJoy': 'UVR-DeNoise-Lite.pth',
|
| 134 |
+
'UVR-DeNoise by FoxJoy': 'UVR-DeNoise.pth',
|
| 135 |
+
'MGM_HIGHEND_v4': 'MGM_HIGHEND_v4.pth',
|
| 136 |
+
'MGM_LOWEND_A_v4': 'MGM_LOWEND_A_v4.pth',
|
| 137 |
+
'MGM_LOWEND_B_v4': 'MGM_LOWEND_B_v4.pth',
|
| 138 |
+
'MGM_MAIN_v4': 'MGM_MAIN_v4.pth',
|
| 139 |
+
'UVR-BVE-4B_SN-44100-1': 'UVR-BVE-4B_SN-44100-1.pth',
|
| 140 |
+
'UVR-De-Reverb by aufr33-jarredou': 'UVR-De-Reverb-aufr33-jarredou.pth',
|
| 141 |
]
|
| 142 |
#=======================#
|
| 143 |
# DEMUCS Models #
|
| 144 |
#=======================#
|
| 145 |
DEMUCS_MODELS = [
|
| 146 |
+
'hdemucs_mmi': 'hdemucs_mmi.yaml',
|
| 147 |
+
'htdemucs': 'htdemucs.yaml',
|
| 148 |
+
'htdemucs_6s': 'htdemucs_6s.yaml',
|
| 149 |
+
'htdemucs_ft': 'htdemucs_ft.yaml',
|
| 150 |
]
|
| 151 |
|
| 152 |
def print_message(input_file, model_name):
|
|
|
|
| 239 |
except Exception as e:
|
| 240 |
raise RuntimeError(f"Roformer separation failed: {e}") from e
|
| 241 |
|
| 242 |
+
def mdx23c_separator(audio, model_key, seg_size, override_seg_size, overlap, pitch_shift, model_dir, out_dir, out_format, norm_thresh, amp_thresh, batch_size, vocals_stem, instrumental_stem, other_stem, drums_stem, bass_stem, guitar_stem, piano_stem, progress=gr.Progress(track_tqdm=True)):
|
| 243 |
"""Separate audio using MDX23C model."""
|
| 244 |
stemname = rename_stems(audio, vocals_stem, instrumental_stem, other_stem, drums_stem, bass_stem, guitar_stem, piano_stem, model)
|
| 245 |
print_message(audio, model)
|
| 246 |
+
model = MDX23C_MODELS[model_key]
|
| 247 |
try:
|
| 248 |
out_dir = prepare_output_dir(audio, out_dir)
|
| 249 |
separator = Separator(
|
|
|
|
| 275 |
except Exception as e:
|
| 276 |
raise RuntimeError(f"MDX23C separation failed: {e}") from e
|
| 277 |
|
| 278 |
+
def mdx_separator(audio, model_key, hop_length, seg_size, overlap, denoise, model_dir, out_dir, out_format, norm_thresh, amp_thresh, batch_size, vocals_stem, instrumental_stem, other_stem, drums_stem, bass_stem, guitar_stem, piano_stem, progress=gr.Progress(track_tqdm=True)):
|
| 279 |
"""Separate audio using MDX-NET model."""
|
| 280 |
stemname = rename_stems(audio, vocals_stem, instrumental_stem, other_stem, drums_stem, bass_stem, guitar_stem, piano_stem, model)
|
| 281 |
print_message(audio, model)
|
| 282 |
+
model = MDXNET_MODELS[model_key]
|
| 283 |
try:
|
| 284 |
out_dir = prepare_output_dir(audio, out_dir)
|
| 285 |
separator = Separator(
|
|
|
|
| 311 |
except Exception as e:
|
| 312 |
raise RuntimeError(f"MDX-NET separation failed: {e}") from e
|
| 313 |
|
| 314 |
+
def vr_separator(audio, model_key, window_size, aggression, tta, post_process, post_process_threshold, high_end_process, model_dir, out_dir, out_format, norm_thresh, amp_thresh, batch_size, vocals_stem, instrumental_stem, other_stem, drums_stem, bass_stem, guitar_stem, piano_stem, progress=gr.Progress(track_tqdm=True)):
|
| 315 |
"""Separate audio using VR ARCH model."""
|
| 316 |
stemname = rename_stems(audio, vocals_stem, instrumental_stem, other_stem, drums_stem, bass_stem, guitar_stem, piano_stem, model)
|
| 317 |
print_message(audio, model)
|
| 318 |
+
model = VR_ARCH_MODELS[model_key]
|
| 319 |
try:
|
| 320 |
out_dir = prepare_output_dir(audio, out_dir)
|
| 321 |
separator = Separator(
|
|
|
|
| 349 |
except Exception as e:
|
| 350 |
raise RuntimeError(f"VR ARCH separation failed: {e}") from e
|
| 351 |
|
| 352 |
+
def demucs_separator(audio, model_key, seg_size, shifts, overlap, segments_enabled, model_dir, out_dir, out_format, norm_thresh, amp_thresh, vocals_stem, instrumental_stem, other_stem, drums_stem, bass_stem, guitar_stem, piano_stem, progress=gr.Progress(track_tqdm=True)):
|
| 353 |
"""Separate audio using Demucs model."""
|
| 354 |
stemname = rename_stems(audio, vocals_stem, instrumental_stem, other_stem, drums_stem, bass_stem, guitar_stem, piano_stem, model)
|
| 355 |
print_message(audio, model)
|
| 356 |
+
model = DEMUCS_MODELS[model_key]
|
| 357 |
try:
|
| 358 |
out_dir = prepare_output_dir(audio, out_dir)
|
| 359 |
separator = Separator(
|
|
|
|
| 425 |
with gr.Tab("MDX23C"):
|
| 426 |
with gr.Group():
|
| 427 |
with gr.Row():
|
| 428 |
+
mdx23c_model = gr.Dropdown(label="Select the Model", choices=list(MDX23C_MODELS.keys()))
|
| 429 |
with gr.Row():
|
| 430 |
mdx23c_seg_size = gr.Slider(minimum=32, maximum=4000, step=32, value=256, label="Segment Size", info="Larger consumes more resources, but may give better results.")
|
| 431 |
mdx23c_override_seg_size = gr.Checkbox(value=False, label="Override segment size", info="Override model default segment size instead of using the model default value.")
|
|
|
|
| 442 |
with gr.Tab("MDX-NET"):
|
| 443 |
with gr.Group():
|
| 444 |
with gr.Row():
|
| 445 |
+
mdx_model = gr.Dropdown(label="Select the Model", choices=list(MDXNET_MODELS.keys()))
|
| 446 |
with gr.Row():
|
| 447 |
mdx_hop_length = gr.Slider(minimum=32, maximum=2048, step=32, value=1024, label="Hop Length", info="Usually called stride in neural networks; only change if you know what you're doing.")
|
| 448 |
mdx_seg_size = gr.Slider(minimum=32, maximum=4000, step=32, value=256, label="Segment Size", info="Larger consumes more resources, but may give better results.")
|
|
|
|
| 459 |
with gr.Tab("VR ARCH"):
|
| 460 |
with gr.Group():
|
| 461 |
with gr.Row():
|
| 462 |
+
vr_model = gr.Dropdown(label="Select the Model", choices=list(VR_ARCH_MODELS.keys()))
|
| 463 |
with gr.Row():
|
| 464 |
vr_window_size = gr.Slider(minimum=320, maximum=1024, step=32, value=512, label="Window Size", info="Balance quality and speed. 1024 = fast but lower, 320 = slower but better quality.")
|
| 465 |
vr_aggression = gr.Slider(minimum=1, maximum=100, step=1, value=5, label="Agression", info="Intensity of primary stem extraction.")
|
|
|
|
| 478 |
with gr.Tab("Demucs"):
|
| 479 |
with gr.Group():
|
| 480 |
with gr.Row():
|
| 481 |
+
demucs_model = gr.Dropdown(label="Select the Model", choices=list(DEMUCS_MODELS.keys()))
|
| 482 |
with gr.Row():
|
| 483 |
demucs_seg_size = gr.Slider(minimum=1, maximum=100, step=1, value=40, label="Segment Size", info="Size of segments into which the audio is split. Higher = slower but better quality.")
|
| 484 |
demucs_shifts = gr.Slider(minimum=0, maximum=20, step=1, value=2, label="Shifts", info="Number of predictions with random shifts, higher = slower but better quality.")
|