浏览代码

add backwards compatibility --lyco-dir-backcompat option, use that for LyCORIS directory instead of hardcoded value
prevent running preload.py for disabled extensions

AUTOMATIC1111 2 年之前
父节点
当前提交
136c8859a4

+ 1 - 3
CHANGELOG.md

@@ -58,9 +58,7 @@
  * fix: check fill size none zero when resize  (fixes #11425)
  * fix: check fill size none zero when resize  (fixes #11425)
  * use submit and blur for quick settings textbox
  * use submit and blur for quick settings textbox
  * save img2img batch with images.save_image()
  * save img2img batch with images.save_image()
- * 
-
-
+ * prevent running preload.py for disabled extensions
 
 
 
 
 ## 1.4.1
 ## 1.4.1

+ 2 - 2
extensions-builtin/Lora/networks.py

@@ -11,7 +11,7 @@ import network_full
 import torch
 import torch
 from typing import Union
 from typing import Union
 
 
-from modules import shared, devices, sd_models, errors, scripts, sd_hijack, paths
+from modules import shared, devices, sd_models, errors, scripts, sd_hijack
 
 
 module_types = [
 module_types = [
     network_lora.ModuleTypeLora(),
     network_lora.ModuleTypeLora(),
@@ -399,7 +399,7 @@ def list_available_networks():
     os.makedirs(shared.cmd_opts.lora_dir, exist_ok=True)
     os.makedirs(shared.cmd_opts.lora_dir, exist_ok=True)
 
 
     candidates = list(shared.walk_files(shared.cmd_opts.lora_dir, allowed_extensions=[".pt", ".ckpt", ".safetensors"]))
     candidates = list(shared.walk_files(shared.cmd_opts.lora_dir, allowed_extensions=[".pt", ".ckpt", ".safetensors"]))
-    candidates += list(shared.walk_files(os.path.join(paths.models_path, "LyCORIS"), allowed_extensions=[".pt", ".ckpt", ".safetensors"]))
+    candidates += list(shared.walk_files(shared.cmd_opts.lyco_dir_backcompat, allowed_extensions=[".pt", ".ckpt", ".safetensors"]))
     for filename in candidates:
     for filename in candidates:
         if os.path.isdir(filename):
         if os.path.isdir(filename):
             continue
             continue

+ 1 - 0
extensions-builtin/Lora/preload.py

@@ -4,3 +4,4 @@ from modules import paths
 
 
 def preload(parser):
 def preload(parser):
     parser.add_argument("--lora-dir", type=str, help="Path to directory with Lora networks.", default=os.path.join(paths.models_path, 'Lora'))
     parser.add_argument("--lora-dir", type=str, help="Path to directory with Lora networks.", default=os.path.join(paths.models_path, 'Lora'))
+    parser.add_argument("--lyco-dir-backcompat", type=str, help="Path to directory with LyCORIS networks (for backawards compatibility; can also use --lyco-dir).", default=os.path.join(paths.models_path, 'LyCORIS'))

+ 2 - 2
extensions-builtin/Lora/ui_extra_networks_lora.py

@@ -3,7 +3,7 @@ import os
 import network
 import network
 import networks
 import networks
 
 
-from modules import shared, ui_extra_networks, paths
+from modules import shared, ui_extra_networks
 from modules.ui_extra_networks import quote_js
 from modules.ui_extra_networks import quote_js
 from ui_edit_user_metadata import LoraUserMetadataEditor
 from ui_edit_user_metadata import LoraUserMetadataEditor
 
 
@@ -72,7 +72,7 @@ class ExtraNetworksPageLora(ui_extra_networks.ExtraNetworksPage):
                 yield item
                 yield item
 
 
     def allowed_directories_for_previews(self):
     def allowed_directories_for_previews(self):
-        return [shared.cmd_opts.lora_dir, os.path.join(paths.models_path, "LyCORIS")]
+        return [shared.cmd_opts.lora_dir, shared.cmd_opts.lyco_dir_backcompat]
 
 
     def create_user_metadata_editor(self, ui, tabname):
     def create_user_metadata_editor(self, ui, tabname):
         return LoraUserMetadataEditor(ui, tabname, self)
         return LoraUserMetadataEditor(ui, tabname, self)

+ 1 - 0
launch.py

@@ -18,6 +18,7 @@ run_pip = launch_utils.run_pip
 check_run_python = launch_utils.check_run_python
 check_run_python = launch_utils.check_run_python
 git_clone = launch_utils.git_clone
 git_clone = launch_utils.git_clone
 git_pull_recursive = launch_utils.git_pull_recursive
 git_pull_recursive = launch_utils.git_pull_recursive
+list_extensions = launch_utils.list_extensions
 run_extension_installer = launch_utils.run_extension_installer
 run_extension_installer = launch_utils.run_extension_installer
 prepare_environment = launch_utils.prepare_environment
 prepare_environment = launch_utils.prepare_environment
 configure_for_tests = launch_utils.configure_for_tests
 configure_for_tests = launch_utils.configure_for_tests

+ 3 - 2
modules/script_loading.py

@@ -12,11 +12,12 @@ def load_module(path):
     return module
     return module
 
 
 
 
-def preload_extensions(extensions_dir, parser):
+def preload_extensions(extensions_dir, parser, extension_list=None):
     if not os.path.isdir(extensions_dir):
     if not os.path.isdir(extensions_dir):
         return
         return
 
 
-    for dirname in sorted(os.listdir(extensions_dir)):
+    extensions = extension_list if extension_list is not None else os.listdir(extensions_dir)
+    for dirname in sorted(extensions):
         preload_script = os.path.join(extensions_dir, dirname, "preload.py")
         preload_script = os.path.join(extensions_dir, dirname, "preload.py")
         if not os.path.isfile(preload_script):
         if not os.path.isfile(preload_script):
             continue
             continue

+ 2 - 1
modules/shared.py

@@ -11,6 +11,7 @@ import gradio as gr
 import torch
 import torch
 import tqdm
 import tqdm
 
 
+import launch
 import modules.interrogate
 import modules.interrogate
 import modules.memmon
 import modules.memmon
 import modules.styles
 import modules.styles
@@ -26,7 +27,7 @@ demo = None
 
 
 parser = cmd_args.parser
 parser = cmd_args.parser
 
 
-script_loading.preload_extensions(extensions_dir, parser)
+script_loading.preload_extensions(extensions_dir, parser, extension_list=launch.list_extensions(launch.args.ui_settings_file))
 script_loading.preload_extensions(extensions_builtin_dir, parser)
 script_loading.preload_extensions(extensions_builtin_dir, parser)
 
 
 if os.environ.get('IGNORE_CMD_ARGS_ERRORS', None) is None:
 if os.environ.get('IGNORE_CMD_ARGS_ERRORS', None) is None: