from diffsynth import load_state_dict import torch from safetensors.torch import save_file from tqdm import tqdm def dequantize(source_path, target_path, device="cuda", torch_dtype=torch.bfloat16): sd = load_state_dict(source_path, device=device) for k in tqdm([k for k in sd if k.endswith(".weight_scale")]): weight_key = k[:-13] + ".weight" weight = sd.pop(weight_key).to(torch_dtype) scale = sd.pop(k).to(torch_dtype).unsqueeze(1) sd[weight_key] = weight * scale if target_path is not None: save_file(sd, target_path)