diff --git a/modules/api/endpoints.py b/modules/api/endpoints.py index b6f6c7eeb..44120e7b5 100644 --- a/modules/api/endpoints.py +++ b/modules/api/endpoints.py @@ -140,10 +140,13 @@ def get_checkpoint(): checkpoint['hash'] = shared.sd_model.sd_checkpoint_info.shorthash return checkpoint -def set_checkpoint(sd_model_checkpoint: str, force:bool=False): - from modules import sd_models +def set_checkpoint(sd_model_checkpoint: str, dtype:str=None, force:bool=False): + from modules import sd_models, devices if force: sd_models.unload_model_weights(op='model') + if dtype is not None: + shared.opts.cuda_dtype = dtype + devices.set_dtype() shared.opts.sd_model_checkpoint = sd_model_checkpoint model = sd_models.reload_model_weights() return { 'ok': model is not None }