Attempting to solve slow loads for safetensors.

Fixes #5893
This commit is contained in:
Nicolas Patry 2022-12-21 13:45:58 +01:00
parent 4af3ca5393
commit 5ba04f9ec0
No known key found for this signature in database
GPG Key ID: 6AE76ACC68FFBAF9

View File

@ -168,7 +168,10 @@ def get_state_dict_from_checkpoint(pl_sd):
def read_state_dict(checkpoint_file, print_global_state=False, map_location=None):
_, extension = os.path.splitext(checkpoint_file)
if extension.lower() == ".safetensors":
pl_sd = safetensors.torch.load_file(checkpoint_file, device=map_location or shared.weight_load_location)
device = map_location or shared.weight_load_location
if device is None:
device = "cuda:0" if torch.cuda.is_available() else "cpu"
pl_sd = safetensors.torch.load_file(checkpoint_file, device=device)
else:
pl_sd = torch.load(checkpoint_file, map_location=map_location or shared.weight_load_location)