| | --- |
| | library_name: diffusers |
| | tags: |
| | - fp8 |
| | - safetensors |
| | - precision-recovery |
| | - diffusion |
| | - converted-by-gradio |
| | --- |
| | # FP8 Model with Precision Recovery |
| | - **Source**: `https://huggingface.co/spacepxl/Wan2.1-VAE-upscale2x` |
| | - **File**: `Wan2.1_VAE_upscale2x_imageonly_real_v1.safetensors` |
| | - **FP8 Format**: `E5M2` |
| | - **Architecture**: vae |
| | - **Precision Recovery Type**: Correction Factors |
| | - **Precision Recovery File**: `Wan2.1_VAE_upscale2x_imageonly_real_v1-correction-vae.safetensors` |
| | - **FP8 File**: `Wan2.1_VAE_upscale2x_imageonly_real_v1-fp8-e5m2.safetensors` |
| | ## Usage (Inference) |
| | ```python |
| | from safetensors.torch import load_file |
| | import torch |
| | # Load FP8 model |
| | fp8_state = load_file("Wan2.1_VAE_upscale2x_imageonly_real_v1-fp8-e5m2.safetensors") |
| | # Load precision recovery file |
| | recovery_state = load_file("Wan2.1_VAE_upscale2x_imageonly_real_v1-correction-vae.safetensors") if "Wan2.1_VAE_upscale2x_imageonly_real_v1-correction-vae.safetensors" else {} |
| | # Reconstruct high-precision weights |
| | reconstructed = {} |
| | for key in fp8_state: |
| | fp8_weight = fp8_state[key].to(torch.float32) |
| | if recovery_state: |
| | # For LoRA approach |
| | if "lora_A" in recovery_state: |
| | if f"lora_A.{key}" in recovery_state and f"lora_B.{key}" in recovery_state: |
| | A = recovery_state[f"lora_A.{key}"].to(torch.float32) |
| | B = recovery_state[f"lora_B.{key}"].to(torch.float32) |
| | lora_weight = B @ A |
| | reconstructed[key] = fp8_weight + lora_weight |
| | else: |
| | reconstructed[key] = fp8_weight |
| | # For correction factor approach |
| | elif f"correction.{key}" in recovery_state: |
| | correction = recovery_state[f"correction.{key}"].to(torch.float32) |
| | reconstructed[key] = fp8_weight + correction |
| | else: |
| | reconstructed[key] = fp8_weight |
| | else: |
| | reconstructed[key] = fp8_weight |
| | ``` |
| | > Requires PyTorch ≥ 2.1 for FP8 support. |
| |
|