HRVC / src /ultimate_rvc /web /tabs /manage_audio.py
SpyC0der77's picture
Upload folder using huggingface_hub
1a942eb verified
"""Module which defines the code for the "Manage audio" tab."""
from collections.abc import Sequence
from functools import partial
import gradio as gr
from ultimate_rvc.core.manage.audio import (
delete_all_audio,
delete_all_intermediate_audio,
delete_all_output_audio,
delete_intermediate_audio,
delete_output_audio,
)
from ultimate_rvc.web.common import (
PROGRESS_BAR,
confirm_box_js,
confirmation_harness,
render_msg,
update_cached_songs,
update_output_audio,
)
def render(
song_dirs: Sequence[gr.Dropdown],
cached_song_1click: gr.Dropdown,
cached_song_multi: gr.Dropdown,
intermediate_audio: gr.Dropdown,
output_audio: gr.Dropdown,
) -> None:
"""
Render "Manage audio" tab.
Parameters
----------
song_dirs : Sequence[gr.Dropdown]
Dropdown components for selecting song directories in the
"Multi-step generation" tab.
cached_song_1click : gr.Dropdown
Dropdown for selecting a cached song in the
"One-click generation" tab
cached_song_multi : gr.Dropdown
Dropdown for selecting a cached song in the
"Multi-step generation" tab
intermediate_audio : gr.Dropdown
Dropdown for selecting intermediate audio files to delete in the
"Delete audio" tab.
output_audio : gr.Dropdown
Dropdown for selecting output audio files to delete in the
"Delete audio" tab.
"""
dummy_checkbox = gr.Checkbox(visible=False)
with gr.Tab("Delete audio"):
with gr.Accordion("Intermediate audio", open=False), gr.Row():
with gr.Column():
intermediate_audio.render()
intermediate_audio_btn = gr.Button(
"Delete selected",
variant="secondary",
)
all_intermediate_audio_btn = gr.Button(
"Delete all",
variant="primary",
)
with gr.Column():
intermediate_audio_msg = gr.Textbox(
label="Output message",
interactive=False,
)
with gr.Accordion("Output audio", open=False), gr.Row():
with gr.Column():
output_audio.render()
output_audio_btn = gr.Button(
"Delete selected",
variant="secondary",
)
all_output_audio_btn = gr.Button(
"Delete all",
variant="primary",
)
with gr.Column():
output_audio_msg = gr.Textbox(
label="Output message",
interactive=False,
)
with gr.Accordion("All audio", open=True), gr.Row(equal_height=True):
all_audio_btn = gr.Button("Delete", variant="primary")
all_audio_msg = gr.Textbox(label="Output message", interactive=False)
intermediate_audio_click = intermediate_audio_btn.click(
partial(
confirmation_harness(delete_intermediate_audio),
progress_bar=PROGRESS_BAR,
),
inputs=[dummy_checkbox, intermediate_audio],
outputs=intermediate_audio_msg,
js=confirm_box_js(
"Are you sure you want to delete the selected song directories?",
),
).success(
partial(
render_msg,
"[-] Successfully deleted the selected song directories!",
),
outputs=intermediate_audio_msg,
show_progress="hidden",
)
all_intermediate_audio_click = all_intermediate_audio_btn.click(
partial(
confirmation_harness(delete_all_intermediate_audio),
progress_bar=PROGRESS_BAR,
),
inputs=dummy_checkbox,
outputs=intermediate_audio_msg,
js=confirm_box_js(
"Are you sure you want to delete all intermediate audio files?",
),
).success(
partial(
render_msg,
"[-] Successfully deleted all intermediate audio files!",
),
outputs=intermediate_audio_msg,
show_progress="hidden",
)
output_audio_click = output_audio_btn.click(
partial(
confirmation_harness(delete_output_audio),
progress_bar=PROGRESS_BAR,
),
inputs=[dummy_checkbox, output_audio],
outputs=output_audio_msg,
js=confirm_box_js(
"Are you sure you want to delete the selected output audio files?",
),
).success(
partial(
render_msg,
"[-] Successfully deleted the selected output audio files!",
),
outputs=output_audio_msg,
show_progress="hidden",
)
all_output_audio_click = all_output_audio_btn.click(
partial(
confirmation_harness(delete_all_output_audio),
progress_bar=PROGRESS_BAR,
),
inputs=dummy_checkbox,
outputs=output_audio_msg,
js=confirm_box_js(
"Are you sure you want to delete all output audio files?",
),
).success(
partial(render_msg, "[-] Successfully deleted all output audio files!"),
outputs=output_audio_msg,
show_progress="hidden",
)
all_audio_click = all_audio_btn.click(
partial(
confirmation_harness(delete_all_audio),
progress_bar=PROGRESS_BAR,
),
inputs=dummy_checkbox,
outputs=all_audio_msg,
js=confirm_box_js("Are you sure you want to delete all audio files?"),
).success(
partial(render_msg, "[-] Successfully deleted all audio files!"),
outputs=all_audio_msg,
show_progress="hidden",
)
_, _, all_audio_update = [
click_event.success(
partial(
update_cached_songs,
3 + len(song_dirs),
[],
[0],
),
outputs=[
intermediate_audio,
cached_song_1click,
cached_song_multi,
*song_dirs,
],
show_progress="hidden",
)
for click_event in [
intermediate_audio_click,
all_intermediate_audio_click,
all_audio_click,
]
]
for click_event in [
output_audio_click,
all_output_audio_click,
all_audio_update,
]:
click_event.success(
partial(update_output_audio, 1, [], [0]),
outputs=[output_audio],
show_progress="hidden",
)