| import gradio as gr | |
| import sys, os | |
| from tabs.full_inference import full_inference_tab | |
| from tabs.download_model import download_model_tab | |
| now_dir = os.getcwd() | |
| sys.path.append(now_dir) | |
| DEFAULT_PORT = 7755 | |
| MAX_PORT_ATTEMPTS = 10 | |
| from assets.i18n.i18n import I18nAuto | |
| i18n = I18nAuto() | |
| with gr.Blocks(title="hexGen-RVC", css="footer{display:none !important}") as app: | |
| gr.Markdown("# hexGen RVC") | |
| with gr.Tab(i18n("Full Inference")): | |
| full_inference_tab() | |
| with gr.Tab(i18n("Download Model")): | |
| download_model_tab() | |
| def launch(port): | |
| app.launch( | |
| 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(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 | |