diff options
-rw-r--r-- | modules/processing.py | 7 | ||||
-rw-r--r-- | scripts/xyz_grid.py | 2 |
2 files changed, 6 insertions, 3 deletions
diff --git a/modules/processing.py b/modules/processing.py index a48fff99..e8808beb 100644 --- a/modules/processing.py +++ b/modules/processing.py @@ -498,6 +498,11 @@ def process_images(p: StableDiffusionProcessing) -> Processed: stored_opts = {k: opts.data[k] for k in p.override_settings.keys()}
try:
+ # if no checkpoint override or the override checkpoint can't be found, remove override entry and load opts checkpoint
+ if sd_models.checkpoint_alisases.get(p.override_settings.get('sd_model_checkpoint')) is None:
+ p.override_settings.pop('sd_model_checkpoint', None)
+ sd_models.reload_model_weights()
+
for k, v in p.override_settings.items():
setattr(opts, k, v)
@@ -514,8 +519,6 @@ def process_images(p: StableDiffusionProcessing) -> Processed: if p.override_settings_restore_afterwards:
for k, v in stored_opts.items():
setattr(opts, k, v)
- if k == 'sd_model_checkpoint':
- sd_models.reload_model_weights()
if k == 'sd_vae':
sd_vae.reload_vae_weights()
diff --git a/scripts/xyz_grid.py b/scripts/xyz_grid.py index 398065d9..cfc7737b 100644 --- a/scripts/xyz_grid.py +++ b/scripts/xyz_grid.py @@ -86,7 +86,7 @@ def apply_checkpoint(p, x, xs): info = modules.sd_models.get_closet_checkpoint_match(x)
if info is None:
raise RuntimeError(f"Unknown checkpoint: {x}")
- modules.sd_models.reload_model_weights(shared.sd_model, info)
+ p.override_settings['sd_model_checkpoint'] = info.hash
def confirm_checkpoints(p, xs):
|