# AutoencoderOobleck

Модель вариационного автоэнкодера (VAE) Oobleck с потерей KL была представлена в [Stability-AI/stable-audio-tools](https://github.com/Stability-AI/stable-audio-tools) и [Stable Audio Open](https://huggingface.co/papers/2407.14358) от Stability AI. Эта модель используется в 🤗 Diffusers для кодирования аудиосигналов в латентные представления и декодирования латентных представлений в аудиосигналы.

Аннотация из статьи:

*Open generative models are vitally important for the community, allowing for fine-tunes and serving as baselines when presenting new models. However, most current text-to-audio models are private and not accessible for artists and researchers to build upon. Here we describe the architecture and training process of a new open-weights text-to-audio model trained with Creative Commons data. Our evaluation shows that the model's performance is competitive with the state-of-the-art across various metrics. Notably, the reported FDopenl3 results (measuring the realism of the generations) showcase its potential for high-quality stereo sound synthesis at 44.1kHz.*

## AutoencoderOobleck[[diffusers.AutoencoderOobleck]]

#### diffusers.AutoencoderOobleck[[diffusers.AutoencoderOobleck]]

```python
diffusers.AutoencoderOobleck(encoder_hidden_size = 128, downsampling_ratios = [2, 4, 4, 8, 8], channel_multiples = [1, 2, 4, 8, 16], decoder_channels = 128, decoder_input_channels = 64, audio_channels = 2, sampling_rate = 44100)
```

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

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

encoder_hidden_size (`int`, *optional*, по умолчанию 128) : Размерность промежуточного представления для кодировщика.

downsampling_ratios (`list[int]`, *необязательный*, по умолчанию `[2, 4, 4, 8, 8]`) : Коэффициенты уменьшения разрешения в кодере. В декодере они используются в обратном порядке для увеличения разрешения.

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

decoder_channels (`int`, *optional*, по умолчанию 128) : Размерность промежуточного представления для декодера.

decoder_input_channels (`int`, *optional*, по умолчанию 64) : Входное измерение для декодера. Соответствует латентному измерению.

audio_channels (`int`, *optional*, по умолчанию 2) : Количество каналов в аудиоданных. 1 для моно или 2 для стерео.

sampling_rate (`int`, *optional*, по умолчанию 44100) : Частота дискретизации, с которой аудиосигнал должен быть оцифрован, выраженная в герцах (Гц).

Автоэнкодер для кодирования волновых форм в латентные представления и декодирования латентных представлений в волновые формы. Впервые представлен в Stable Audio.

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

#### decode[[diffusers.AutoencoderOobleck.decode]]

```python
decode(z: FloatTensor, return_dict: bool = True, generator = None)
```

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

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

z (`torch.Tensor`) : Входная партия латентных векторов.

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

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

If return_dict is True, a `~models.vae.OobleckDecoderOutput` is returned, otherwise a plain `tuple` is returned.

Декодировать пакет изображений.

#### encode[[diffusers.AutoencoderOobleck.encode]]

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

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

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

x (`torch.Tensor`) : Входная партия изображений.

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

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

Латентные представления закодированных изображений. Если `return_dict` равно True, возвращается `~models.autoencoder_kl.AutoencoderKLOutput`, в противном случае возвращается обычный `tuple`.

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

#### forward[[diffusers.AutoencoderOobleck.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_oobleck.py#L517)

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

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

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

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

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

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

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

## OobleckDecoderOutput[[diffusers.models.autoencoders.autoencoder_oobleck.OobleckDecoderOutput]]

#### diffusers.models.autoencoders.autoencoder_oobleck.OobleckDecoderOutput[[diffusers.models.autoencoders.autoencoder_oobleck.OobleckDecoderOutput]]

```python
diffusers.models.autoencoders.autoencoder_oobleck.OobleckDecoderOutput(sample: Tensor)
```

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

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

sample (`torch.Tensor` формы `(batch_size, audio_channels, sequence_length)`) : Декодированный выходной образец из последнего слоя модели.

Результат метода декодирования.

## AutoencoderOobleckOutput[[diffusers.models.autoencoders.autoencoder_oobleck.AutoencoderOobleckOutput]]

#### diffusers.models.autoencoders.autoencoder_oobleck.AutoencoderOobleckOutput[[diffusers.models.autoencoders.autoencoder_oobleck.AutoencoderOobleckOutput]]

```python
diffusers.models.autoencoders.autoencoder_oobleck.AutoencoderOobleckOutput(latent_dist: OobleckDiagonalGaussianDistribution)
```

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

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

latent_dist (`OobleckDiagonalGaussianDistribution`) : Закодированные выходные данные `Encoder`, представленные в виде среднего значения и стандартного отклонения `OobleckDiagonalGaussianDistribution`. `OobleckDiagonalGaussianDistribution` позволяет извлекать латентные переменные из этого распределения.

Результат метода кодирования AutoencoderOobleck.

