Buckets:

hf-doc-build/doc / diffusers /v0.43.0 /ru /api /models /consistency_decoder_vae.md
mishig's picture
|
download
raw
8.56 kB
# Декодер согласованности
Consistency decoder можно использовать для декодирования латентов из денезинг-UNet в [StableDiffusionPipeline](/docs/diffusers/v0.43.0/ru/api/pipelines/stable_diffusion/text2img#diffusers.StableDiffusionPipeline). Этот декодер был представлен в [техническом отчёте DALL-E 3](https://openai.com/dall-e-3).
Исходный код можно найти в [openai/consistencydecoder](https://github.com/openai/consistencydecoder).
> [!WARNING]
> В настоящее время инференс поддерживается только для 2 итераций.
Пайплайн не мог бы быть добавлен без помощи [madebyollin](https://github.com/madebyollin) и [mrsteyk](https://github.com/mrsteyk) из [этого вопроса](https://github.com/openai/consistencydecoder/issues/1).
## ConsistencyDecoderVAE[[diffusers.ConsistencyDecoderVAE]]
#### diffusers.ConsistencyDecoderVAE[[diffusers.ConsistencyDecoderVAE]]
```python
diffusers.ConsistencyDecoderVAE(scaling_factor: float = 0.18215, latent_channels: int = 4, sample_size: int = 32, encoder_act_fn: str = 'silu', encoder_block_out_channels: tuple[int, ...] = (128, 256, 512, 512), encoder_double_z: bool = True, encoder_down_block_types: tuple[str, ...] = ('DownEncoderBlock2D', 'DownEncoderBlock2D', 'DownEncoderBlock2D', 'DownEncoderBlock2D'), encoder_in_channels: int = 3, encoder_layers_per_block: int = 2, encoder_norm_num_groups: int = 32, encoder_out_channels: int = 4, decoder_add_attention: bool = False, decoder_block_out_channels: tuple[int, ...] = (320, 640, 1024, 1024), decoder_down_block_types: tuple[str, ...] = ('ResnetDownsampleBlock2D', 'ResnetDownsampleBlock2D', 'ResnetDownsampleBlock2D', 'ResnetDownsampleBlock2D'), decoder_downsample_padding: int = 1, decoder_in_channels: int = 7, decoder_layers_per_block: int = 3, decoder_norm_eps: float = 1e-05, decoder_norm_num_groups: int = 32, decoder_num_train_timesteps: int = 1024, decoder_out_channels: int = 6, decoder_resnet_time_scale_shift: str = 'scale_shift', decoder_time_embedding_type: str = 'learned', decoder_up_block_types: tuple[str, ...] = ('ResnetUpsampleBlock2D', 'ResnetUpsampleBlock2D', 'ResnetUpsampleBlock2D', 'ResnetUpsampleBlock2D'))
```
[Источник](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/models/autoencoders/consistency_decoder_vae.py#L51)
Декодер согласованности, используемый с DALL-E 3.
Примеры:
```py
>>> import torch
>>> from diffusers import StableDiffusionPipeline, ConsistencyDecoderVAE
>>> vae = ConsistencyDecoderVAE.from_pretrained("openai/consistency-decoder", torch_dtype=torch.float16)
>>> pipe = StableDiffusionPipeline.from_pretrained(
... "stable-diffusion-v1-5/stable-diffusion-v1-5", vae=vae, torch_dtype=torch.float16
... ).to("cuda")
>>> image = pipe("horse", generator=torch.manual_seed(0)).images[0]
>>> image
```
#### decode[[diffusers.ConsistencyDecoderVAE.decode]]
```python
decode(z: Tensor, generator: typing.Optional[torch.Generator] = None, return_dict: bool = True, num_inference_steps: int = 2)
```
[Источник](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/models/autoencoders/consistency_decoder_vae.py#L220)
**Параметры:**
z (torch.Tensor) : Входной латентный вектор.
generator (torch.Generator | None) : Генератор случайных чисел. По умолчанию — None.
return_dict (bool) : Указывает, следует ли возвращать результат в виде словаря. По умолчанию True.
num_inference_steps (int) : Количество шагов инференса. По умолчанию — 2.
**Возвращает:** DecoderOutput | tuple[torch.Tensor]
Раскодированный вывод.
Декодирует входной латентный вектор `z` с помощью модели VAE consistency decoder.
#### encode[[diffusers.ConsistencyDecoderVAE.encode]]
```python
encode(x: Tensor, return_dict: bool = True)
```
[Источник](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/models/autoencoders/consistency_decoder_vae.py#L185)
**Параметры:**
x (`torch.Tensor`) : Входная партия изображений.
return_dict (`bool`, *необязательный*, по умолчанию `True`) : Возвращать ли `ConsistencyDecoderVAEOutput` вместо обычного кортежа.
**Возвращает:**
Латентные представления закодированных изображений. Если `return_dict` равно True, возвращается `ConsistencyDecoderVAEOutput`, в противном случае возвращается обычный `tuple`.
Кодирует пакет изображений в латенты.
#### forward[[diffusers.ConsistencyDecoderVAE.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/v0.43.0/src/diffusers/models/autoencoders/consistency_decoder_vae.py#L336)
**Параметры:**
sample (`torch.Tensor`) : Входящий образец.
sample_posterior (`bool`, *необязательный*, по умолчанию `False`) : Флаг, определяющий, следует ли выполнять выборку из апостериорного распределения.
return_dict (`bool`, *необязательный*, по умолчанию `True`) : Возвращать ли `DecoderOutput` вместо обычного кортежа.
generator (`torch.Generator`, *необязательный*, по умолчанию `None`) : Генератор, используемый для выборки.
**Возвращает:** `DecoderOutput` или `tuple`
If return_dict is True, a `DecoderOutput` is returned, otherwise a plain `tuple` is returned.
#### set_default_attn_processor[[diffusers.ConsistencyDecoderVAE.set_default_attn_processor]]
```python
set_default_attn_processor()
```
[Источник](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/models/autoencoders/consistency_decoder_vae.py#L170)
Отключает пользовательские обработчики внимания и устанавливает реализацию внимания по умолчанию.
#### tiled_encode[[diffusers.ConsistencyDecoderVAE.tiled_encode]]
```python
tiled_encode(x: Tensor, return_dict: bool = True)
```
[Источник](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/models/autoencoders/consistency_decoder_vae.py#L281)
**Параметры:**
x (`torch.Tensor`) : Входная партия изображений.
return_dict (`bool`, *необязательный*, по умолчанию `True`) : Возвращать ли `ConsistencyDecoderVAEOutput` вместо обычного кортежа.
**Возвращает:** `ConsistencyDecoderVAEOutput` или `tuple`
If return_dict is True, a `ConsistencyDecoderVAEOutput` is returned, otherwise a plain `tuple` is returned.
Кодирует пакет изображений с использованием тайлованного энкодера.
Когда эта опция включена, VAE разбивает входной тензор на тайлы, чтобы вычислить кодирование за несколько шагов. Это полезно для поддержания постоянного потребления памяти независимо от размера изображения. Итоговый результат тайлового кодирования отличается от нетайлового, поскольку каждый тайл использует отдельный энкодер. Чтобы избежать артефактов на границах тайлов, они перекрываются и смешиваются для формирования плавного вывода. Вы всё ещё можете заметить изменения в выводе размером с тайл, но они должны быть значительно менее заметными.

Xet Storage Details

Size:
8.56 kB
·
Xet hash:
fdd7113f0fb23d25f1e1cc5b589a8894f0384802fc3b910fca1de6f7cbb29d4b

Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.