|
|
|
@ -278,6 +278,7 @@ def enable_midas_autodownload():
|
|
|
|
|
|
|
|
|
|
|
|
midas.api.load_model = load_model_wrapper
|
|
|
|
midas.api.load_model = load_model_wrapper
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def load_model(checkpoint_info=None):
|
|
|
|
def load_model(checkpoint_info=None):
|
|
|
|
from modules import lowvram, sd_hijack
|
|
|
|
from modules import lowvram, sd_hijack
|
|
|
|
checkpoint_info = checkpoint_info or select_checkpoint()
|
|
|
|
checkpoint_info = checkpoint_info or select_checkpoint()
|
|
|
|
@ -312,6 +313,7 @@ def load_model(checkpoint_info=None):
|
|
|
|
sd_config.model.params.unet_config.params.use_fp16 = False
|
|
|
|
sd_config.model.params.unet_config.params.use_fp16 = False
|
|
|
|
|
|
|
|
|
|
|
|
sd_model = instantiate_from_config(sd_config.model)
|
|
|
|
sd_model = instantiate_from_config(sd_config.model)
|
|
|
|
|
|
|
|
|
|
|
|
load_model_weights(sd_model, checkpoint_info)
|
|
|
|
load_model_weights(sd_model, checkpoint_info)
|
|
|
|
|
|
|
|
|
|
|
|
if shared.cmd_opts.lowvram or shared.cmd_opts.medvram:
|
|
|
|
if shared.cmd_opts.lowvram or shared.cmd_opts.medvram:
|
|
|
|
@ -336,10 +338,12 @@ def load_model(checkpoint_info=None):
|
|
|
|
def reload_model_weights(sd_model=None, info=None):
|
|
|
|
def reload_model_weights(sd_model=None, info=None):
|
|
|
|
from modules import lowvram, devices, sd_hijack
|
|
|
|
from modules import lowvram, devices, sd_hijack
|
|
|
|
checkpoint_info = info or select_checkpoint()
|
|
|
|
checkpoint_info = info or select_checkpoint()
|
|
|
|
|
|
|
|
|
|
|
|
if not sd_model:
|
|
|
|
if not sd_model:
|
|
|
|
sd_model = shared.sd_model
|
|
|
|
sd_model = shared.sd_model
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
current_checkpoint_info = sd_model.sd_checkpoint_info
|
|
|
|
|
|
|
|
|
|
|
|
if sd_model.sd_model_checkpoint == checkpoint_info.filename:
|
|
|
|
if sd_model.sd_model_checkpoint == checkpoint_info.filename:
|
|
|
|
return
|
|
|
|
return
|
|
|
|
|
|
|
|
|
|
|
|
@ -356,13 +360,19 @@ def reload_model_weights(sd_model=None, info=None):
|
|
|
|
|
|
|
|
|
|
|
|
sd_hijack.model_hijack.undo_hijack(sd_model)
|
|
|
|
sd_hijack.model_hijack.undo_hijack(sd_model)
|
|
|
|
|
|
|
|
|
|
|
|
load_model_weights(sd_model, checkpoint_info)
|
|
|
|
try:
|
|
|
|
|
|
|
|
load_model_weights(sd_model, checkpoint_info)
|
|
|
|
sd_hijack.model_hijack.hijack(sd_model)
|
|
|
|
except Exception as e:
|
|
|
|
script_callbacks.model_loaded_callback(sd_model)
|
|
|
|
print("Failed to load checkpoint, restoring previous")
|
|
|
|
|
|
|
|
load_model_weights(sd_model, current_checkpoint_info)
|
|
|
|
if not shared.cmd_opts.lowvram and not shared.cmd_opts.medvram:
|
|
|
|
raise
|
|
|
|
sd_model.to(devices.device)
|
|
|
|
finally:
|
|
|
|
|
|
|
|
sd_hijack.model_hijack.hijack(sd_model)
|
|
|
|
|
|
|
|
script_callbacks.model_loaded_callback(sd_model)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if not shared.cmd_opts.lowvram and not shared.cmd_opts.medvram:
|
|
|
|
|
|
|
|
sd_model.to(devices.device)
|
|
|
|
|
|
|
|
|
|
|
|
print("Weights loaded.")
|
|
|
|
print("Weights loaded.")
|
|
|
|
|
|
|
|
|
|
|
|
return sd_model
|
|
|
|
return sd_model
|
|
|
|
|