aboutsummaryrefslogtreecommitdiff
path: root/webui.py
diff options
context:
space:
mode:
authorAUTOMATIC <16777216c@gmail.com>2023-05-23 18:02:09 +0300
committerAUTOMATIC <16777216c@gmail.com>2023-05-23 18:49:15 +0300
commita6e653be26cc05f4438145fa0082816e9fbbf5fc (patch)
treed8270d472d887a79e1b9963c9f33c879fc67b48b /webui.py
parent0e1c41998af53250a1c8ddc59225b50cbe18e770 (diff)
possible fix for empty list of optimizations #10605
Diffstat (limited to 'webui.py')
-rw-r--r--webui.py17
1 files changed, 14 insertions, 3 deletions
diff --git a/webui.py b/webui.py
index 6933473d..f9210f41 100644
--- a/webui.py
+++ b/webui.py
@@ -291,9 +291,20 @@ def initialize_rest(*, reload_script_modules=False):
modules.sd_hijack.list_optimizers()
startup_timer.record("scripts list_optimizers")
- # load model in parallel to other startup stuff
- # (when reloading, this does nothing)
- Thread(target=lambda: shared.sd_model).start()
+ def load_model():
+ """
+ Accesses shared.sd_model property to load model.
+ After it's available, if it has been loaded before this access by some extension,
+ its optimization may be None because the list of optimizaers has neet been filled
+ by that time, so we apply optimization again.
+ """
+
+ shared.sd_model # noqa: B018
+
+ if modules.sd_hijack.current_optimizer is None:
+ modules.sd_hijack.apply_optimizations()
+
+ Thread(target=load_model).start()
Thread(target=devices.first_time_calculation).start()