|
5 | 5 | import importlib.util
|
6 | 6 | import shlex
|
7 | 7 | import platform
|
| 8 | +import argparse |
| 9 | +import json |
8 | 10 |
|
9 | 11 | dir_repos = "repositories"
|
10 | 12 | dir_extensions = "extensions"
|
@@ -132,11 +134,26 @@ def run_extension_installer(extension_dir):
|
132 | 134 | print(e, file=sys.stderr)
|
133 | 135 |
|
134 | 136 |
|
135 |
| -def run_extensions_installers(): |
| 137 | +def list_extensions(settings_file): |
| 138 | + settings = {} |
| 139 | + |
| 140 | + try: |
| 141 | + if os.path.isfile(settings_file): |
| 142 | + with open(settings_file, "r", encoding="utf8") as file: |
| 143 | + settings = json.load(file) |
| 144 | + except Exception as e: |
| 145 | + print(e, file=sys.stderr) |
| 146 | + |
| 147 | + disabled_extensions = set(settings.get('disabled_extensions', [])) |
| 148 | + |
| 149 | + return [x for x in os.listdir(dir_extensions) if x not in disabled_extensions] |
| 150 | + |
| 151 | + |
| 152 | +def run_extensions_installers(settings_file): |
136 | 153 | if not os.path.isdir(dir_extensions):
|
137 | 154 | return
|
138 | 155 |
|
139 |
| - for dirname_extension in os.listdir(dir_extensions): |
| 156 | + for dirname_extension in list_extensions(settings_file): |
140 | 157 | run_extension_installer(os.path.join(dir_extensions, dirname_extension))
|
141 | 158 |
|
142 | 159 |
|
@@ -165,6 +182,10 @@ def prepare_enviroment():
|
165 | 182 |
|
166 | 183 | sys.argv += shlex.split(commandline_args)
|
167 | 184 |
|
| 185 | + parser = argparse.ArgumentParser() |
| 186 | + parser.add_argument("--ui-settings-file", type=str, help="filename to use for ui settings", default='config.json') |
| 187 | + args, _ = parser.parse_known_args(sys.argv) |
| 188 | + |
168 | 189 | sys.argv, skip_torch_cuda_test = extract_arg(sys.argv, '--skip-torch-cuda-test')
|
169 | 190 | sys.argv, reinstall_xformers = extract_arg(sys.argv, '--reinstall-xformers')
|
170 | 191 | sys.argv, update_check = extract_arg(sys.argv, '--update-check')
|
@@ -223,7 +244,7 @@ def prepare_enviroment():
|
223 | 244 |
|
224 | 245 | run_pip(f"install -r {requirements_file}", "requirements for Web UI")
|
225 | 246 |
|
226 |
| - run_extensions_installers() |
| 247 | + run_extensions_installers(settings_file=args.ui_settings_file) |
227 | 248 |
|
228 | 249 | if update_check:
|
229 | 250 | version_check(commit)
|
|
0 commit comments