Politrees commited on
Commit
188b10f
·
verified ·
1 Parent(s): bd5f7c3

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +102 -97
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 Roformer | DeReverb - by anvuew': 'deverb_bs_roformer_8_384dim_10depth.ckpt',
21
- 'BS Roformer | sdr 10.5309 - by Viperx': 'model_bs_roformer_ep_937_sdr_10.5309.ckpt',
22
- 'BS Roformer | sdr 12.9628 - by Viperx': 'model_bs_roformer_ep_368_sdr_12.9628.ckpt',
23
- 'BS Roformer | sdr 12.9755 - by Viperx': '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
- 'MelBand Roformer | Crowd - by Aufr33 and Viperx': 'mel_band_roformer_crowd_aufr33_viperx_sdr_8.7144.ckpt',
30
- 'MelBand Roformer | DeNoise - by Aufr33': 'denoise_mel_band_roformer_aufr33_sdr_27.9959.ckpt',
31
- 'MelBand Roformer | DeNoise Aggr - by Aufr33': '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
- 'MelBand Roformer | Karaoke - by Aufr33 and Viperx': 'mel_band_roformer_karaoke_aufr33_viperx_sdr_10.1956.ckpt',
37
- 'MelBand Roformer | sdr 11.4360 - by Viperx': '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,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 - 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,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
- 'kuielab_a_bass.onnx',
96
- 'kuielab_a_drums.onnx',
97
- 'kuielab_a_other.onnx',
98
- 'kuielab_a_vocals.onnx',
99
- 'kuielab_b_bass.onnx',
100
- 'kuielab_b_drums.onnx',
101
- 'kuielab_b_other.onnx',
102
- 'kuielab_b_vocals.onnx',
103
- 'Kim_Inst.onnx',
104
- 'Kim_Vocal_1.onnx',
105
- 'Kim_Vocal_2.onnx',
106
- 'Reverb_HQ_By_FoxJoy.onnx',
 
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
- 'MGM_HIGHEND_v4.pth',
130
- 'MGM_LOWEND_A_v4.pth',
131
- 'MGM_LOWEND_B_v4.pth',
132
- 'MGM_MAIN_v4.pth',
133
- 'UVR-BVE-4B_SN-44100-1.pth',
134
- 'UVR-DeEcho-DeReverb.pth',
135
- 'UVR-De-Echo-Aggressive.pth',
136
- 'UVR-De-Echo-Normal.pth',
137
- 'UVR-De-Reverb-aufr33-jarredou.pth',
138
- 'UVR-DeNoise-Lite.pth',
139
- 'UVR-DeNoise.pth',
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, model, 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)):
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, model, 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)):
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, model, 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)):
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, model, 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)):
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.")