| import torch | |
| from safetensors.torch import save_file | |
| # Load the original .bin file | |
| orig = torch.load("pytorch_model.bin", map_location="cpu") | |
| converted = {} | |
| # Convert ip_adapter weights | |
| for key, value in orig["ip_adapter"].items(): | |
| # e.g. '0.to_k_ip.weight' → 'ip_adapter.0.to_k_ip.weight' | |
| parts = key.split(".", 1) | |
| if len(parts) == 2: | |
| new_key = f"ip_adapter.{parts[0]}.{parts[1]}" | |
| else: | |
| new_key = f"ip_adapter.{key}" | |
| converted[new_key] = value | |
| # Convert image_proj weights | |
| for key, value in orig["image_proj"].items(): | |
| # Do not rename! Just prepend with 'image_proj.' | |
| new_key = f"image_proj.{key}" | |
| converted[new_key] = value | |
| # Save to safetensors | |
| save_file(converted, "ip_adapter.safetensors") | |