Diffusers documentation

AutoencoderKLMiniMaxH3Image

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

AutoencoderKLMiniMaxH3Image

Model image variational autoencoder (VAE) dengan KL loss yang digunakan dalam MiniMax-H3-Image oleh MiniMax. Model ini menggabungkan encoder causal 3D CNN dari AutoencoderKLMiniMaxH3, yang dijalankan pada satu frame, dengan decoder 2D ViT, dan melakukan kompresi spasial 16x. encode dan decode menerima dan mengembalikan tensor gambar 4D.

Model ini berbagi tiga konvensi dengan AutoencoderKLMiniMaxH3:

  • Latents dinormalisasi per channel. Tidak ada scaling_factor: sebuah pipeline meng-encode dengan (latent - latents_mean) / latents_std dan meng-decode dengan latent * latents_std + latents_mean.
  • Konvensi piksel adalah RGB yang dinormalisasi ImageNet pada rentang dasar [0, 1], bukan [-1, 1] yang umum. encode mengharapkan (pixel - imagenet_mean) / imagenet_std dan decode mengembalikan nilai dalam ruang yang sama, sehingga pipeline menerapkan sample * imagenet_std + imagenet_mean dan membatasi ke [0, 1] sebelum pascapemrosesan.
  • Penyegmen spasial aktif secara bawaan. MiniMax-H3-Image dirilis dengan penyegmen diaktifkan untuk encoding dan decoding, dan gambar yang dirilis adalah hasil penyegmen yang dicampur, sehingga mematikannya akan mengubah output. Gunakan enable_tiling untuk mengubah geometri segmen dan disable_tiling untuk mematikannya.
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

kelas diffusers.AutoencoderKLMiniMaxH3Image

< >

( 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) )

Model VAE dengan encoder CNN 3D kausal dan decoder ViT 2D non-kausal, yang digunakan dalam MiniMax-H3-Image. Encoder-nya adalah encoder video MiniMax-H3 yang dijalankan pada satu frame; decoder-nya adalah ViT khusus gambar.

Model ini mewarisi dari ModelMixin. Periksa dokumentasi kelas induk untuk metode generiknya yang diimplementasikan untuk semua model (seperti mengunduh atau menyimpan).

Latents dinormalisasi dengan latents_mean / latents_std per-channel, bukan dengan scaling_factor; sebuah pipeline meng-encode dengan (latent - latents_mean) / latents_std dan meng-decode dengan latent * latents_std + latents_mean.

Konvensi piksel adalah RGB yang dinormalisasi ImageNet di atas rentang dasar [0, 1], bukan [-1, 1] yang biasa: encode mengharapkan (pixel - imagenet_mean) / imagenet_std dan decode mengembalikan nilai di ruang yang sama, sehingga pipeline harus menerapkan sample * imagenet_std + imagenet_mean (rata-rata (0.485, 0.456, 0.406), standar deviasi (0.229, 0.224, 0.225)) dan membatasi ke [0, 1] sebelum pascapemrosesan.

Berbeda dengan sebagian besar autoencoder di pustaka ini, penataan spasial (spatial tiling) aktif secara bawaan: MiniMax-H3-Image dirilis dengan tiling diaktifkan untuk encoding dan decoding, dan gambar yang dirilis adalah hasil dari blended-tile, sehingga menonaktifkan tiling akan mengubah output. Gunakan enable_tiling untuk mengubah geometri tile, dan disable_tiling untuk menonaktifkannya.

encode

< >

( x: Tensorreturn_dict: bool = True )

Parameter

  • x (torch.Tensor) — Batch input gambar, bentuk (batch_size, in_channels, height, width).
  • return_dict (bool, opsional, default True) — Apakah akan mengembalikan AutoencoderKLOutput alih-alih tuple biasa.

Enkodekan batch gambar menjadi latents.

decode

< >

( z: Tensorreturn_dict: bool = True ) → DecoderOutput or tuple

Parameter

  • z (torch.Tensor) — Batch input latents, bentuk (batch_size, latent_channels, height, width).
  • return_dict (bool, opsional, default True) — Apakah akan mengembalikan DecoderOutput alih-alih tuple biasa.

Mengembalikan

DecoderOutput atau tuple

Gambar yang didekode, bentuk (batch_size, out_channels, height * spatial_compression_ratio, width * spatial_compression_ratio).

Decode sebuah batch latents.

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 )

Parameter

  • tile_sample_min_height (int, opsional) — Tinggi tile dalam ruang piksel. Frame yang lebih tinggi dari nilai ini akan dipecah sepanjang dimensi tinggi.
  • tile_sample_min_width (int, opsional) — Lebar tile dalam ruang piksel. Frame yang lebih lebar dari nilai ini akan dipecah sepanjang dimensi lebar.
  • tile_sample_min_overlap_height (int, opsional) — Tumpang tindih minimum, dalam piksel, antara dua tile vertikal yang berurutan.
  • tile_sample_min_overlap_width (int, opsional) — Tumpang tindih minimum, dalam piksel, antara dua tile horizontal yang berurutan.

Aktifkan encoding/decoding VAE bertile. Ketika opsi ini diaktifkan, VAE membagi frame menjadi tile, meng-encode atau meng-decode setiap tile secara terpisah, dan mencampur kembali bagian yang tumpang tindih secara linear. Hal ini menurunkan kebutuhan memori dan memungkinkan pemrosesan frame yang lebih besar.

forward

< >

( sample: Tensorsample_posterior: bool = Falsegenerator: typing.Optional[torch.Generator] = Nonereturn_dict: bool = True ) → DecoderOutput or tuple

Parameter

  • sample (torch.Tensor) — Batch input gambar, bentuk (batch_size, in_channels, height, width).
  • sample_posterior (bool, opsional, default False) — Apakah akan mengambil sampel posterior alih-alih mengambil modusnya.
  • generator (torch.Generator, opsional) — Generator yang digunakan saat sample_posterior=True.
  • return_dict (bool, opsional, default True) — Apakah akan mengembalikan DecoderOutput alih-alih tuple biasa.

Mengembalikan

DecoderOutput atau tuple

Gambar yang telah diproses bolak-balik, bentuk (batch_size, out_channels, height, width).

Encode lalu decode sebuah batch gambar.

Update on GitHub