load diffusion model from state dict with assign

This commit is contained in:
strint 2025-12-12 17:06:06 +08:00
parent 5495589db3
commit afe05d68ee

View File

@ -305,7 +305,9 @@ class BaseModel(torch.nn.Module):
to_load[k[len(unet_prefix):]] = sd.pop(k)
to_load = self.model_config.process_unet_state_dict(to_load)
m, u = self.diffusion_model.load_state_dict(to_load, strict=False)
# assign=True will reuse the tensor storage in state dict, this will avoid copy and saving CPU memory
# when loading large models with mmap.
m, u = self.diffusion_model.load_state_dict(to_load, strict=False, assign=True)
if len(m) > 0:
logging.warning("unet missing: {}".format(m))