Diffusers documentation
AutoencoderKLPH3Image
AutoencoderKLPH3Image
Le VAE d’images de P-H3-Image par Pruna AI. Il utilise l’encodeur et l’espace latent du VAE vidéo de MiniMax-H3, avec un décodeur ViT qui décode un seul cadre latent en image.
Elle suit les conventions de AutoencoderKLMiniMaxH3 :
- Les images sont transmises sous forme de vidéos à image unique,
(batch_size, channels, 1, height, width), avec une compression spatiale de 16x. - Les latents sont normalisés par canal avec
latents_mean/latents_stdau lieu d'unscaling_factor. - Les pixels sont des valeurs RGB normalisées par ImageNet sur
[0, 1]:encodes'attend à(pixel - imagenet_mean) / imagenet_stdetdecoderenvoie dans cet espace. - Le tuilage spatial est activé par défaut, avec des tuiles de 256 pixels et au moins 64 pixels de chevauchement.
import torch
from diffusers import AutoencoderKLPH3Image
vae = AutoencoderKLPH3Image.from_pretrained("PrunaAI/P-H3-Image", subfolder="vae", dtype=torch.bfloat16).to(
"cuda"
) # or "mps", "xpu", "cpu"La projection de sortie de l’encodeur et du décodeur reste en float32, quel que soit le dtype dans lequel le modèle est chargé.
AutoencoderKLPH3Image
classe diffusers.AutoencoderKLPH3Image
< source >( in_channels: int = 3out_channels: int = 3latent_channels: int = 24block_out_channels: tuple = (128, 256, 256, 512, 512, 1024)layers_per_block: int = 2spatial_downsample_factors: tuple = (2, 2, 2, 2, 1, 1)temporal_downsample_factors: tuple = (1, 2, 2, 1, 1, 1)norm_num_groups: int = 32norm_eps: float = 1e-06spatial_padding_mode: str = 'reflect'decoder_num_layers: int = 36decoder_num_attention_heads: int = 32decoder_attention_head_dim: int = 64decoder_num_register_tokens: int = 4decoder_ffn_mult: int = 4decoder_rope_theta: float = 100.0decoder_rope_dim_ratio: float = 0.75decoder_norm_eps: float = 1e-05latents_mean: tuple = (0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0)latents_std: tuple = (1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0) )
Le VAE d’images de P-H3-Image : l’encodeur VAE et l’espace latent de MiniMax-H3, avec un PH3ImageViTDecoder qui décode une seule image latente.
Les images sont transmises sous forme de vidéos à image unique, (batch_size, channels, 1, height, width). Comme dans AutoencoderKLMiniMaxH3, les pixels sont des valeurs RGB normalisées ImageNet sur [0, 1] (moyenne (0.485, 0.456, 0.406), écart-type (0.229, 0.224, 0.225)) et le tuilage spatial est activé par défaut.
encode
< source >( x: Tensorreturn_dict: bool = True )
Paramètres
- x (
torch.Tensor) — Lot d'entrée d'images en tant que vidéos à image unique, de forme(batch_size, in_channels, 1, height, width). - return_dict (
bool, facultatif, par défautTrue) — Indique s'il faut retourner un AutoencoderKLOutput plutôt qu'un simple tuplet.
Encode un lot d'images en latents.
décoder
< source >( z: Tensorreturn_dict: bool = True ) → DecoderOutput or tuple
Paramètres
- z (
torch.Tensor) — Lot d'entrée de latents, de forme(batch_size, latent_channels, 1, height, width). - return_dict (
bool, facultatif, par défautTrue) — Indique s'il faut retourner un DecoderOutput plutôt qu'un simple tuple.
Retourne
DecoderOutput ou tuple
Les images décodées, de forme (batch_size, out_channels, 1, height, width).
Décoder un lot d'images latentes.
enable_tiling
< source >( tile_sample_min_height: int | None = Nonetile_sample_min_width: int | None = Nonetile_sample_min_overlap_height: int | None = Nonetile_sample_min_overlap_width: int | None = None )
Paramètres
- tile_sample_min_height (
int, facultatif) — La hauteur de la tuile en espace pixel. Les images plus hautes que cette valeur sont divisées le long de la dimension de hauteur. - tile_sample_min_width (
int, facultatif) — La largeur de la tuile en espace pixel. Les images plus larges que cette valeur sont divisées le long de la dimension de largeur. - tile_sample_min_overlap_height (
int, facultatif) — La superposition minimale, en pixels, entre deux tuiles verticales consécutives. - tile_sample_min_overlap_width (
int, facultatif) — La superposition minimale, en pixels, entre deux tuiles horizontales consécutives.
Active l’encodage/décodage VAE par tuiles. Lorsque cette option est activée, le VAE divise les images en tuiles, encode ou décode chaque tuile séparément et fusionne linéairement les zones de chevauchement. Cela réduit la consommation mémoire et permet de traiter des images plus grandes.
forward
< source >( sample: Tensorsample_posterior: bool = Falsegenerator: typing.Optional[torch.Generator] = Nonereturn_dict: bool = True ) → DecoderOutput or tuple
Paramètres
- sample (
torch.Tensor) — Lot d'entrée d'images en tant que vidéos à image unique, de forme(batch_size, in_channels, 1, height, width). - sample_posterior (
bool, facultatif, par défautFalse) — Indique s'il faut échantillonner la distribution a posteriori plutôt que de prendre son mode. - generator (
torch.Generator, facultatif) — Générateur utilisé lorsquesample_posterior=True. - return_dict (
bool, facultatif, par défautTrue) — Indique s'il faut retourner un DecoderOutput plutôt qu'un simple tuple.
Retourne
DecoderOutput ou tuple
Les images après aller-retour, de forme (batch_size, out_channels, 1, height, width).
Encoder puis décoder un lot d'images.