Buckets:
| # Декодер согласованности | |
| 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.