# AutoencoderKLAllegro

[Allegro](https://github.com/rhymes-ai/Allegro)'da kullanılan KL kaybına sahip 3D varyasyonel otoenkoder (VAE) modeli, RhymesAI tarafından [Allegro: Open the Black Box of Commercial-Level Video Generation Model](https://huggingface.co/papers/2410.15458) makalesinde tanıtılmıştır.

Model, aşağıdaki kod parçasıyla yüklenebilir.

```python
from diffusers import AutoencoderKLAllegro

vae = AutoencoderKLAllegro.from_pretrained("rhymes-ai/Allegro", subfolder="vae", dtype=torch.float32).to("cuda")  # or "mps", "xpu", "cpu"
```

## AutoencoderKLAllegro[[diffusers.AutoencoderKLAllegro]]

#### diffusers.AutoencoderKLAllegro[[diffusers.AutoencoderKLAllegro]]

```python
diffusers.AutoencoderKLAllegro(in_channels: int = 3, out_channels: int = 3, down_block_types: tuple = ('AllegroDownBlock3D', 'AllegroDownBlock3D', 'AllegroDownBlock3D', 'AllegroDownBlock3D'), up_block_types: tuple = ('AllegroUpBlock3D', 'AllegroUpBlock3D', 'AllegroUpBlock3D', 'AllegroUpBlock3D'), block_out_channels: tuple = (128, 256, 512, 512), temporal_downsample_blocks: tuple = (True, True, False, False), temporal_upsample_blocks: tuple = (False, True, True, False), latent_channels: int = 4, layers_per_block: int = 2, act_fn: str = 'silu', norm_num_groups: int = 32, temporal_compression_ratio: float = 4, sample_size: int = 320, scaling_factor: float = 0.13, force_upcast: bool = True)
```

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

**Parametreler:**

in_channels (int, varsayılan `3`) : Giriş görüntüsündeki kanal sayısı.

out_channels (int, varsayılan `3`) : Çıktıdaki kanal sayısı.

down_block_types (`tuple[str, ...]`, varsayılan `("AllegroDownBlock3D", "AllegroDownBlock3D", "AllegroDownBlock3D", "AllegroDownBlock3D")`) : kullanılacak down block türlerini belirten stringler tuple'ı.

up_block_types (`tuple[str, ...]`, varsayılan `("AllegroUpBlock3D", "AllegroUpBlock3D", "AllegroUpBlock3D", "AllegroUpBlock3D")`) : Hangi tür up block'ların kullanılacağını belirten string'lerden oluşan bir tuple.

block_out_channels (`tuple[int, ...]`, varsayılan `(128, 256, 512, 512)`) : Her blokta çıktı kanal sayısını belirten tamsayılar tuple'ı.

temporal_downsample_blocks (`tuple[bool, ...]`, varsayılan `(True, True, False, False)`) : Zaman indirgeme (temporal downsampling) etkinleştirilecek blokları belirleyen boole değerleri dizisi.

latent_channels (`int`, varsayılan `4`) : Latentlerdeki kanal sayısı.

layers_per_block (`int`, varsayılan `2`) : Her aşağı/aşağı blok başına resnet veya dikkat veya zamansal konvolüsyon katmanı sayısı.

act_fn (`str`, varsayılan `"silu"`) : Kullanılacak aktivasyon fonksiyonu.

norm_num_groups (`int`, varsayılan `32`) : Normalizasyon katmanlarında kullanılacak grup sayısı.

temporal_compression_ratio (`int`, varsayılan `4`) : Örneklerin zaman boyutunun sıkıştırılma oranı.

sample_size (`int`, varsayılan `320`) : Varsayılan latent boyutu.

scaling_factor (`float`, varsayılan `0.13235`) : Eğitim setinin ilk partisi kullanılarak hesaplanan, eğitilmiş gizli uzayın bileşen bazlı standart sapması. Bu değer, difüzyon modelinin eğitimi sırasında gizli uzayın birim varyansa ölçeklenmesi için kullanılır. Gizli değişkenler, difüzyon modeline aktarılmadan önce `z = z * scaling_factor` formülüyle ölçeklenir. Kod çözme sırasında ise gizli değişkenler, `z = 1 / scaling_factor * z` formülüyle orijinal ölçeğe geri getirilir. Daha fazla ayrıntı için [High-Resolution Image Synthesis with Latent Diffusion Models](https://huggingface.co/papers/2112.10752) makalesinin 4.3.2 ve D.1 bölümlerine bakınız.

force_upcast (`bool`, varsayılan `True`) : Etkinleştirilirse, SD-XL gibi yüksek görüntü çözünürlüğü boru hatlarında VAE'nin float32'de çalışmasını zorlar. VAE, çok fazla hassasiyet kaybı olmadan daha düşük bir aralığa ince ayarlanabilir / eğitilebilir; bu durumda `force_upcast` `False` olarak ayarlanabilir - bkz: https://huggingface.co/madebyollin/sdxl-vae-fp16-fix

KL kaybı ile videoları latentlere kodlamak ve latent temsilleri videolara çözmek için kullanılan bir VAE modeli. [Allegro](https://github.com/rhymes-ai/Allegro)'da kullanılır.

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.

#### decode[[diffusers.AutoencoderKLAllegro.decode]]

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

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

**Parametreler:**

z (`torch.Tensor`) : Gizil vektörlerin giriş partisi.

return_dict (`bool`, varsayılan `True`) : Düz bir tuple yerine `~models.vae.DecoderOutput` döndürülüp döndürülmemesi.

**Dönüş:** `~models.vae.DecoderOutput` veya `tuple`

return_dict True ise, `~models.vae.DecoderOutput` döndürülür, aksi takdirde düz bir `tuple` döndürülür.

Bir video grubunu çözümlen.

#### encode[[diffusers.AutoencoderKLAllegro.encode]]

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

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

**Parametreler:**

x (`torch.Tensor`) : Girdi video partisi.

return_dict (`bool`, varsayılan `True`) : Düz bir tuple yerine `~models.autoencoder_kl.AutoencoderKLOutput` döndürülüp döndürülmediğini belirtir.

**Dönüş:**

Kodlanmış videoların gizil (latent) temsilleri. `return_dict` True ise bir `~models.autoencoder_kl.AutoencoderKLOutput` döndürülür, aksi halde düz bir `tuple` döndürülür.

Bir video grubunu latentlere kodlayın.

#### forward[[diffusers.AutoencoderKLAllegro.forward]]

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

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

**Parametreler:**

sample (`torch.Tensor`) : Girdi örneği.

sample_posterior (`bool`, *isteğe bağlı*, varsayılan `False`) : Posterior'dan örneklemeye alınıp alınmayacağı.

return_dict (`bool`, *isteğe bağlı*, varsayılan `True`) : Düz bir tuple yerine `DecoderOutput` döndürülüp döndürülmemesi.

generator (`torch.Generator`, *isteğe bağlı*) : PyTorch rastgele sayı üreteci.

**Dönüş:** `~models.vae.DecoderOutput` veya `tuple`

`return_dict` True ise, `~models.vae.DecoderOutput` döndürülür; aksi halde düz bir `tuple` döndürülür.

## AutoencoderKLOutput[[diffusers.models.modeling_outputs.AutoencoderKLOutput]]

#### diffusers.models.modeling_outputs.AutoencoderKLOutput[[diffusers.models.modeling_outputs.AutoencoderKLOutput]]

```python
diffusers.models.modeling_outputs.AutoencoderKLOutput(latent_dist: DiagonalGaussianDistribution)
```

[Kaynak](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/modeling_outputs.py#L7)

**Parametreler:**

latent_dist (`DiagonalGaussianDistribution`) : `Encoder`'ın `DiagonalGaussianDistribution` ortalama ve logvar olarak temsil edilen kodlanmış çıktıları. `DiagonalGaussianDistribution`, dağılımdan latent örneklemeye olanak tanır.

AutoencoderKL kodlama yönteminin çıktısı.

## DecoderOutput[[diffusers.models.autoencoders.vae.DecoderOutput]]

#### diffusers.models.autoencoders.vae.DecoderOutput[[diffusers.models.autoencoders.vae.DecoderOutput]]

```python
diffusers.models.autoencoders.vae.DecoderOutput(sample: Tensor, commit_loss: typing.Optional[torch.FloatTensor] = None)
```

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

**Parametreler:**

sample (`torch.Tensor`, şekli `(batch_size, num_channels, height, width)`) : Modelin son katmanından çözümlenmiş çıktı örneği.

Çözümleme yönteminin çıktısı.

