aboutsummaryrefslogtreecommitdiff
path: root/modules
diff options
context:
space:
mode:
authorsumof2primes <sumof2primes@gmail.com>2023-03-22 18:24:11 +0900
committersumof2primes <sumof2primes@gmail.com>2023-03-22 18:24:11 +0900
commit64b7e8382377bb578d9740c061979776b214cfd9 (patch)
tree4dcb35a887594459286264a3f73b54859807a3b6 /modules
parenta9fed7c364061ae6efb37f797b6b522cb3cf7aa2 (diff)
Fix scripts load order
- 1st webui, 2nd extensions-builtin, 3rd extensions - to load scripts independent of --data-dir - change load order key [x.basedir, x.filename, x.path] to [orderby(x.basedir), x.filename, x.path] e.g., scripts/xyz_grid.py dependent extentions should loaded later extensions\sd-webui-controlnet\scripts\xyz_grid_support.py extensions\sd-webui-additional-networks\scripts\xyz_grid_support.py
Diffstat (limited to 'modules')
-rw-r--r--modules/scripts.py10
1 files changed, 9 insertions, 1 deletions
diff --git a/modules/scripts.py b/modules/scripts.py
index 8de19884..935c693c 100644
--- a/modules/scripts.py
+++ b/modules/scripts.py
@@ -239,7 +239,15 @@ def load_scripts():
elif issubclass(script_class, scripts_postprocessing.ScriptPostprocessing):
postprocessing_scripts_data.append(ScriptClassData(script_class, scriptfile.path, scriptfile.basedir, module))
- for scriptfile in sorted(scripts_list):
+ def orderby(basedir):
+ # 1st webui, 2nd extensions-builtin, 3rd extensions
+ priority = {os.path.join(paths.script_path, "extensions-builtin"):1, paths.script_path:0}
+ for key in priority:
+ if basedir.startswith(key):
+ return priority[key]
+ return 9999
+
+ for scriptfile in sorted(scripts_list, key=lambda x: [orderby(x.basedir), x.filename, x.path]):
try:
if scriptfile.basedir != paths.script_path:
sys.path = [scriptfile.basedir] + sys.path