aboutsummaryrefslogtreecommitdiff
path: root/modules/sd_models.py
diff options
context:
space:
mode:
authorwangqiuwen <wangqiuwen@xinyu68.com>2023-10-07 15:36:01 +0800
committerwangqiuwen <wangqiuwen@xinyu68.com>2023-10-07 15:36:01 +0800
commit76010a51ef1f3805a7487723599035bc2356c3fb (patch)
tree38614125823f41d62d8c65515954372afdf44d81 /modules/sd_models.py
parent8e355fbd7552f1a7f5124c4685d6fa36f3d0ede1 (diff)
up
Diffstat (limited to 'modules/sd_models.py')
-rw-r--r--modules/sd_models.py11
1 files changed, 5 insertions, 6 deletions
diff --git a/modules/sd_models.py b/modules/sd_models.py
index eedb38c6..3a060ab6 100644
--- a/modules/sd_models.py
+++ b/modules/sd_models.py
@@ -1,4 +1,5 @@
import collections
+import copy
import os.path
import sys
import gc
@@ -309,8 +310,6 @@ def get_checkpoint_state_dict(checkpoint_info: CheckpointInfo, timer):
if checkpoint_info in checkpoints_loaded:
# use checkpoint cache
print(f"Loading weights [{sd_model_hash}] from cache")
- # move to end as latest
- checkpoints_loaded.move_to_end(checkpoint_info)
return checkpoints_loaded[checkpoint_info]
print(f"Loading weights [{sd_model_hash}] from {checkpoint_info.filename}")
@@ -352,12 +351,12 @@ def load_model_weights(model, checkpoint_info: CheckpointInfo, state_dict, timer
if model.is_sdxl:
sd_models_xl.extend_sdxl(model)
- model.load_state_dict(state_dict, strict=False)
- timer.record("apply weights to model")
-
if shared.opts.sd_checkpoint_cache > 0:
# cache newly loaded model
- checkpoints_loaded[checkpoint_info] = state_dict
+ checkpoints_loaded[checkpoint_info] = copy.deepcopy(state_dict)
+
+ model.load_state_dict(state_dict, strict=False)
+ timer.record("apply weights to model")
del state_dict