Spaces:
Running on Zero
Running on Zero
| import torch | |
| from diffusers import AutoencoderKL | |
| from diffusers.image_processor import VaeImageProcessor | |
| from pathlib import Path | |
| from typing import Optional, List | |
| def load_vae_and_processor(vae_locator: str, subfolder: Optional[str], device: torch.device): | |
| """Load AutoencoderKL from a local folder or a HuggingFace repo id and return (vae, processor). | |
| vae_locator: local path or HF repo id (author/repo) | |
| subfolder: optional subfolder inside HF repo where VAE lives | |
| device: torch device | |
| """ | |
| p = Path(vae_locator) | |
| if p.exists(): | |
| print(f"Loading local VAE from: {vae_locator}") | |
| vae = AutoencoderKL.from_pretrained(str(p)) | |
| else: | |
| print(f"Loading VAE from HuggingFace repo: {vae_locator}, subfolder={subfolder}") | |
| vae = AutoencoderKL.from_pretrained(vae_locator, subfolder=subfolder) | |
| vae = vae.to(device) | |
| vae.eval() | |
| processor = VaeImageProcessor.from_config(vae.config) | |
| print("Created VaeImageProcessor from config") | |
| return vae, processor |