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
|