Diffusers documentation

AutoencoderKLPH3Image

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v0.42.1).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

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_std au lieu d'un scaling_factor.
  • Les pixels sont des valeurs RGB normalisées par ImageNet sur [0, 1] : encode s'attend à (pixel - imagenet_mean) / imagenet_std et decode renvoie 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

< >

( 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

< >

( 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éfaut True) — Indique s'il faut retourner un AutoencoderKLOutput plutôt qu'un simple tuplet.

Encode un lot d'images en latents.

décoder

< >

( 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éfaut True) — 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

< >

( 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

< >

( 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éfaut False) — Indique s'il faut échantillonner la distribution a posteriori plutôt que de prendre son mode.
  • generator (torch.Generator, facultatif) — Générateur utilisé lorsque sample_posterior=True.
  • return_dict (bool, facultatif, par défaut True) — 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.

Update on GitHub