# AutoencoderKLKVAEVideo

Модель трёхмерного вариационного автоэнкодера (VAE) с потерей KL.

Модель можно загрузить с помощью следующего фрагмента кода.

```python
import torch
from diffusers import AutoencoderKLKVAEVideo

vae = AutoencoderKLKVAEVideo.from_pretrained("kandinskylab/KVAE-3D-1.0", subfolder="diffusers", dtype=torch.float16)
```

## AutoencoderKLKVAEVideo[[diffusers.AutoencoderKLKVAEVideo]]

#### diffusers.AutoencoderKLKVAEVideo[[diffusers.AutoencoderKLKVAEVideo]]

```python
diffusers.AutoencoderKLKVAEVideo(ch: int = 128, ch_mult: typing.Tuple[int, ...] = (1, 2, 4, 8), num_res_blocks: int = 2, in_channels: int = 3, out_ch: int = 3, z_channels: int = 16, temporal_compress_times: int = 4)
```

[Источник](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/autoencoders/autoencoder_kl_kvae_video.py#L707)

**Параметры:**

ch (`int`, *необязательный*, по умолчанию 128) : Базовое количество каналов.

ch_mult (`Tuple[int]`, *необязательный*, по умолчанию `(1, 2, 4, 8)`) : Множители каналов для каждого уровня.

num_res_blocks (`int`, *необязательный*, по умолчанию 2) : Количество остаточных блоков на каждом уровне.

in_channels (`int`, *необязательный*, по умолчанию 3) : Количество входных каналов.

out_ch (`int`, *необязательный*, по умолчанию 3) : Количество выходных каналов.

z_channels (`int`, *optional*, по умолчанию 16) : Количество латентных каналов.

temporal_compress_times (`int`, *optional*, по умолчанию 4) : Коэффициент временного сжатия.

Модель VAE с потерей KL для кодирования видео в латенты и декодирования латентных представлений в видео. Используется в [KVAE](https://github.com/kandinskylab/kvae-1).

Эта модель наследуется от [ModelMixin](/docs/diffusers/main/ru/api/models/overview#diffusers.ModelMixin). Общую документацию по методам, реализованным для всех моделей (например, загрузка или сохранение), см. в документации суперкласса.

#### decode[[diffusers.AutoencoderKLKVAEVideo.decode]]

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

[Источник](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/autoencoders/autoencoder_kl_kvae_video.py#L915)

**Параметры:**

z (`torch.Tensor`) : Входная партия латентных векторов с формой (B, C, T, H, W).

return_dict (`bool`, *необязательный*, по умолчанию `True`) : Возвращать ли `~models.vae.DecoderOutput` вместо обычного кортежа.

**Возвращает:** `~models.vae.DecoderOutput` или `tuple`

Декодированное видео.

Декодирование пакета видео.

#### disable_slicing[[diffusers.AutoencoderKLKVAEVideo.disable_slicing]]

```python
disable_slicing()
```

[Источник](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/autoencoders/autoencoder_kl_kvae_video.py#L844)

Отключите декодирование срезанного VAE.

#### enable_slicing[[diffusers.AutoencoderKLKVAEVideo.enable_slicing]]

```python
enable_slicing()
```

[Источник](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/autoencoders/autoencoder_kl_kvae_video.py#L840)

Включите декодирование VAE по срезам.

#### encode[[diffusers.AutoencoderKLKVAEVideo.encode]]

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

[Источник](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/autoencoders/autoencoder_kl_kvae_video.py#L867)

**Параметры:**

x (`torch.Tensor`) : Входная партия видео с формой (B, C, T, H, W).

return_dict (`bool`, *необязательный*, по умолчанию `True`) : Возвращать ли `~models.autoencoder_kl.AutoencoderKLOutput` вместо обычного кортежа.

**Возвращает:**

Латентные представления закодированных видео.

Кодирует пакет видео в латенты.

#### forward[[diffusers.AutoencoderKLKVAEVideo.forward]]

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

[Источник](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/autoencoders/autoencoder_kl_kvae_video.py#L938)

**Параметры:**

sample (`torch.Tensor`) : Входящий образец.

sample_posterior (`bool`, *необязательный*, по умолчанию `False`) : Флаг, определяющий, следует ли выполнять выборку из апостериорного распределения.

return_dict (`bool`, *необязательный*, по умолчанию `True`) : Возвращать ли `DecoderOutput` вместо обычного кортежа.

generator (`torch.Generator`, *необязательный*) : [`torch.Generator`](https://pytorch.org/docs/stable/generated/torch.Generator.html) для обеспечения детерминированности выборки.

**Возвращает:** `~models.vae.DecoderOutput` или `tuple`

Если `return_dict` равно True, возвращается `~models.vae.DecoderOutput`, иначе возвращается обычный `tuple`.

