diff options
author | Muhammad Rizqi Nur <rizqinur2010@gmail.com> | 2022-11-02 13:53:41 +0000 |
---|---|---|
committer | Muhammad Rizqi Nur <rizqinur2010@gmail.com> | 2022-11-02 13:53:41 +0000 |
commit | fb3b564801b6c01c220014c9b3bdebdee2b57215 (patch) | |
tree | 00d73653e65552691bde9ca5e474d59285e95c39 /launch.py | |
parent | bf7a699845675eefdabb9cfa40c55398976274ae (diff) | |
parent | 172c4bc09f0866e7dd114068ebe0f9abfe79ef33 (diff) | |
download | stable-diffusion-webui-gfx803-fb3b564801b6c01c220014c9b3bdebdee2b57215.tar.gz stable-diffusion-webui-gfx803-fb3b564801b6c01c220014c9b3bdebdee2b57215.tar.bz2 stable-diffusion-webui-gfx803-fb3b564801b6c01c220014c9b3bdebdee2b57215.zip |
Merge branch 'master' into fix-ckpt-cache
Diffstat (limited to 'launch.py')
-rw-r--r-- | launch.py | 29 |
1 files changed, 25 insertions, 4 deletions
@@ -7,6 +7,7 @@ import shlex import platform
dir_repos = "repositories"
+dir_extensions = "extensions"
python = sys.executable
git = os.environ.get('GIT', "git")
index_url = os.environ.get('INDEX_URL', "")
@@ -16,11 +17,11 @@ def extract_arg(args, name): return [x for x in args if x != name], name in args
-def run(command, desc=None, errdesc=None):
+def run(command, desc=None, errdesc=None, custom_env=None):
if desc is not None:
print(desc)
- result = subprocess.run(command, stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=True)
+ result = subprocess.run(command, stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=True, env=os.environ if custom_env is None else custom_env)
if result.returncode != 0:
@@ -101,9 +102,27 @@ def version_check(commit): else:
print("Not a git clone, can't perform version check.")
except Exception as e:
- print("versipm check failed",e)
+ print("version check failed", e)
+
+
+def run_extensions_installers():
+ if not os.path.isdir(dir_extensions):
+ return
+
+ for dirname_extension in os.listdir(dir_extensions):
+ path_installer = os.path.join(dir_extensions, dirname_extension, "install.py")
+ if not os.path.isfile(path_installer):
+ continue
+
+ try:
+ env = os.environ.copy()
+ env['PYTHONPATH'] = os.path.abspath(".")
+
+ print(run(f'"{python}" "{path_installer}"', errdesc=f"Error running install.py for extension {dirname_extension}", custom_env=env))
+ except Exception as e:
+ print(e, file=sys.stderr)
+
-
def prepare_enviroment():
torch_command = os.environ.get('TORCH_COMMAND', "pip install torch==1.12.1+cu113 torchvision==0.13.1+cu113 --extra-index-url https://download.pytorch.org/whl/cu113")
requirements_file = os.environ.get('REQS_FILE', "requirements_versions.txt")
@@ -189,6 +208,8 @@ def prepare_enviroment(): run_pip(f"install -r {requirements_file}", "requirements for Web UI")
+ run_extensions_installers()
+
if update_check:
version_check(commit)
|