Diffusers documentation

AutoencoderKLAllegro

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[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)temporal_upsample_blocks: tuple[bool, ...] = (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