Jesus Lopez
feat: applio
a8c39f5
raw
history blame
3.7 kB
import gradio as gr
import sys
import os
import logging
# Constants
DEFAULT_PORT = 6969
MAX_PORT_ATTEMPTS = 10
# Set up logging
logging.getLogger("uvicorn").setLevel(logging.WARNING)
logging.getLogger("httpx").setLevel(logging.WARNING)
# Add current directory to sys.path
now_dir = os.getcwd()
sys.path.append(now_dir)
# Zluda hijack
import rvc.lib.zluda
# Import Tabs
from tabs.inference.inference import inference_tab
from tabs.train.train import train_tab
from tabs.extra.extra import extra_tab
from tabs.report.report import report_tab
from tabs.download.download import download_tab
from tabs.tts.tts import tts_tab
from tabs.voice_blender.voice_blender import voice_blender_tab
from tabs.plugins.plugins import plugins_tab
from tabs.settings.settings import settings_tab
# Run prerequisites
from core import run_prerequisites_script
run_prerequisites_script(
pretraineds_v1_f0=False,
pretraineds_v1_nof0=False,
pretraineds_v2_f0=True,
pretraineds_v2_nof0=False,
models=True,
exe=True,
)
# Initialize i18n
from assets.i18n.i18n import I18nAuto
i18n = I18nAuto()
# Start Discord presence if enabled
from tabs.settings.sections.presence import load_config_presence
if load_config_presence():
from assets.discord_presence import RPCManager
RPCManager.start_presence()
# Check installation
import assets.installation_checker as installation_checker
installation_checker.check_installation()
# Start Flask server if enabled
from assets.flask.server import start_flask, load_config_flask
if load_config_flask():
print("Starting Flask server")
start_flask()
# Load theme
import assets.themes.loadThemes as loadThemes
my_applio = loadThemes.load_theme() or "ParityError/Interstellar"
# Define Gradio interface
with gr.Blocks(theme=my_applio, title="Applio", css="footer{display:none !important}") as Applio:
gr.Markdown("# Applio")
gr.Markdown(i18n("A simple, high-quality voice conversion tool focused on ease of use and performance."))
gr.Markdown(
i18n(
"[Support](https://discord.gg/urxFjYmYYh) β€” [Discord Bot](https://discord.com/oauth2/authorize?client_id=1144714449563955302&permissions=1376674695271&scope=bot%20applications.commands) β€” [Find Voices](https://applio.org/models) β€” [GitHub](https://github.com/IAHispano/Applio)"
)
)
with gr.Tab(i18n("Inference")):
inference_tab()
with gr.Tab(i18n("Training")):
train_tab()
with gr.Tab(i18n("TTS")):
tts_tab()
with gr.Tab(i18n("Voice Blender")):
voice_blender_tab()
with gr.Tab(i18n("Plugins")):
plugins_tab()
with gr.Tab(i18n("Download")):
download_tab()
with gr.Tab(i18n("Report a Bug")):
report_tab()
with gr.Tab(i18n("Extra")):
extra_tab()
with gr.Tab(i18n("Settings")):
settings_tab()
def launch_gradio(port):
Applio.launch(
favicon_path="assets/ICON.ico",
share="--share" in sys.argv,
inbrowser="--open" in sys.argv,
server_port=port,
)
def get_port_from_args():
if "--port" in sys.argv:
port_index = sys.argv.index("--port") + 1
if port_index < len(sys.argv):
return int(sys.argv[port_index])
return DEFAULT_PORT
if __name__ == "__main__":
port = get_port_from_args()
for _ in range(MAX_PORT_ATTEMPTS):
try:
launch_gradio(port)
break
except OSError:
print(f"Failed to launch on port {port}, trying again on port {port - 1}...")
port -= 1
except Exception as error:
print(f"An error occurred launching Gradio: {error}")
break