Buckets:
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[[diffusers.AutoencoderKLPH3Image]]
diffusers.AutoencoderKLPH3Image[[diffusers.AutoencoderKLPH3Image]]
diffusers.AutoencoderKLPH3Image(in_channels: int = 3, out_channels: int = 3, latent_channels: int = 24, block_out_channels: tuple[int, ...] = (128, 256, 256, 512, 512, 1024), layers_per_block: int = 2, spatial_downsample_factors: tuple[int, ...] = (2, 2, 2, 2, 1, 1), temporal_downsample_factors: tuple[int, ...] = (1, 2, 2, 1, 1, 1), norm_num_groups: int = 32, norm_eps: float = 1e-06, spatial_padding_mode: str = 'reflect', decoder_num_layers: int = 36, decoder_num_attention_heads: int = 32, decoder_attention_head_dim: int = 64, decoder_num_register_tokens: int = 4, decoder_ffn_mult: int = 4, decoder_rope_theta: float = 100.0, decoder_rope_dim_ratio: float = 0.75, decoder_norm_eps: float = 1e-05, latents_mean: tuple[float, ...] = (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[float, ...] = (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[[diffusers.AutoencoderKLPH3Image.encode]]
encode(x: Tensor, return_dict: bool = True)
Paramètres :
x (torch.Tensor) : Lot d'images d'entrée 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 tuple.
Retourne :
La distribution latente des images encodées. Notez que les latents sont ensuite normalisés avec latents_mean / latents_std.
Encode un lot d'images en latents.
decode[[diffusers.AutoencoderKLPH3Image.decode]]
decode(z: Tensor, return_dict: bool = True)
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[[diffusers.AutoencoderKLPH3Image.enable_tiling]]
enable_tiling(tile_sample_min_height: int | None = None, tile_sample_min_width: int | None = None, tile_sample_min_overlap_height: int | None = None, tile_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) : Le chevauchement minimal, en pixels, entre deux tuiles verticales consécutives.
tile_sample_min_overlap_width (int, facultatif) : Le chevauchement minimal, 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, puis fusionne linéairement les zones de chevauchement. Cela réduit la consommation mémoire et permet de traiter des images de plus grande taille.
forward[[diffusers.AutoencoderKLPH3Image.forward]]
forward(sample: Tensor, sample_posterior: bool = False, generator: typing.Optional[torch.Generator] = None, return_dict: bool = True)
Paramètres :
sample (torch.Tensor) : Lot d'images d'entrée 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.
Xet Storage Details
- Size:
- 7.64 kB
- Xet hash:
- 16d62bde0ba17c6d783d4b30132704a7a5f26905fcf9ed656ab6477e2bcbc18e
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.