clipvision, ipadapter, and misc

backend is 75% finished
This commit is contained in:
layerdiffusion
2024-08-03 13:37:22 -07:00
parent bb5083f3c2
commit 07b2d2ccac
9 changed files with 474 additions and 320 deletions
+25
View File
@@ -1,4 +1,29 @@
import torch
import safetensors.torch
import backend.misc.checkpoint_pickle
def load_torch_file(ckpt, safe_load=False, device=None):
if device is None:
device = torch.device("cpu")
if ckpt.lower().endswith(".safetensors"):
sd = safetensors.torch.load_file(ckpt, device=device.type)
else:
if safe_load:
if not 'weights_only' in torch.load.__code__.co_varnames:
print("Warning torch.load doesn't support weights_only on this pytorch version, loading unsafely.")
safe_load = False
if safe_load:
pl_sd = torch.load(ckpt, map_location=device, weights_only=True)
else:
pl_sd = torch.load(ckpt, map_location=device, pickle_module=backend.misc.checkpoint_pickle)
if "global_step" in pl_sd:
print(f"Global Step: {pl_sd['global_step']}")
if "state_dict" in pl_sd:
sd = pl_sd["state_dict"]
else:
sd = pl_sd
return sd
def set_attr(obj, attr, value):