File size: 3,333 Bytes
1e4a2ab
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
import os
import io
import ssl
import sys
import time
import codecs
import logging
import warnings

import gradio as gr

sys.path.append(os.getcwd())
start_time = time.time()

from main.app.tabs.extra.extra import extra_tab
from main.app.tabs.editing.editing import editing_tab
from main.app.tabs.training.training import training_tab
from main.app.tabs.downloads.downloads import download_tab
from main.app.tabs.inference.inference import inference_tab
from main.app.variables import logger, config, translations, theme, font, configs, language, allow_disk

ssl._create_default_https_context = ssl._create_unverified_context

warnings.filterwarnings("ignore")
for l in ["httpx", "gradio", "uvicorn", "httpcore", "urllib3"]:
    logging.getLogger(l).setLevel(logging.ERROR)

with gr.Blocks(title="📱 Vietnamese-RVC GUI BY ANH", theme=theme, css="<style> @import url('{fonts}'); * {{font-family: 'Courgette', cursive !important;}} body, html {{font-family: 'Courgette', cursive !important;}} h1, h2, h3, h4, h5, h6, p, button, input, textarea, label, span, div, select {{font-family: 'Courgette', cursive !important;}} </style>".format(fonts=font or "https://fonts.googleapis.com/css2?family=Courgette&display=swap")) as app:
    gr.HTML("<h1 style='text-align: center;'>🎵VIETNAMESE RVC BY ANH🎵</h1>")
    gr.HTML(f"<h3 style='text-align: center;'>{translations['title']}</h3>")

    with gr.Tabs():      
        inference_tab()
        editing_tab()
        training_tab()
        download_tab()
        extra_tab(app)

    with gr.Row(): 
        gr.Markdown(translations["rick_roll"].format(rickroll=codecs.decode('uggcf://jjj.lbhghor.pbz/jngpu?i=qDj4j9JtKpD', 'rot13')))

    with gr.Row(): 
        gr.Markdown(translations["terms_of_use"])

    with gr.Row():
        gr.Markdown(translations["exemption"])
    
    logger.info(config.device)
    logger.info(translations["start_app"])
    logger.info(translations["set_lang"].format(lang=language))

    port = configs.get("app_port", 7860)
    server_name = configs.get("server_name", "0.0.0.0")
    share = "--share" in sys.argv

    original_stdout = sys.stdout
    sys.stdout = io.StringIO()

    for i in range(configs.get("num_of_restart", 5)):
        try:
            _, _, share_url = app.queue().launch(
                favicon_path=configs["ico_path"], 
                server_name=server_name, 
                server_port=port, 
                show_error=configs.get("app_show_error", False), 
                inbrowser="--open" in sys.argv, 
                share=share, 
                allowed_paths=allow_disk,
                prevent_thread_lock=True,
                quiet=True
            )
            break
        except OSError:
            logger.debug(translations["port"].format(port=port))
            port -= 1
        except Exception as e:
            logger.error(translations["error_occurred"].format(e=e))
            sys.exit(1)
    
    sys.stdout = original_stdout
    logger.info(f"{translations['running_local_url']}: {server_name}:{port}")

    if share: logger.info(f"{translations['running_share_url']}: {share_url}")
    logger.info(f"{translations['gradio_start']}: {(time.time() - start_time):.2f}s")

    while 1:
        time.sleep(5)