Diffusers documentation

AutoencoderKLAllegro

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v0.42.1).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

AutoencoderKLAllegro

Модель трёхмерного вариационного автоэнкодера (VAE) с потерей KL, использованная в Allegro, была представлена в работе Allegro: Open the Black Box of Commercial-Level Video Generation Model от RhymesAI.

Модель можно загрузить с помощью следующего фрагмента кода.

from diffusers import AutoencoderKLAllegro

vae = AutoencoderKLAllegro.from_pretrained("rhymes-ai/Allegro", subfolder="vae", dtype=torch.float32).to("cuda")  # or "mps", "xpu", "cpu"

AutoencoderKLAllegro

класс diffusers.AutoencoderKLAllegro

< >

( in_channels: int = 3out_channels: int = 3down_block_types: tuple = ('AllegroDownBlock3D', 'AllegroDownBlock3D', 'AllegroDownBlock3D', 'AllegroDownBlock3D')up_block_types: tuple = ('AllegroUpBlock3D', 'AllegroUpBlock3D', 'AllegroUpBlock3D', 'AllegroUpBlock3D')block_out_channels: tuple = (128, 256, 512, 512)temporal_downsample_blocks: tuple = (True, True, False, False)temporal_upsample_blocks: tuple = (False, True, True, False)latent_channels: int = 4layers_per_block: int = 2act_fn: str = 'silu'norm_num_groups: int = 32temporal_compression_ratio: float = 4sample_size: int = 320scaling_factor: float = 0.13force_upcast: bool = True )

Параметры

  • in_channels (int, по умолчанию 3) — Количество каналов во входном изображении.
  • out_channels (int, по умолчанию 3) — Количество каналов на выходе.
  • down_block_types (tuple[str, ...], по умолчанию ("AllegroDownBlock3D", "AllegroDownBlock3D", "AllegroDownBlock3D", "AllegroDownBlock3D")) — кортеж строк, указывающий, какие типы блоков понижения разрешения использовать.
  • up_block_types (tuple[str, ...], по умолчанию ("AllegroUpBlock3D", "AllegroUpBlock3D", "AllegroUpBlock3D", "AllegroUpBlock3D")) — кортеж строк, определяющий типы используемых блоков повышения разрешения.
  • block_out_channels (tuple[int, ...], по умолчанию (128, 256, 512, 512)) — кортеж целых чисел, задающий количество выходных каналов в каждом блоке.
  • temporal_downsample_blocks (tuple[bool, ...], по умолчанию (True, True, False, False)) — кортеж булевых значений, указывающих, в каких блоках включить временное понижение разрешения.
  • latent_channels (int, по умолчанию 4) — Количество каналов в латентах.
  • layers_per_block (int, по умолчанию 2) — Количество слоев resnet или attention или временной свёртки в каждом down/up-блоке.
  • act_fn (str, по умолчанию "silu") — Функция активации, которую следует использовать.
  • norm_num_groups (int, по умолчанию 32) — Количество групп, используемых в слоях нормализации.
  • temporal_compression_ratio (int, по умолчанию 4) — Коэффициент сжатия временного измерения образцов.
  • sample_size (int, по умолчанию 320) — Размер латентного пространства по умолчанию.
  • scaling_factor (float, по умолчанию 0.13235) — Послекомпонентное стандартное отклонение обученного латентного пространства, вычисленное на основе первой партии (батча) обучающей выборки. Эта величина используется для масштабирования латентного пространства до единичной дисперсии при обучении диффузионной модели. Перед передачей в диффузионную модель латенты масштабируются по формуле 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 для кодирования видео в латенты и декодирования латентных представлений в видео. Используется в Allegro.

Эта модель наследуется от ModelMixin. См. документацию суперкласса для его универсальных методов, реализованных для всех моделей (например, загрузка или сохранение).

decode

< >

( 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

< >

( x: Tensorreturn_dict: bool = True )

Параметры

  • x (torch.Tensor) — Входная партия видео.
  • return_dict (bool, по умолчанию True) — Определяет, следует ли возвращать ~models.autoencoder_kl.AutoencoderKLOutput вместо обычного кортежа.

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

forward

< >

( 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, необязательный) — Генератор случайных чисел PyTorch.

Возвращает

~models.vae.DecoderOutput или tuple

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

AutoencoderKLOutput

класс diffusers.models.modeling_outputs.AutoencoderKLOutput

< >

( latent_dist: DiagonalGaussianDistribution )

Параметры

  • latent_dist (DiagonalGaussianDistribution) — Закодированные выходные данные Encoder, представленные в виде среднего и logvar распределения DiagonalGaussianDistribution. DiagonalGaussianDistribution позволяет извлекать латентные переменные из этого распределения.

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

DecoderOutput

класс diffusers.models.autoencoders.vae.DecoderOutput

< >

( sample: Tensorcommit_loss: typing.Optional[torch.FloatTensor] = None )

Параметры

  • sample (torch.Tensor формы (batch_size, num_channels, height, width)) — Декодированный вывод из последнего слоя модели.

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

Update on GitHub