# AutoencoderKLMiniMaxH3Image

Model image variational autoencoder (VAE) dengan KL loss yang digunakan dalam [MiniMax-H3-Image](https://huggingface.co/MiniMaxAI/MiniMax-H3-Image) oleh MiniMax. Model ini menggabungkan encoder causal 3D CNN dari [AutoencoderKLMiniMaxH3](/docs/diffusers/v0.43.0/id/api/models/autoencoderkl_minimax_h3#diffusers.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](/docs/diffusers/v0.43.0/id/api/models/autoencoderkl_minimax_h3#diffusers.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.

```python
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[[diffusers.AutoencoderKLMiniMaxH3Image]]

#### diffusers.AutoencoderKLMiniMaxH3Image[[diffusers.AutoencoderKLMiniMaxH3Image]]

```python
diffusers.AutoencoderKLMiniMaxH3Image(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 = 24, decoder_num_attention_heads: int = 16, 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.5, 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))
```

[Sumber](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/models/autoencoders/autoencoder_kl_minimax_h3_image.py#L499)

Model VAE dengan encoder CNN 3D kausal dan decoder ViT 2D non-kausal, yang digunakan dalam [MiniMax-H3-Image](https://huggingface.co/MiniMaxAI). Encoder-nya adalah encoder video MiniMax-H3 yang dijalankan pada satu frame; decoder-nya adalah ViT khusus gambar.

Model ini mewarisi dari [ModelMixin](/docs/diffusers/v0.43.0/id/api/models/overview#diffusers.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` (mean `(0.485, 0.456, 0.406)`, std `(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[[diffusers.AutoencoderKLMiniMaxH3Image.encode]]

```python
encode(x: Tensor, return_dict: bool = True)
```

[Sumber](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/models/autoencoders/autoencoder_kl_minimax_h3_image.py#L758)

**Parameter:**

x (`torch.Tensor`) : Batch input gambar, bentuk `(batch_size, in_channels, height, width)`.

return_dict (`bool`, *opsional*, defaultnya `True`) : Apakah akan mengembalikan [AutoencoderKLOutput](/docs/diffusers/v0.43.0/id/api/models/autoencoderkl_qwenimage#diffusers.models.modeling_outputs.AutoencoderKLOutput) alih-alih tuple biasa.

**Mengembalikan:**

Distribusi laten dari gambar yang dikodekan, di atas laten dengan bentuk `(batch_size, latent_channels, height // spatial_compression_ratio, width // spatial_compression_ratio)`. Perhatikan bahwa MiniMax-H3-Image menormalisasi laten yang diambil dengan `latents_mean` / `latents_std` setelahnya.

Enkodekan batch gambar menjadi latents.

#### decode[[diffusers.AutoencoderKLMiniMaxH3Image.decode]]

```python
decode(z: Tensor, return_dict: bool = True)
```

[Sumber](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/models/autoencoders/autoencoder_kl_minimax_h3_image.py#L786)

**Parameter:**

z (`torch.Tensor`) : Batch input latents, bentuk `(batch_size, latent_channels, height, width)`.

return_dict (`bool`, *opsional*, defaultnya `True`) : Apakah akan mengembalikan [DecoderOutput](/docs/diffusers/v0.43.0/id/api/models/autoencoderkl_qwenimage#diffusers.models.autoencoders.vae.DecoderOutput) alih-alih tuple biasa.

**Mengembalikan:** [DecoderOutput](/docs/diffusers/v0.43.0/id/api/models/autoencoderkl_qwenimage#diffusers.models.autoencoders.vae.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[[diffusers.AutoencoderKLMiniMaxH3Image.enable_tiling]]

```python
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)
```

[Sumber](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/models/autoencoders/autoencoder_kl_minimax_h3_image.py#L608)

**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 ini akan dipecah sepanjang dimensi lebar.

tile_sample_min_overlap_height (`int`, *opsional*) : Tumpang tindih minimum, dalam piksel, antara dua ubin vertikal yang berurutan.

tile_sample_min_overlap_width (`int`, *opsional*) : Tumpang tindih minimum, dalam piksel, antara dua ubin 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, lalu mencampur kembali bagian yang tumpang tindih secara linear. Hal ini menurunkan kebutuhan memori dan memungkinkan pemrosesan frame yang lebih besar.

#### forward[[diffusers.AutoencoderKLMiniMaxH3Image.forward]]

```python
forward(sample: Tensor, sample_posterior: bool = False, generator: typing.Optional[torch.Generator] = None, return_dict: bool = True)
```

[Sumber](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/models/autoencoders/autoencoder_kl_minimax_h3_image.py#L812)

**Parameter:**

sample (`torch.Tensor`) : Batch input gambar, bentuk `(batch_size, in_channels, height, width)`.

sample_posterior (`bool`, *opsional*, defaultnya `False`) : Apakah akan melakukan sampling posterior alih-alih mengambil modusnya.

generator (`torch.Generator`, *opsional*) : Generator yang digunakan saat `sample_posterior=True`.

return_dict (`bool`, *opsional*, defaultnya `True`) : Apakah akan mengembalikan [DecoderOutput](/docs/diffusers/v0.43.0/id/api/models/autoencoderkl_qwenimage#diffusers.models.autoencoders.vae.DecoderOutput) alih-alih tuple biasa.

**Mengembalikan:** [DecoderOutput](/docs/diffusers/v0.43.0/id/api/models/autoencoderkl_qwenimage#diffusers.models.autoencoders.vae.DecoderOutput) atau `tuple`

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

Encode lalu decode sebuah batch gambar.

