Diffusers documentation
AutoencoderKLMiniMaxH3Image
AutoencoderKLMiniMaxH3Image
MiniMax tarafından MiniMax-H3-Image'da kullanılan, KL kaybı içeren görüntü varyasyonel otoenkoder (VAE) modeli. AutoencoderKLMiniMaxH3'ün tek bir kare üzerinde çalıştırılan nedensel 3D CNN enkoderini, 2D ViT dekoderiyle eşleştirir ve uzaysal olarak 16x sıkıştırır. encode ve decode, 4B görüntü tensörlerini alır ve döndürür.
AutoencoderKLMiniMaxH3 ile üç ortak kuralı paylaşır:
- Latentler kanal başına normalize edilir.
scaling_factoryoktur: bir pipeline(latent - latents_mean) / latents_stdile kodlar velatent * latents_std + latents_meanile çözer. - Piksel konvansiyonu,
[0, 1]taban aralığı üzerinde ImageNet-normalize edilmiş RGB'dir, alışıldık[-1, 1]değildir.encode,(pixel - imagenet_mean) / imagenet_stdbekler vedecodedeğerleri aynı uzayda döndürür; bu nedenle bir pipeline, ön işlemden öncesample * imagenet_std + imagenet_meanuygular ve[0, 1]aralığına kırpma yapar. - Uzamsal karolar varsayılan olarak açıktır. MiniMax-H3-Image, hem kodlama hem de çözümlüme için karolama etkinleştirilmiş olarak yayınlanmış ve yayınlanan görseller karoları birleştirilmiş olanlardır; bu nedenle bu özelliği kapatmak çıktıyı değiştirir. Karo geometrisini değiştirmek için
enable_tiling, kapatmak içindisable_tilingkullanın.
import torch
from diffusers import AutoencoderKLMiniMaxH3Image
vae = AutoencoderKLMiniMaxH3Image.from_pretrained(
"MiniMaxAI/MiniMax-H3-Image", subfolder="vae_diffusers", dtype=torch.float32
).to("cuda") # or "mps", "xpu", "cpu"AutoencoderKLMiniMaxH3Image
sınıf diffusers.AutoencoderKLMiniMaxH3Image
< source >( in_channels: int = 3out_channels: int = 3latent_channels: int = 24block_out_channels: tuple[int, ...] = (128, 256, 256, 512, 512, 1024)layers_per_block: int = 2spatial_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 = 32norm_eps: float = 1e-06spatial_padding_mode: str = 'reflect'decoder_num_layers: int = 24decoder_num_attention_heads: int = 16decoder_attention_head_dim: int = 64decoder_num_register_tokens: int = 4decoder_ffn_mult: int = 4decoder_rope_theta: float = 100.0decoder_rope_dim_ratio: float = 0.5decoder_norm_eps: float = 1e-05latents_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) )
Nedensel 3D CNN kodlayıcıya ve nedensiz 2D ViT çözücüye sahip, MiniMax-H3-Image içinde kullanılan bir VAE modeli. Kodlayıcı, tek bir kare üzerinde çalıştırılan MiniMax-H3 video kodlayıcısıdır; çözücü ise yalnızca görüntü için tasarlanmış bir ViT'dir.
Bu model ModelMixin sınıfından devralır. Tüm modeller için uygulanan genel yöntemleri (indirme veya kaydetme gibi) görmek için üst sınıfın belgelendirmesine bakın.
Latentler, scaling_factor yerine kanal başına latents_mean / latents_std ile normalize edilir; bir pipeline (latent - latents_mean) / latents_std ile kodlar ve latent * latents_std + latents_mean ile çözer.
Piksel konvansiyonu, alışıldık [-1, 1] aralığı yerine [0, 1] taban aralığı üzerinde ImageNet-normalize edilmiş RGB'dir: encode, (pixel - imagenet_mean) / imagenet_std bekler ve decode değerleri aynı uzayda döndürür; bu nedenle bir pipeline, ön işlemden önce sample * imagenet_std + imagenet_mean (ortalama (0.485, 0.456, 0.406), standart sapma (0.229, 0.224, 0.225)) uygulayıp [0, 1] aralığına kırpmalıdır.
Kütüphanedeki çoğu otoenkoderin aksine, uzamsal karolama (spatial tiling) varsayılan olarak açıktır: MiniMax-H3-Image, hem kodlama hem de çözümlendirme için karolama etkinleştirilmiş şekilde yayımlanmıştır ve yayımlanan görseller karışık karolamalı (blended-tile) olanlardır; bu nedenle karolamayı devre dışı bırakmak çıktıyı değiştirir. Karolama geometrisini değiştirmek için enable_tiling, kapatmak için disable_tiling kullanın.
encode
< source >( x: Tensorreturn_dict: bool = True )
Parametreler
- x (
torch.Tensor) — Girdi görüntü partisi, şekli(batch_size, in_channels, height, width). - return_dict (
bool, isteğe bağlı, varsayılanTrue) — Düz bir tuple yerine AutoencoderKLOutput döndürülüp döndürülmemesi.
Bir görüntü grubunu latentlere kodlayın.
decode
< source >( z: Tensorreturn_dict: bool = True ) → DecoderOutput or tuple
Parametreler
- z (
torch.Tensor) — Girdi partisi latentleri, şekli(batch_size, latent_channels, height, width). - return_dict (
bool, isteğe bağlı, varsayılanTrue) — Düz bir tuple yerine DecoderOutput döndürülüp döndürülmemesi.
Dönüş değeri
DecoderOutput veya tuple
Çözülen görüntülerin şekli (batch_size, out_channels, height * spatial_compression_ratio, width * spatial_compression_ratio).
Bir latent grubunu çözümlenir.
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 )
Parametreler
- tile_sample_min_height (
int, isteğe bağlı) — Piksel uzayındaki karoların yüksekliği. Bu değerin daha yüksek olan kareler, yükseklik boyutu boyunca bölünür. - tile_sample_min_width (
int, isteğe bağlı) — Piksel uzayındaki karoların genişliği. Bu değerden daha geniş olan kareler, genişlik boyutu boyunca bölünür. - tile_sample_min_overlap_height (
int, isteğe bağlı) — İki ardışık dikey karo arasındaki minimum örtüşme, piksel cinsinden. - tile_sample_min_overlap_width (
int, isteğe bağlı) — İki ardışık yatay karo arasındaki minimum örtüşme, piksel cinsinden.
Döşemeli VAE kodlama/çözme işlemini etkinleştirir. Bu seçenek etkinleştirildiğinde, VAE kareleri döşemelere ayırır, her döşemeyi ayrı ayrı kodlar veya çözer ve örtüşen kısımları doğrusal olarak birleştirir. Bu, bellek gereksinimini azaltır ve daha büyük karelerin işlenmesine olanak tanır.
forward
< source >( sample: Tensorsample_posterior: bool = Falsegenerator: typing.Optional[torch.Generator] = Nonereturn_dict: bool = True ) → DecoderOutput or tuple
Parametreler
- sample (
torch.Tensor) — Girdi görüntü partisi, şekli(batch_size, in_channels, height, width). - sample_posterior (
bool, isteğe bağlı, varsayılanFalse) — Modunu almak yerine posterior dağılımdan örneklem alınıp alınmayacağını belirtir. - generator (
torch.Generator, isteğe bağlı) —sample_posterior=Trueolduğunda kullanılan üreteç. - return_dict (
bool, isteğe bağlı, varsayılanTrue) — Düz bir tuple yerine DecoderOutput döndürülüp döndürülmemesi.
Dönüş değeri
DecoderOutput veya tuple
Geri dönen görüntüler, şekli (batch_size, out_channels, height, width).
Bir görüntü grubunu kodlayıp ardından çözümlendirin.