From d6228060880caa4e866843207e3c3e100e0ad628 Mon Sep 17 00:00:00 2001 From: lllyasviel Date: Tue, 16 Jan 2024 02:56:02 -0800 Subject: [PATCH] Update sd_models.py --- modules/sd_models.py | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/modules/sd_models.py b/modules/sd_models.py index 91ddd412..9910af3d 100644 --- a/modules/sd_models.py +++ b/modules/sd_models.py @@ -554,6 +554,34 @@ def get_empty_cond(sd_model): return sd_model.cond_stage_model([""]) +def send_model_to_cpu(m): + if m.lowvram: + lowvram.send_everything_to_cpu() + else: + m.to(devices.cpu) + + devices.torch_gc() + + +def model_target_device(m): + if lowvram.is_needed(m): + return devices.cpu + else: + return devices.device + + +def send_model_to_device(m): + lowvram.apply(m) + + if not m.lowvram: + m.to(shared.device) + + +def send_model_to_trash(m): + m.to(device="meta") + devices.torch_gc() + + def load_model(checkpoint_info=None, already_loaded_state_dict=None): from modules import sd_hijack checkpoint_info = checkpoint_info or select_checkpoint()