Spaces:
Running
Running
Update app.py
Browse files
app.py
CHANGED
@@ -4,7 +4,7 @@ import shutil
|
|
4 |
import logging
|
5 |
import gradio as gr
|
6 |
|
7 |
-
from
|
8 |
|
9 |
device = "cuda" if torch.cuda.is_available() else "cpu"
|
10 |
use_autocast = device == "cuda"
|
@@ -18,11 +18,13 @@ ROFORMER_MODELS = {
|
|
18 |
'BS-Roformer-Viperx-1297': 'model_bs_roformer_ep_317_sdr_12.9755.ckpt',
|
19 |
'BS-Roformer-De-Reverb': 'deverb_bs_roformer_8_384dim_10depth.ckpt',
|
20 |
'Mel-Roformer-Viperx-1143': 'model_mel_band_roformer_ep_3005_sdr_11.4360.ckpt',
|
|
|
21 |
'Mel-Roformer-Crowd-Aufr33-Viperx': 'mel_band_roformer_crowd_aufr33_viperx_sdr_8.7144.ckpt',
|
22 |
'Mel-Roformer-Karaoke-Aufr33-Viperx': 'mel_band_roformer_karaoke_aufr33_viperx_sdr_10.1956.ckpt',
|
23 |
'Mel-Roformer-Denoise-Aufr33': 'denoise_mel_band_roformer_aufr33_sdr_27.9959.ckpt',
|
24 |
'Mel-Roformer-Denoise-Aufr33-Aggr': 'denoise_mel_band_roformer_aufr33_aggr_sdr_27.9768.ckpt',
|
25 |
'MelBand Roformer Kim | Inst V1 by Unwa': 'melband_roformer_inst_v1.ckpt',
|
|
|
26 |
'MelBand Roformer Kim | Inst V2 by Unwa': 'melband_roformer_inst_v2.ckpt',
|
27 |
'MelBand Roformer Kim | InstVoc Duality V1 by Unwa': 'melband_roformer_instvoc_duality_v1.ckpt',
|
28 |
'MelBand Roformer Kim | InstVoc Duality V2 by Unwa': 'melband_roformer_instvox_duality_v2.ckpt',
|
@@ -124,7 +126,7 @@ def print_message(input_file, model_name):
|
|
124 |
"""Prints information about the audio separation process."""
|
125 |
base_name = os.path.splitext(os.path.basename(input_file))[0]
|
126 |
print("\n")
|
127 |
-
print("🎵
|
128 |
print("Input audio:", base_name)
|
129 |
print("Separation Model:", model_name)
|
130 |
print("Audio Separation Process...")
|
@@ -344,14 +346,14 @@ def update_stems(model):
|
|
344 |
return gr.update(visible=False)
|
345 |
|
346 |
with gr.Blocks(
|
347 |
-
title="🎵
|
348 |
css="footer{display:none !important}",
|
349 |
theme=gr.themes.Default(
|
350 |
spacing_size="sm",
|
351 |
radius_size="lg",
|
352 |
)
|
353 |
) as app:
|
354 |
-
gr.HTML("<h1> 🎵
|
355 |
|
356 |
with gr.Tab("Roformer"):
|
357 |
with gr.Group():
|
@@ -361,7 +363,7 @@ with gr.Blocks(
|
|
361 |
roformer_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.")
|
362 |
roformer_override_seg_size = gr.Checkbox(value=False, label="Override segment size", info="Override model default segment size instead of using the model default value.")
|
363 |
roformer_overlap = gr.Slider(minimum=2, maximum=10, step=1, value=8, label="Overlap", info="Amount of overlap between prediction windows. Lower is better but slower.")
|
364 |
-
roformer_pitch_shift = gr.Slider(minimum=-
|
365 |
with gr.Row():
|
366 |
roformer_audio = gr.Audio(label="Input Audio", type="filepath")
|
367 |
with gr.Row():
|
@@ -378,7 +380,7 @@ with gr.Blocks(
|
|
378 |
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.")
|
379 |
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.")
|
380 |
mdx23c_overlap = gr.Slider(minimum=2, maximum=50, step=1, value=8, label="Overlap", info="Amount of overlap between prediction windows. Higher is better but slower.")
|
381 |
-
mdx23c_pitch_shift = gr.Slider(minimum=-
|
382 |
with gr.Row():
|
383 |
mdx23c_audio = gr.Audio(label="Input Audio", type="filepath")
|
384 |
with gr.Row():
|
@@ -410,7 +412,7 @@ with gr.Blocks(
|
|
410 |
vr_model = gr.Dropdown(label="Select the Model", choices=VR_ARCH_MODELS)
|
411 |
with gr.Row():
|
412 |
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.")
|
413 |
-
vr_aggression = gr.Slider(minimum=1, maximum=
|
414 |
vr_tta = gr.Checkbox(value=False, label="TTA", info="Enable Test-Time-Augmentation; slow but improves quality.")
|
415 |
vr_post_process = gr.Checkbox(value=False, label="Post Process", info="Identify leftover artifacts within vocal output; may improve separation for some songs.")
|
416 |
vr_post_process_threshold = gr.Slider(minimum=0.1, maximum=0.3, step=0.1, value=0.2, label="Post Process Threshold", info="Threshold for post-processing.")
|
@@ -468,7 +470,6 @@ with gr.Blocks(
|
|
468 |
* **NAME** - Input File Name
|
469 |
* **STEM** - Stem Name (e.g., Vocals, Instrumental)
|
470 |
* **MODEL** - Model Name (e.g., BS-Roformer-Viperx-1297)
|
471 |
-
|
472 |
Example:
|
473 |
* Usage: NAME_(STEM)_MODEL
|
474 |
* Output File Name: Music_(Vocals)_BS-Roformer-Viperx-1297
|
|
|
4 |
import logging
|
5 |
import gradio as gr
|
6 |
|
7 |
+
from PolUVR.separator import Separator
|
8 |
|
9 |
device = "cuda" if torch.cuda.is_available() else "cpu"
|
10 |
use_autocast = device == "cuda"
|
|
|
18 |
'BS-Roformer-Viperx-1297': 'model_bs_roformer_ep_317_sdr_12.9755.ckpt',
|
19 |
'BS-Roformer-De-Reverb': 'deverb_bs_roformer_8_384dim_10depth.ckpt',
|
20 |
'Mel-Roformer-Viperx-1143': 'model_mel_band_roformer_ep_3005_sdr_11.4360.ckpt',
|
21 |
+
'Mel-Roformer-Vocals-Kim': 'vocals_mel_band_roformer.ckpt',
|
22 |
'Mel-Roformer-Crowd-Aufr33-Viperx': 'mel_band_roformer_crowd_aufr33_viperx_sdr_8.7144.ckpt',
|
23 |
'Mel-Roformer-Karaoke-Aufr33-Viperx': 'mel_band_roformer_karaoke_aufr33_viperx_sdr_10.1956.ckpt',
|
24 |
'Mel-Roformer-Denoise-Aufr33': 'denoise_mel_band_roformer_aufr33_sdr_27.9959.ckpt',
|
25 |
'Mel-Roformer-Denoise-Aufr33-Aggr': 'denoise_mel_band_roformer_aufr33_aggr_sdr_27.9768.ckpt',
|
26 |
'MelBand Roformer Kim | Inst V1 by Unwa': 'melband_roformer_inst_v1.ckpt',
|
27 |
+
'MelBand Roformer Kim | Inst V1 (E) by Unwa': 'melband_roformer_inst_v1e.ckpt',
|
28 |
'MelBand Roformer Kim | Inst V2 by Unwa': 'melband_roformer_inst_v2.ckpt',
|
29 |
'MelBand Roformer Kim | InstVoc Duality V1 by Unwa': 'melband_roformer_instvoc_duality_v1.ckpt',
|
30 |
'MelBand Roformer Kim | InstVoc Duality V2 by Unwa': 'melband_roformer_instvox_duality_v2.ckpt',
|
|
|
126 |
"""Prints information about the audio separation process."""
|
127 |
base_name = os.path.splitext(os.path.basename(input_file))[0]
|
128 |
print("\n")
|
129 |
+
print("🎵 PolUVR 🎵")
|
130 |
print("Input audio:", base_name)
|
131 |
print("Separation Model:", model_name)
|
132 |
print("Audio Separation Process...")
|
|
|
346 |
return gr.update(visible=False)
|
347 |
|
348 |
with gr.Blocks(
|
349 |
+
title="🎵 PolUVR 🎵",
|
350 |
css="footer{display:none !important}",
|
351 |
theme=gr.themes.Default(
|
352 |
spacing_size="sm",
|
353 |
radius_size="lg",
|
354 |
)
|
355 |
) as app:
|
356 |
+
gr.HTML("<h1> 🎵 PolUVR 🎵 </h1>")
|
357 |
|
358 |
with gr.Tab("Roformer"):
|
359 |
with gr.Group():
|
|
|
363 |
roformer_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.")
|
364 |
roformer_override_seg_size = gr.Checkbox(value=False, label="Override segment size", info="Override model default segment size instead of using the model default value.")
|
365 |
roformer_overlap = gr.Slider(minimum=2, maximum=10, step=1, value=8, label="Overlap", info="Amount of overlap between prediction windows. Lower is better but slower.")
|
366 |
+
roformer_pitch_shift = gr.Slider(minimum=-24, maximum=24, step=1, value=0, label="Pitch shift", info="Shift audio pitch by a number of semitones while processing. may improve output for deep/high vocals.")
|
367 |
with gr.Row():
|
368 |
roformer_audio = gr.Audio(label="Input Audio", type="filepath")
|
369 |
with gr.Row():
|
|
|
380 |
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.")
|
381 |
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.")
|
382 |
mdx23c_overlap = gr.Slider(minimum=2, maximum=50, step=1, value=8, label="Overlap", info="Amount of overlap between prediction windows. Higher is better but slower.")
|
383 |
+
mdx23c_pitch_shift = gr.Slider(minimum=-24, maximum=24, step=1, value=0, label="Pitch shift", info="Shift audio pitch by a number of semitones while processing. may improve output for deep/high vocals.")
|
384 |
with gr.Row():
|
385 |
mdx23c_audio = gr.Audio(label="Input Audio", type="filepath")
|
386 |
with gr.Row():
|
|
|
412 |
vr_model = gr.Dropdown(label="Select the Model", choices=VR_ARCH_MODELS)
|
413 |
with gr.Row():
|
414 |
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.")
|
415 |
+
vr_aggression = gr.Slider(minimum=1, maximum=100, step=1, value=5, label="Agression", info="Intensity of primary stem extraction.")
|
416 |
vr_tta = gr.Checkbox(value=False, label="TTA", info="Enable Test-Time-Augmentation; slow but improves quality.")
|
417 |
vr_post_process = gr.Checkbox(value=False, label="Post Process", info="Identify leftover artifacts within vocal output; may improve separation for some songs.")
|
418 |
vr_post_process_threshold = gr.Slider(minimum=0.1, maximum=0.3, step=0.1, value=0.2, label="Post Process Threshold", info="Threshold for post-processing.")
|
|
|
470 |
* **NAME** - Input File Name
|
471 |
* **STEM** - Stem Name (e.g., Vocals, Instrumental)
|
472 |
* **MODEL** - Model Name (e.g., BS-Roformer-Viperx-1297)
|
|
|
473 |
Example:
|
474 |
* Usage: NAME_(STEM)_MODEL
|
475 |
* Output File Name: Music_(Vocals)_BS-Roformer-Viperx-1297
|