Diffusers documentation
AutoencoderKLCogVideoX
AutoencoderKLCogVideoX
The 3D variational autoencoder (VAE) model with KL loss used in CogVideoX was introduced in CogVideoX: Text-to-Video Diffusion Models with An Expert Transformer by Tsinghua University & ZhipuAI.
Модель можно загрузить с помощью следующего фрагмента кода.
from diffusers import AutoencoderKLCogVideoX
vae = AutoencoderKLCogVideoX.from_pretrained("THUDM/CogVideoX-2b", subfolder="vae", dtype=torch.float16).to("cuda") # or "mps", "xpu", "cpu"AutoencoderKLCogVideoX
класс diffusers.AutoencoderKLCogVideoX
< source >( in_channels: int = 3out_channels: int = 3down_block_types: tuple = ('CogVideoXDownBlock3D', 'CogVideoXDownBlock3D', 'CogVideoXDownBlock3D', 'CogVideoXDownBlock3D')up_block_types: tuple = ('CogVideoXUpBlock3D', 'CogVideoXUpBlock3D', 'CogVideoXUpBlock3D', 'CogVideoXUpBlock3D')block_out_channels: tuple = (128, 256, 256, 512)latent_channels: int = 16layers_per_block: int = 3act_fn: str = 'silu'norm_eps: float = 1e-06norm_num_groups: int = 32temporal_compression_ratio: float = 4sample_height: int = 480sample_width: int = 720scaling_factor: float = 1.15258426shift_factor: float | None = Nonelatents_mean: tuple[float] | None = Nonelatents_std: tuple[float] | None = Noneforce_upcast: float = Trueuse_quant_conv: bool = Falseuse_post_quant_conv: bool = Falseinvert_scale_latents: bool = False )
Параметры
- in_channels (int, необязательный, по умолчанию 3) — Количество каналов во входном изображении.
- out_channels (int, необязательный, по умолчанию 3) — Количество каналов на выходе.
- down_block_types (
tuple[str], необязательный, по умолчанию("DownEncoderBlock2D",)) — кортеж типов блоков даунсемплинга. - up_block_types (
tuple[str], необязательный, по умолчанию("UpDecoderBlock2D",)) — кортеж типов блоков апсемплинга. - block_out_channels (
tuple[int], необязательный, по умолчанию(64,)) — кортеж количества выходных каналов блоков. - act_fn (
str, необязательный, по умолчанию"silu") — Функция активации, которую следует использовать. - sample_size (
int, необязательный, по умолчанию32) — Размер выборки входных данных. - scaling_factor (
float, необязательный, по умолчанию1.15258426) — Послекомпонентное стандартное отклонение обученного латентного пространства, вычисленное на основе первой партии (батча) обучающей выборки. Эта величина используется для масштабирования латентного пространства до единичной дисперсии при обучении диффузионной модели. Перед передачей в диффузионную модель латенты масштабируются по формулеz = z * scaling_factor. При декодировании латенты возвращаются к исходному масштабу по формуле:z = 1 / scaling_factor * z. Дополнительные сведения см. в разделах 4.3.2 и D.1 статьи High-Resolution Image Synthesis with Latent Diffusion Models. - force_upcast (
bool, необязательный, по умолчаниюTrue) — Если включено, принудительно заставляет VAE работать в float32 для пайплайнов с высоким разрешением изображений, таких как SD-XL. VAE можно дообучить / обучить для более низкого диапазона без значительной потери точности, в этом случаеforce_upcastможно установить вFalse— см.: https://huggingface.co/madebyollin/sdxl-vae-fp16-fix
Модель VAE с потерей KL для кодирования изображений в латенты и декодирования латентных представлений в изображения. Используется в CogVideoX.
Эта модель наследуется от ModelMixin. См. документацию суперкласса для его универсальных методов, реализованных для всех моделей (например, загрузка или сохранение).
decode
< source >( z: Tensorreturn_dict: bool = True ) → ~models.vae.DecoderOutput or tuple
Параметры
- z (
torch.Tensor) — Входная партия латентных векторов. - return_dict (
bool, необязательный, по умолчаниюTrue) — Определяет, следует ли возвращать~models.vae.DecoderOutputвместо обычного кортежа.
Возвращает
~models.vae.DecoderOutput или tuple
Если return_dict равно True, возвращается ~models.vae.DecoderOutput, иначе возвращается обычный tuple.
Декодировать пакет изображений.
encode
< source >( x: Tensorreturn_dict: bool = True )
Кодирует пакет изображений в латенты.
enable_tiling
< source >( tile_sample_min_height: int | None = Nonetile_sample_min_width: int | None = Nonetile_overlap_factor_height: float | None = Nonetile_overlap_factor_width: float | None = None )
Параметры
- tile_sample_min_height (
int, необязательный) — Минимальная высота, необходимая для того, чтобы образец был разделён на плитки по размерности высоты. - tile_sample_min_width (
int, необязательный) — Минимальная ширина, необходимая для того, чтобы образец был разделён на плитки по размерности ширины. - tile_overlap_factor_height (
int, необязательный) — Минимальная величина перекрытия между двумя последовательными вертикальными тайлами. Это обеспечивает отсутствие артефактов тайлинга вдоль вертикальной оси. Значение должно находиться в диапазоне от 0 до 1. Установка более высокого значения может привести к обработке большего количества тайлов и замедлению процесса декодирования. - tile_overlap_factor_width (
int, необязательный) — Минимальная величина перекрытия между двумя соседними горизонтальными тайлами. Это необходимо для того, чтобы избежать артефактов тайлинга вдоль ширины. Значение должно находиться в диапазоне от 0 до 1. Установка более высокого значения может привести к обработке большего количества тайлов и замедлению процесса декодирования.
Включает тайловое декодирование VAE. При включении этого параметра VAE разбивает входной тензор на тайлы, чтобы выполнять декодирование и кодирование в несколько шагов. Это полезно для экономии значительного количества памяти и для обработки изображений большего размера.
forward
< source >( sample: Tensorsample_posterior: bool = Falsereturn_dict: bool = Truegenerator: typing.Optional[torch.Generator] = None ) → ~models.vae.DecoderOutput or tuple
Параметры
- sample (
torch.Tensor) — Входной образец. - sample_posterior (
bool, необязательный, по умолчаниюFalse) — Следует ли извлекать выборку из апостериорного распределения. - return_dict (
bool, необязательный, по умолчаниюTrue) — Определяет, следует ли возвращатьDecoderOutputвместо обычного кортежа. - generator (
torch.Generator, необязательный) —torch.Generatorдля обеспечения детерминированности выборки.
Возвращает
~models.vae.DecoderOutput или tuple
Если return_dict равно True, возвращается ~models.vae.DecoderOutput, в противном случае возвращается обычный tuple.
tiled_decode
< source >( z: Tensorreturn_dict: bool = True ) → ~models.vae.DecoderOutput or tuple
Параметры
- z (
torch.Tensor) — Входная партия латентных векторов. - return_dict (
bool, необязательный, по умолчаниюTrue) — Определяет, следует ли возвращать~models.vae.DecoderOutputвместо обычного кортежа.
Возвращает
~models.vae.DecoderOutput или tuple
Если return_dict равно True, возвращается ~models.vae.DecoderOutput, иначе возвращается обычный tuple.
Декодирование пакета изображений с использованием тайлованного декодера.
tiled_encode
< source >( x: Tensor ) → torch.Tensor
Кодирует пакет изображений с использованием тайлованного энкодера.
Когда эта опция включена, VAE разбивает входной тензор на плитки, чтобы вычислить кодирование за несколько шагов. Это полезно для поддержания постоянного использования памяти независимо от размера изображения. Итоговый результат плиточного кодирования отличается от неплиточного, поскольку каждая плитка использует свой собственный энкодер. Чтобы избежать артефактов на стыках плиток, они перекрываются и смешиваются для формирования плавного вывода. Вы всё ещё можете заметить изменения в выводе размером с плитку, но они должны быть значительно менее заметными.
AutoencoderKLOutput
класс diffusers.models.modeling_outputs.AutoencoderKLOutput
< source >( latent_dist: DiagonalGaussianDistribution )
Результат метода кодирования AutoencoderKL.
DecoderOutput
класс diffusers.models.autoencoders.vae.DecoderOutput
< source >( sample: Tensorcommit_loss: typing.Optional[torch.FloatTensor] = None )
Результат метода декодирования.