Spaces:
Running on Zero
Running on Zero
| """VAE loading helpers for SEFI inference artifacts.""" | |
| from __future__ import annotations | |
| import torch | |
| def load_vae_from_path( | |
| model_name: str, | |
| base_path: str, | |
| *, | |
| torch_dtype: torch.dtype | None = None, | |
| local_files_only: bool = True, | |
| ): | |
| """Load a final inference VAE from an explicit artifact path.""" | |
| import diffusers | |
| kwargs = {"local_files_only": local_files_only} | |
| if torch_dtype is not None: | |
| kwargs["torch_dtype"] = torch_dtype | |
| if model_name == "sd1.5": | |
| return diffusers.models.AutoencoderKL.from_pretrained(base_path, **kwargs) | |
| if model_name in {"flux", "flux1"}: | |
| return diffusers.models.AutoencoderKL.from_pretrained( | |
| base_path, | |
| subfolder="vae", | |
| **kwargs, | |
| ) | |
| if model_name == "flux2": | |
| return diffusers.models.AutoencoderKLFlux2.from_pretrained( | |
| base_path, | |
| subfolder="vae", | |
| **kwargs, | |
| ) | |
| raise ValueError( | |
| f"Unsupported texture VAE model_name={model_name}. " | |
| "Supported values: sd1.5, flux1, flux2." | |
| ) | |