neorvc / tabs /models /model.py
NeoPy's picture
Upload folder using huggingface_hub
1c7d911 verified
import gradio as gr
from tabs.typing_extra import download_online_model, RVC_MODELS_DIR, get_current_models, update_models_list, delete_model
def download_tab(status_message, rvc_model):
"""Define the Download Models tab UI."""
with gr.TabItem("Download Models"):
with gr.Row():
model_zip_link = gr.Textbox(
label="Model Download Link",
placeholder="Enter URL to a .zip file containing the model",
lines=1
)
model_name = gr.Textbox(
label="Model Name",
placeholder="Enter a unique name for the model",
lines=1
)
with gr.Row(equal_height=True):
download_btn = gr.Button("Download Model", variant="primary", size="lg")
dl_output_message = gr.Textbox(label="Status", lines=2, interactive=False)
download_btn.click(
fn=download_online_model,
inputs=[model_zip_link, model_name],
outputs=[dl_output_message, status_message]
).then(
fn=update_models_list,
outputs=[rvc_model, status_message]
)
gr.Markdown("### Example Models")
gr.Examples(
examples=[
["https://huggingface.co/megaaziib/my-rvc-models-collection/resolve/main/kobo.zip", "Kobo"],
["https://pixeldrain.com/u/3tJmABXA", "Gura"],
["https://huggingface.co/brookieisthatyou/MY-RVC-V2-MODELS/resolve/main/UziDoorman.zip", "Uzi"]
],
inputs=[model_zip_link, model_name],
label="Try these sample models"
)
def model_manage_tab(status_message, rvc_model):
"""Define the Manage Models tab UI."""
with gr.TabItem("Manage Models"):
model_to_delete = gr.Dropdown(
label="Select Model to Delete",
choices=get_current_models(RVC_MODELS_DIR),
allow_custom_value=False
)
with gr.Row(equal_height=True):
delete_btn = gr.Button("Delete Model", size="lg")
delete_output = gr.Textbox(label="Status", lines=2, interactive=False)
delete_btn.click(
fn=delete_model,
inputs=model_to_delete,
outputs=[delete_output, status_message]
).then(
fn=update_models_list,
outputs=[rvc_model, model_to_delete, status_message]
)