diff options
author | Muhammad Rizqi Nur <rizqinur2010@gmail.com> | 2022-11-19 08:21:00 +0000 |
---|---|---|
committer | Muhammad Rizqi Nur <rizqinur2010@gmail.com> | 2022-11-19 08:21:00 +0000 |
commit | 45dca0562e0a68d2f92a5b6fe0412dcd8ba0659e (patch) | |
tree | fe4131dd0f3251022c62120a5ef6bf79fa1242a3 /modules/script_loading.py | |
parent | 028b67b6357b5a00ccbd6ea72d2f244a6664162b (diff) | |
parent | d9fd4525a5d684100997130cc4132736bab1e4d9 (diff) | |
download | stable-diffusion-webui-gfx803-45dca0562e0a68d2f92a5b6fe0412dcd8ba0659e.tar.gz stable-diffusion-webui-gfx803-45dca0562e0a68d2f92a5b6fe0412dcd8ba0659e.tar.bz2 stable-diffusion-webui-gfx803-45dca0562e0a68d2f92a5b6fe0412dcd8ba0659e.zip |
Merge branch 'a1111' into vae-fix-none
Diffstat (limited to 'modules/script_loading.py')
-rw-r--r-- | modules/script_loading.py | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/modules/script_loading.py b/modules/script_loading.py new file mode 100644 index 00000000..f93f0951 --- /dev/null +++ b/modules/script_loading.py @@ -0,0 +1,34 @@ +import os
+import sys
+import traceback
+from types import ModuleType
+
+
+def load_module(path):
+ with open(path, "r", encoding="utf8") as file:
+ text = file.read()
+
+ compiled = compile(text, path, 'exec')
+ module = ModuleType(os.path.basename(path))
+ exec(compiled, module.__dict__)
+
+ return module
+
+
+def preload_extensions(extensions_dir, parser):
+ if not os.path.isdir(extensions_dir):
+ return
+
+ for dirname in sorted(os.listdir(extensions_dir)):
+ preload_script = os.path.join(extensions_dir, dirname, "preload.py")
+ if not os.path.isfile(preload_script):
+ continue
+
+ try:
+ module = load_module(preload_script)
+ if hasattr(module, 'preload'):
+ module.preload(parser)
+
+ except Exception:
+ print(f"Error running preload() for {preload_script}", file=sys.stderr)
+ print(traceback.format_exc(), file=sys.stderr)
|