# AutoencoderKLPH3Image

Pruna AI'nin [P-H3-Image](https://huggingface.co/PrunaAI/P-H3-Image) modelinin görüntü VAE'si. MiniMax-H3'ün [video VAE](./autoencoderkl_minimax_h3)'sindeki kodlayıcıyı ve gizli uzayı kullanır; tek bir gizli çerçeveyi görüntüye dönüştüren bir ViT çözücüye sahiptir.

[AutoencoderKLMiniMaxH3](/docs/diffusers/main/tr/api/models/autoencoderkl_minimax_h3#diffusers.AutoencoderKLMiniMaxH3) kurallarını takip eder:

- Görüntüler, 16x uzamsal sıkıştırma ile tek kareli videolar olarak `(batch_size, channels, 1, height, width)` şeklinde geçirilir.
- Latentler, `scaling_factor` yerine `latents_mean` / `latents_std` ile kanal başına normalize edilir.
- Pikseller, `[0, 1]` aralığında ImageNet-normalize edilmiş RGB değerleridir: `encode`, `(pixel - imagenet_mean) / imagenet_std` biçiminde girdi bekler ve `decode` bu uzayı döndürür.
- Mekansal karolar varsayılan olarak açıktır; 256 piksellik karolar ve en az 64 piksellik örtüşme kullanılır.

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

Model hangi `dtype` ile yüklenirse yüklensin, kodlayıcı ve çözücünün çıktı projeksiyonu float32 olarak kalır.

## AutoencoderKLPH3Image[[diffusers.AutoencoderKLPH3Image]]

#### diffusers.AutoencoderKLPH3Image[[diffusers.AutoencoderKLPH3Image]]

```python
diffusers.AutoencoderKLPH3Image(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, 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_p_h3_image.py#L493)

[P-H3-Image](https://huggingface.co/PrunaAI/P-H3-Image) görsel VAE'si: MiniMax-H3'ün VAE kodlayıcısı ve gizli uzayı, tek bir gizli çerçeveyi çözen bir `PH3ImageViTDecoder` ile.

Görseller, tek kareli videolar olarak iletilir: `(batch_size, channels, 1, height, width)`. [AutoencoderKLMiniMaxH3](/docs/diffusers/main/tr/api/models/autoencoderkl_minimax_h3#diffusers.AutoencoderKLMiniMaxH3)'te olduğu gibi, pikseller `[0, 1]` aralığında ImageNet-normalize edilmiş RGB değerleridir (ortalama `(0.485, 0.456, 0.406)`, standart sapma `(0.229, 0.224, 0.225)`) ve uzamsal karolar (spatial tiling) varsayılan olarak açıktır.

#### encode[[diffusers.AutoencoderKLPH3Image.encode]]

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

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

**Parametreler:**

x (`torch.Tensor`) : Tek kareli videolar olarak girdi görüntü partisi, şekli `(batch_size, in_channels, 1, 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ış görüntülerin gizli dağılımı. Not: Gizli değişkenler daha sonra `latents_mean` / `latents_std` ile normalize edilir.

Bir görüntü grubunu latentlere kodlayın.

#### decode[[diffusers.AutoencoderKLPH3Image.decode]]

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

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

**Parametreler:**

z (`torch.Tensor`) : Girdi partisi latensleri, şekil `(batch_size, latent_channels, 1, 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ülen görüntülerin şekli `(batch_size, out_channels, 1, height, width)`.

Bir latent görüntü grubunu çözümlenir.

#### enable_tiling[[diffusers.AutoencoderKLPH3Image.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_p_h3_image.py#L575)

**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.AutoencoderKLPH3Image.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_p_h3_image.py#L784)

**Parametreler:**

sample (`torch.Tensor`) : Tek kareli videolar olarak girdi görüntü partisi, şekli `(batch_size, in_channels, 1, 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 görüntüler, şekli `(batch_size, out_channels, 1, height, width)`.

Bir görüntü grubunu kodlayıp ardından çözümlendirin.

