# AutoencoderKLMiniMaxH3

MiniMax tarafından [MiniMax-H3](https://huggingface.co/MiniMaxAI/MiniMax-H3)'te kullanılan, KL kaybına sahip video varyasyonel otoenkoder (VAE) modeli. Neden-sonuç 3D CNN kodlayıcıyı neden-sonuç olmayan ViT çözücüyle eşleştirir ve uzaysal olarak 16x, zamansal olarak 4x sıkıştırma uygular.

Kütüphanedeki çoğu oto-kodlayıcıdan onu ayıran üç şey var:

- **Latentler kanal başına normalize edilir.** `scaling_factor` yoktur: bir pipeline `(latent - latents_mean) / latents_std` ile kodlar ve `latent * latents_std + latents_mean` ile çö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_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` uygular ve `[0, 1]` aralığına kırpma yapar.
- **Uzamsal karolar varsayılan olarak açıktır.** MiniMax-H3, hem kodlama hem de çözümlüme için karolama etkinleştirilmiş olarak yayınlanmış ve yayınlanan kareler karışık karolara ait olduğundan, bu özelliği kapatmak çıktıyı değiştirir. Karo geometrisini değiştirmek için `enable_tiling`, kapatmak için `disable_tiling` kullanın.

Zamansal geometri, `clip_length` (kodlayıcı parçası başına 17 piksel karesi) ve `token_drop` (her kodlamada atılan 3 sonda latent karesi) tarafından sabitlenir; bu nedenle `17 * n + 5` piksel karesi, `5 * n + 2` latent karesine eşlenir.

```python
import torch
from diffusers import AutoencoderKLMiniMaxH3

vae = AutoencoderKLMiniMaxH3.from_pretrained(
    "MiniMaxAI/MiniMax-H3", subfolder="vae", dtype=torch.float32
).to("cuda")  # or "mps", "xpu", "cpu"
```

## AutoencoderKLMiniMaxH3[[diffusers.AutoencoderKLMiniMaxH3]]

#### diffusers.AutoencoderKLMiniMaxH3[[diffusers.AutoencoderKLMiniMaxH3]]

```python
diffusers.AutoencoderKLMiniMaxH3(in_channels: int = 3, out_channels: int = 3, latent_channels: int = 24, block_out_channels: tuple = (128, 256, 256, 512, 512, 1024), layers_per_block: int = 2, spatial_downsample_factors: tuple = (2, 2, 2, 2, 1, 1), temporal_downsample_factors: tuple = (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, clip_length: int = 17, token_drop: int = 3, latents_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))
```

[Kaynak](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/autoencoders/autoencoder_kl_minimax_h3.py#L505)

[MiniMax-H3](https://huggingface.co/MiniMaxAI)'te kullanılan, nedensel 3D CNN kodlayıcıya ve nedensiz ViT çözücüye sahip bir VAE modeli.

Bu model [ModelMixin](/docs/diffusers/main/tr/api/models/overview#diffusers.ModelMixin) sınıfından devralır. Tüm modeller için uygulanan genel yöntemlerini (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.

Zamansal geometri, `clip_length` (kodlayıcı parçası başına 17 piksel karesi) ve `token_drop` (kodlama başına atılan 3 sonda latent karesi) tarafından sabitlenir: `17 * n + 5` piksel karesi, `5 * n + 2` latent karesine eşlenir.

Kütüphanedeki çoğu otoenkoderın aksine, uzamsal karolama (tiling) **varsayılan olarak açıktır**: MiniMax-H3, hem kodlama hem de çözümlendirme için karolama etkinleştirilmiş şekilde yayımlanmıştır ve yayımlanan kareler karışık karolama (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[[diffusers.AutoencoderKLMiniMaxH3.encode]]

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

[Kaynak](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/autoencoders/autoencoder_kl_minimax_h3.py#L855)

**Parametreler:**

x (`torch.Tensor`) : Girdi video partisi, şekli `(batch_size, in_channels, num_frames, height, width)`.

return_dict (`bool`, *isteğe bağlı*, varsayılan `True`) : Düz bir tuple yerine [AutoencoderKLOutput](/docs/diffusers/main/tr/api/models/autoencoderkl_qwenimage#diffusers.models.modeling_outputs.AutoencoderKLOutput) döndürülüp döndürülmediğini belirtir.

**Dönüş:**

Kodlanmış videoların gizli dağılımı. Not: MiniMax-H3, örneklenen gizli değişkenleri daha sonra `latents_mean` / `latents_std` ile normalize eder.

Bir video grubunu latentlere kodlayın.

#### decode[[diffusers.AutoencoderKLMiniMaxH3.decode]]

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

[Kaynak](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/autoencoders/autoencoder_kl_minimax_h3.py#L883)

**Parametreler:**

z (`torch.Tensor`) : Girdi partisi latent videoları, şekli `(batch_size, latent_channels, num_latent_frames, height, width)`.

return_dict (`bool`, *isteğe bağlı*, varsayılan `True`) : Düz bir tuple yerine [DecoderOutput](/docs/diffusers/main/tr/api/models/autoencoderkl_qwenimage#diffusers.models.autoencoders.vae.DecoderOutput) döndürülüp döndürülmemesi.

**Dönüş:** [DecoderOutput](/docs/diffusers/main/tr/api/models/autoencoderkl_qwenimage#diffusers.models.autoencoders.vae.DecoderOutput) veya `tuple`

Çözümlenmiş videolar, şekil `(batch_size, out_channels, num_frames, height, width)`.

Bir latent video grubunu çözümlen.

#### enable_tiling[[diffusers.AutoencoderKLMiniMaxH3.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)
```

[Kaynak](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/autoencoders/autoencoder_kl_minimax_h3.py#L628)

**Parametreler:**

tile_sample_min_height (`int`, *isteğe bağlı*) : Piksel uzayındaki karoların yüksekliği. Bu değere göre 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 karolar arasındaki minimum örtüşme, piksel cinsinden.

tile_sample_min_overlap_width (`int`, *isteğe bağlı*) : İki ardışık yatay karolar 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[[diffusers.AutoencoderKLMiniMaxH3.forward]]

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

[Kaynak](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/autoencoders/autoencoder_kl_minimax_h3.py#L908)

**Parametreler:**

sample (`torch.Tensor`) : Girdi video partisi, şekli `(batch_size, in_channels, num_frames, height, width)`.

sample_posterior (`bool`, *isteğe bağlı*, varsayılan `False`) : Posterior dağılımın modunu almak yerine örneklemesinin alınması.

generator (`torch.Generator`, *isteğe bağlı*) : `sample_posterior=True` olduğunda kullanılan Generator.

return_dict (`bool`, *isteğe bağlı*, varsayılan `True`) : Düz bir tuple yerine [DecoderOutput](/docs/diffusers/main/tr/api/models/autoencoderkl_qwenimage#diffusers.models.autoencoders.vae.DecoderOutput) döndürülüp döndürülmemesi.

**Dönüş:** [DecoderOutput](/docs/diffusers/main/tr/api/models/autoencoderkl_qwenimage#diffusers.models.autoencoders.vae.DecoderOutput) veya `tuple`

Geri dönen videolar, şekil `(batch_size, out_channels, num_frames, height, width)`.

Bir video grubunu kodlayıp ardından çözümlen.

