# AutoencoderKLLTX2Video

Model 3D variational autoencoder (VAE) dengan KL loss yang digunakan dalam [LTX-2](https://huggingface.co/Lightricks/LTX-2) diperkenalkan oleh Lightricks.

Model dapat dimuat dengan potongan kode berikut.

```python
from diffusers import AutoencoderKLLTX2Video

vae = AutoencoderKLLTX2Video.from_pretrained("Lightricks/LTX-2", subfolder="vae", dtype=torch.float32).to("cuda")  # or "mps", "xpu", "cpu"
```

## AutoencoderKLLTX2Video[[diffusers.AutoencoderKLLTX2Video]]

#### diffusers.AutoencoderKLLTX2Video[[diffusers.AutoencoderKLLTX2Video]]

```python
diffusers.AutoencoderKLLTX2Video(in_channels: int = 3, out_channels: int = 3, latent_channels: int = 128, block_out_channels: tuple = (256, 512, 1024, 2048), down_block_types: tuple = ('LTX2VideoDownBlock3D', 'LTX2VideoDownBlock3D', 'LTX2VideoDownBlock3D', 'LTX2VideoDownBlock3D'), decoder_block_out_channels: tuple = (256, 512, 1024), layers_per_block: tuple = (4, 6, 6, 2, 2), decoder_layers_per_block: tuple = (5, 5, 5, 5), spatio_temporal_scaling: bool | tuple[bool, ...] = (True, True, True, True), decoder_spatio_temporal_scaling: bool | tuple[bool, ...] = (True, True, True), decoder_inject_noise: bool | tuple[bool, ...] = (False, False, False, False), downsample_type: tuple = ('spatial', 'temporal', 'spatiotemporal', 'spatiotemporal'), upsample_type: tuple = ('spatiotemporal', 'spatiotemporal', 'spatiotemporal'), upsample_residual: bool | tuple[bool, ...] = (True, True, True), upsample_factor: tuple = (2, 2, 2), timestep_conditioning: bool = False, patch_size: int = 4, patch_size_t: int = 1, resnet_norm_eps: float = 1e-06, scaling_factor: float = 1.0, encoder_causal: bool = True, decoder_causal: bool = True, encoder_spatial_padding_mode: str = 'zeros', decoder_spatial_padding_mode: str = 'reflect', spatial_compression_ratio: int = None, temporal_compression_ratio: int = None)
```

[Sumber](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/autoencoders/autoencoder_kl_ltx2.py#L1025)

**Parameter:**

in_channels (`int`, defaultnya `3`) : Jumlah saluran input.

out_channels (`int`, defaultnya `3`) : Jumlah saluran output.

latent_channels (`int`, defaultnya `128`) : Jumlah kanal laten.

block_out_channels (`tuple[int, ...]`, defaultnya `(128, 256, 512, 512)`) : Jumlah kanal output untuk setiap blok.

spatio_temporal_scaling (`tuple[bool, ...], defaults to `(True, True, True, False)` : Apakah sebuah blok harus mengandung spatio-temporal downscaling atau tidak.

layers_per_block (`tuple[int, ...]`, defaultnya `(4, 3, 3, 3, 4)`) : Jumlah lapisan per blok.

patch_size (`int`, defaultnya `4`) : Ukuran patch spasial.

patch_size_t (`int`, defaultnya `1`) : Ukuran patch temporal.

resnet_norm_eps (`float`, defaultnya `1e-6`) : Nilai epsilon untuk lapisan normalisasi ResNet.

scaling_factor (`float`, *opsional*, defaultnya `1.0`) : Deviasi standar per komponen dari ruang laten yang dilatih, dihitung menggunakan batch pertama dari set pelatihan. Ini digunakan untuk menskalakan ruang laten agar memiliki varians satuan saat melatih model difusi. Laten diskalakan dengan rumus `z = z * scaling_factor` sebelum diteruskan ke model difusi. Saat decoding, laten diskalakan kembali ke skala aslinya dengan rumus: `z = 1 / scaling_factor * z`. Untuk detail lebih lanjut, lihat bagian 4.3.2 dan D.1 dari paper [High-Resolution Image Synthesis with Latent Diffusion Models](https://huggingface.co/papers/2112.10752).

encoder_causal (`bool`, defaultnya `True`) : Apakah encoder harus berperilaku secara kausal (frame masa depan hanya bergantung pada frame masa lalu) atau tidak.

decoder_causal (`bool`, defaultnya `False`) : Apakah decoder harus berperilaku secara kausal (frame masa depan hanya bergantung pada frame masa lalu) atau tidak.

Model VAE dengan kerugian KL untuk mengkodekan gambar menjadi latens dan mendekodekan representasi latens menjadi gambar. Digunakan dalam [LTX-2](https://huggingface.co/Lightricks/LTX-2).

Model ini mewarisi dari [ModelMixin](/docs/diffusers/main/id/api/models/overview#diffusers.ModelMixin). Periksa dokumentasi kelas induk untuk metode generiknya yang diimplementasikan untuk semua model (seperti mengunduh atau menyimpan).

#### decode[[diffusers.AutoencoderKLLTX2Video.decode]]

```python
decode(z: Tensor, temb: typing.Optional[torch.Tensor] = None, causal: bool | None = None, return_dict: bool = True)
```

[Sumber](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/autoencoders/autoencoder_kl_ltx2.py#L1291)

**Parameter:**

z (`torch.Tensor`) : Batch input dari vektor laten.

return_dict (`bool`, *opsional*, defaultnya `True`) : Apakah akan mengembalikan `~models.vae.DecoderOutput` alih-alih tuple biasa.

**Mengembalikan:** `~models.vae.DecoderOutput` atau `tuple`

Jika return_dict adalah True, sebuah `~models.vae.DecoderOutput` dikembalikan, selain itu sebuah `tuple` biasa dikembalikan.

Decode sekelompok gambar.

#### encode[[diffusers.AutoencoderKLLTX2Video.encode]]

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

[Sumber](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/autoencoders/autoencoder_kl_ltx2.py#L1239)

**Parameter:**

x (`torch.Tensor`) : Batch input gambar.

return_dict (`bool`, *opsional*, defaultnya `True`) : Apakah akan mengembalikan `~models.autoencoder_kl.AutoencoderKLOutput` alih-alih tuple biasa.

**Mengembalikan:**

Representasi laten dari video yang dikodekan. Jika `return_dict` bernilai True, sebuah `~models.autoencoder_kl.AutoencoderKLOutput` dikembalikan, selain itu sebuah `tuple` polos yang dikembalikan.

Enkodekan batch gambar menjadi latents.

#### enable_tiling[[diffusers.AutoencoderKLLTX2Video.enable_tiling]]

```python
enable_tiling(tile_sample_min_height: int | None = None, tile_sample_min_width: int | None = None, tile_sample_min_num_frames: int | None = None, tile_sample_stride_height: float | None = None, tile_sample_stride_width: float | None = None, tile_sample_stride_num_frames: float | None = None)
```

[Sumber](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/autoencoders/autoencoder_kl_ltx2.py#L1192)

**Parameter:**

tile_sample_min_height (`int`, *opsional*) : Tinggi minimum yang diperlukan agar sampel dipisahkan menjadi ubin di sepanjang dimensi tinggi.

tile_sample_min_width (`int`, *opsional*) : Lebar minimum yang diperlukan agar sampel dipisahkan menjadi ubin di sepanjang dimensi lebar.

tile_sample_stride_height (`int`, *opsional*) : Jumlah minimum tumpang tindih antara dua ubin vertikal yang berurutan. Hal ini untuk memastikan tidak ada artefak penataan ubin yang dihasilkan di sepanjang dimensi tinggi.

tile_sample_stride_width (`int`, *opsional*) : Jarak (stride) antara dua tile horizontal yang berurutan. Hal ini untuk memastikan tidak ada artefak tiling yang dihasilkan di sepanjang dimensi lebar.

Aktifkan decoding VAE bertile. Ketika opsi ini diaktifkan, VAE akan membagi tensor input menjadi beberapa tile untuk menghitung decoding dan encoding dalam beberapa langkah. Hal ini berguna untuk menghemat memori dalam jumlah besar dan memungkinkan pemrosesan gambar yang lebih besar.

#### forward[[diffusers.AutoencoderKLLTX2Video.forward]]

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

[Sumber](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/autoencoders/autoencoder_kl_ltx2.py#L1535)

**Parameter:**

sample (`torch.Tensor`) : Sampel input.

temb (`torch.Tensor`, *opsional*) : Tensor embedding timestep opsional yang digunakan untuk mengondisikan decoder.

sample_posterior (`bool`, *opsional*, defaultnya `False`) : Apakah akan melakukan sampling dari posterior.

encoder_causal (`bool`, *opsional*) : Apakah encoder harus menggunakan konvolusi kausal. Jika `None`, kembali ke default model.

decoder_causal (`bool`, *opsional*) : Apakah decoder harus menggunakan konvolusi kausal. Jika `None`, kembali ke default model.

return_dict (`bool`, *opsional*, defaultnya `True`) : Apakah akan mengembalikan `DecoderOutput` alih-alih tuple biasa.

generator (`torch.Generator`, *opsional*) : Sebuah [`torch.Generator`](https://pytorch.org/docs/stable/generated/torch.Generator.html) untuk membuat sampling menjadi deterministik.

**Mengembalikan:** `~models.vae.DecoderOutput` atau `tuple`

Jika `return_dict` bernilai True, sebuah `~models.vae.DecoderOutput` akan dikembalikan, selain itu sebuah `tuple` biasa akan dikembalikan.

#### tiled_decode[[diffusers.AutoencoderKLLTX2Video.tiled_decode]]

```python
tiled_decode(z: Tensor, temb: typing.Optional[torch.Tensor], causal: bool | None = None, return_dict: bool = True)
```

[Sumber](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/autoencoders/autoencoder_kl_ltx2.py#L1405)

**Parameter:**

z (`torch.Tensor`) : Batch input dari vektor laten.

return_dict (`bool`, *opsional*, defaultnya `True`) : Apakah akan mengembalikan `~models.vae.DecoderOutput` alih-alih tuple biasa.

**Mengembalikan:** `~models.vae.DecoderOutput` atau `tuple`

Jika return_dict adalah True, sebuah `~models.vae.DecoderOutput` dikembalikan, selain itu sebuah `tuple` biasa dikembalikan.

Decode batch gambar menggunakan decoder bertile.

#### tiled_encode[[diffusers.AutoencoderKLLTX2Video.tiled_encode]]

```python
tiled_encode(x: Tensor, causal: bool | None = None)
```

[Sumber](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/autoencoders/autoencoder_kl_ltx2.py#L1353)

**Parameter:**

x (`torch.Tensor`) : Batch input video.

**Mengembalikan:** `torch.Tensor`

Representasi laten dari video yang dikodekan.

Enkodekan batch gambar menggunakan encoder bertile.

