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.")
|