|
import os, sys
|
|
import gradio as gr
|
|
import shutil
|
|
|
|
now_dir = os.getcwd()
|
|
sys.path.append(now_dir)
|
|
|
|
from assets.i18n.i18n import I18nAuto
|
|
from core import run_model_blender_script
|
|
|
|
i18n = I18nAuto()
|
|
|
|
|
|
def update_model_fusion(dropbox):
|
|
return dropbox, None
|
|
|
|
|
|
def voice_blender_tab():
|
|
gr.Markdown(i18n("## Voice Blender"))
|
|
gr.Markdown(
|
|
i18n(
|
|
"Select two voice models, set your desired blend percentage, and blend them into an entirely new voice."
|
|
)
|
|
)
|
|
with gr.Column():
|
|
model_fusion_name = gr.Textbox(
|
|
label=i18n("Model Name"),
|
|
info=i18n("Name of the new model."),
|
|
value="",
|
|
max_lines=1,
|
|
interactive=True,
|
|
placeholder=i18n("Enter model name"),
|
|
)
|
|
with gr.Row():
|
|
with gr.Column():
|
|
model_fusion_a_dropbox = gr.File(
|
|
label=i18n("Drag and drop your model here"), type="filepath"
|
|
)
|
|
model_fusion_a = gr.Textbox(
|
|
label=i18n("Path to Model"),
|
|
value="",
|
|
interactive=True,
|
|
placeholder=i18n("Enter path to model"),
|
|
info=i18n("You can also use a custom path."),
|
|
)
|
|
with gr.Column():
|
|
model_fusion_b_dropbox = gr.File(
|
|
label=i18n("Drag and drop your model here"), type="filepath"
|
|
)
|
|
model_fusion_b = gr.Textbox(
|
|
label=i18n("Path to Model"),
|
|
value="",
|
|
interactive=True,
|
|
placeholder=i18n("Enter path to model"),
|
|
info=i18n("You can also use a custom path."),
|
|
)
|
|
alpha_a = gr.Slider(
|
|
minimum=0,
|
|
maximum=1,
|
|
label=i18n("Blend Ratio"),
|
|
value=0.5,
|
|
interactive=True,
|
|
info=i18n(
|
|
"Adjusting the position more towards one side or the other will make the model more similar to the first or second."
|
|
),
|
|
)
|
|
model_fusion_button = gr.Button(i18n("Fusion"), variant="primary")
|
|
with gr.Row():
|
|
model_fusion_output_info = gr.Textbox(
|
|
label=i18n("Output Information"),
|
|
info=i18n("The output information will be displayed here."),
|
|
value="",
|
|
)
|
|
model_fusion_pth_output = gr.File(
|
|
label=i18n("Download Model"), type="filepath", interactive=False
|
|
)
|
|
|
|
model_fusion_button.click(
|
|
fn=run_model_blender_script,
|
|
inputs=[
|
|
model_fusion_name,
|
|
model_fusion_a,
|
|
model_fusion_b,
|
|
alpha_a,
|
|
],
|
|
outputs=[model_fusion_output_info, model_fusion_pth_output],
|
|
)
|
|
|
|
model_fusion_a_dropbox.upload(
|
|
fn=update_model_fusion,
|
|
inputs=model_fusion_a_dropbox,
|
|
outputs=[model_fusion_a, model_fusion_a_dropbox],
|
|
)
|
|
|
|
model_fusion_b_dropbox.upload(
|
|
fn=update_model_fusion,
|
|
inputs=model_fusion_b_dropbox,
|
|
outputs=[model_fusion_b, model_fusion_b_dropbox],
|
|
)
|
|
|