Diffusers documentation
AutoencoderKLLTXVideo
AutoencoderKLLTXVideo
Модель трёхмерного вариационного автоэнкодера (VAE) с потерей KL, используемая в LTX, была представлена компанией Lightricks.
Модель можно загрузить с помощью следующего фрагмента кода.
from diffusers import AutoencoderKLLTXVideo
vae = AutoencoderKLLTXVideo.from_pretrained("Lightricks/LTX-Video", subfolder="vae", dtype=torch.float32).to("cuda") # or "mps", "xpu", "cpu"AutoencoderKLLTXVideo
класс diffusers.AutoencoderKLLTXVideo
< source >( in_channels: int = 3out_channels: int = 3latent_channels: int = 128block_out_channels: tuple = (128, 256, 512, 512)down_block_types: tuple = ('LTXVideoDownBlock3D', 'LTXVideoDownBlock3D', 'LTXVideoDownBlock3D', 'LTXVideoDownBlock3D')decoder_block_out_channels: tuple = (128, 256, 512, 512)layers_per_block: tuple = (4, 3, 3, 3, 4)decoder_layers_per_block: tuple = (4, 3, 3, 3, 4)spatio_temporal_scaling: tuple = (True, True, True, False)decoder_spatio_temporal_scaling: tuple = (True, True, True, False)decoder_inject_noise: tuple = (False, False, False, False, False)downsample_type: tuple = ('conv', 'conv', 'conv', 'conv')upsample_residual: tuple = (False, False, False, False)upsample_factor: tuple = (1, 1, 1, 1)timestep_conditioning: bool = Falsepatch_size: int = 4patch_size_t: int = 1resnet_norm_eps: float = 1e-06scaling_factor: float = 1.0encoder_causal: bool = Truedecoder_causal: bool = Falsespatial_compression_ratio: int = Nonetemporal_compression_ratio: int = None )
Параметры
- in_channels (
int, по умолчанию3) — Количество входных каналов. - out_channels (
int, по умолчанию3) — Количество выходных каналов. - latent_channels (
int, по умолчанию128) — Количество латентных каналов. - block_out_channels (
tuple[int, ...], по умолчанию(128, 256, 512, 512)) — Количество выходных каналов для каждого блока. - spatio_temporal_scaling (
tuple[bool, ...], defaults to(True, True, True, False)` — Определяет, должен ли блок содержать пространственно-временное уменьшение разрешения. - layers_per_block (
tuple[int, ...], по умолчанию(4, 3, 3, 3, 4)) — Количество слоёв в каждом блоке. - patch_size (
int, по умолчанию4) — Размер пространственных патчей. - patch_size_t (
int, по умолчанию1) — Размер временных патчей. - resnet_norm_eps (
float, по умолчанию1e-6) — Значение эпсилона для слоёв нормализации ResNet. - scaling_factor (
float, необязательный, по умолчанию1.0) — Послекомпонентное стандартное отклонение обученного латентного пространства, вычисленное на основе первой партии (батча) обучающей выборки. Эта величина используется для масштабирования латентного пространства до единичной дисперсии при обучении диффузионной модели. Перед передачей в диффузионную модель латенты масштабируются по формулеz = z * scaling_factor. При декодировании латенты возвращаются к исходному масштабу по формуле:z = 1 / scaling_factor * z. Дополнительные сведения см. в разделах 4.3.2 и D.1 статьи High-Resolution Image Synthesis with Latent Diffusion Models. - encoder_causal (
bool, по умолчаниюTrue) — Определяет, должен ли энкодер работать в каузальном режиме (будущие кадры зависят только от прошлых) или нет. - decoder_causal (
bool, по умолчаниюFalse) — Определяет, должен ли декодер работать в каузальном режиме (будущие кадры зависят только от прошлых) или нет.
Модель VAE с потерей KL для кодирования изображений в латенты и декодирования латентных представлений в изображения. Используется в LTX.
Эта модель наследуется от ModelMixin. См. документацию суперкласса для его универсальных методов, реализованных для всех моделей (например, загрузка или сохранение).
decode
< source >( z: Tensortemb: typing.Optional[torch.Tensor] = Nonereturn_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_sample_min_num_frames: int | None = Nonetile_sample_stride_height: float | None = Nonetile_sample_stride_width: float | None = Nonetile_sample_stride_num_frames: float | None = None )
Параметры
- tile_sample_min_height (
int, необязательный) — Минимальная высота, необходимая для того, чтобы образец был разделён на плитки по размерности высоты. - tile_sample_min_width (
int, необязательный) — Минимальная ширина, необходимая для того, чтобы образец был разделён на плитки по размерности ширины. - tile_sample_stride_height (
int, необязательный) — Минимальное перекрытие между двумя последовательными вертикальными тайлами. Это обеспечивает отсутствие артефактов тайлинга вдоль вертикальной оси. - tile_sample_stride_width (
int, необязательный) — Шаг между двумя соседними горизонтальными тайлами. Это обеспечивает отсутствие артефактов тайлинга вдоль ширины.
Включает тайловое декодирование VAE. При включении этого параметра VAE разбивает входной тензор на тайлы, чтобы выполнять декодирование и кодирование в несколько шагов. Это полезно для экономии значительного количества памяти и для обработки изображений большего размера.
forward
< source >( sample: Tensortemb: typing.Optional[torch.Tensor] = Nonesample_posterior: bool = Falsereturn_dict: bool = Truegenerator: typing.Optional[torch.Generator] = None ) → ~models.vae.DecoderOutput or tuple
Параметры
- sample (
torch.Tensor) — Входной образец. - temb (
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: Tensortemb: typing.Optional[torch.Tensor]return_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
Кодирует пакет изображений с использованием тайлованного энкодера.
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 )
Результат метода декодирования.