From 2a4d3d21242dcc8b2b9cef85aa8f4227e855dc96 Mon Sep 17 00:00:00 2001
From: space-nuko <24979496+space-nuko@users.noreply.github.com>
Date: Mon, 27 Mar 2023 12:04:45 -0400
Subject: [PATCH] Add temporary "disable all extensions" option for debugging
 use

---
 launch.py             | 4 ++++
 modules/extensions.py | 4 ++++
 modules/shared.py     | 3 ++-
 3 files changed, 10 insertions(+), 1 deletion(-)

diff --git a/launch.py b/launch.py
index c41ae82d..1321b77a 100644
--- a/launch.py
+++ b/launch.py
@@ -206,6 +206,10 @@ def list_extensions(settings_file):
         print(e, file=sys.stderr)
 
     disabled_extensions = set(settings.get('disabled_extensions', []))
+    disable_all_extensions = settings.get('disable_all_extensions', False)
+
+    if disable_all_extensions:
+        return []
 
     return [x for x in os.listdir(extensions_dir) if x not in disabled_extensions]
 
diff --git a/modules/extensions.py b/modules/extensions.py
index 0d34b89a..1493e8c8 100644
--- a/modules/extensions.py
+++ b/modules/extensions.py
@@ -97,6 +97,10 @@ def list_extensions():
     if not os.path.isdir(extensions_dir):
         return
 
+    if shared.opts.disable_all_extensions:
+        print("*** \"Disable all extensions\" option was set, will not load any extensions ***")
+        return
+
     extension_paths = []
     for dirname in [extensions_dir, extensions_builtin_dir]:
         if not os.path.isdir(dirname):
diff --git a/modules/shared.py b/modules/shared.py
index 3ad0862b..c79ec67b 100644
--- a/modules/shared.py
+++ b/modules/shared.py
@@ -422,7 +422,8 @@ options_templates.update(options_section(('postprocessing', "Postprocessing"), {
 }))
 
 options_templates.update(options_section((None, "Hidden options"), {
-    "disabled_extensions": OptionInfo([], "Disable those extensions"),
+    "disabled_extensions": OptionInfo([], "Disable these extensions"),
+    "disable_all_extensions": OptionInfo(False, "Disable all extensions (preserves the list of disabled extensions)"),
     "sd_checkpoint_hash": OptionInfo("", "SHA256 hash of the current checkpoint"),
 }))
 
-- 
GitLab