| 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], | |
| ) | |