From dfa552585e967c452afee19704f8ad0dfd65ed65 Mon Sep 17 00:00:00 2001 From: cmdr2 Date: Fri, 11 Oct 2024 12:28:20 +0530 Subject: [PATCH] Don't open the browser while webui is still installing. wait until the webui actually starts up. --- ui/easydiffusion/app.py | 18 +++++++++--------- ui/easydiffusion/backends/webui/__init__.py | 14 ++++++++++++++ 2 files changed, 23 insertions(+), 9 deletions(-) diff --git a/ui/easydiffusion/app.py b/ui/easydiffusion/app.py index 6b1d2a09..d9d5bc60 100644 --- a/ui/easydiffusion/app.py +++ b/ui/easydiffusion/app.py @@ -319,21 +319,21 @@ def getIPConfig(): def open_browser(): + from easydiffusion.backend_manager import backend + config = getConfig() ui = config.get("ui", {}) net = config.get("net", {}) port = net.get("listen_port", 9000) - if ui.get("open_browser_on_start", True): - import webbrowser - - log.info("Opening browser..") - - webbrowser.open(f"http://localhost:{port}") - - from easydiffusion.backend_manager import backend - if backend.is_installed(): + if ui.get("open_browser_on_start", True): + import webbrowser + + log.info("Opening browser..") + + webbrowser.open(f"http://localhost:{port}") + Console().print( Panel( "\n" diff --git a/ui/easydiffusion/backends/webui/__init__.py b/ui/easydiffusion/backends/webui/__init__.py index 0c7aa9e9..a1425c1c 100644 --- a/ui/easydiffusion/backends/webui/__init__.py +++ b/ui/easydiffusion/backends/webui/__init__.py @@ -9,6 +9,7 @@ import shutil from easydiffusion.app import ROOT_DIR, getConfig from easydiffusion.model_manager import get_model_dirs +from easydiffusion.utils import log from . import impl from .impl import ( @@ -100,6 +101,8 @@ def start_backend(): if not os.path.exists(BACKEND_DIR): install_backend() + was_still_installing = not is_installed() + if backend_config.get("auto_update", True): run_in_conda(["git", "add", "-A", "."], cwd=WEBUI_DIR) run_in_conda(["git", "stash"], cwd=WEBUI_DIR) @@ -124,6 +127,17 @@ def start_backend(): while True: try: impl.ping(timeout=1) + + if was_still_installing and not has_started: # first start + ui = config.get("ui", {}) + + if ui.get("open_browser_on_start", True): + import webbrowser + + log.info("Opening browser..") + + webbrowser.open(f"http://localhost:{port}") + has_started = True except (TimeoutError, ConnectionError): if has_started: # process probably died