Diffusers documentation

AutoencoderKLPH3Image

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

AutoencoderKLPH3Image

Изображение VAE для P-H3-Image от Pruna AI. Используется энкодер и латентное пространство видео VAE MiniMax-H3, а также декодер ViT, который декодирует один латентный кадр в изображение.

Она следует соглашениям AutoencoderKLMiniMaxH3:

  • Изображения передаются как однокадровые видео, (batch_size, channels, 1, height, width), с пространственным сжатием 16x.
  • Латенты нормализуются по каналам с помощью latents_mean / latents_std, а не scaling_factor.
  • Пиксели — это RGB, нормализованные по ImageNet в диапазоне [0, 1]: encode ожидает (pixel - imagenet_mean) / imagenet_std, а decode возвращает значения в этом пространстве.
  • Пространственная тайловая обработка включена по умолчанию, с тайлами размером 256 пикселей и перекрытием не менее 64 пикселей.
import torch
from diffusers import AutoencoderKLPH3Image

vae = AutoencoderKLPH3Image.from_pretrained("PrunaAI/P-H3-Image", subfolder="vae", dtype=torch.bfloat16).to(
    "cuda"
)  # or "mps", "xpu", "cpu"

Проекция выхода энкодера и декодера остаётся в float32 независимо от того, в каком dtype загружена модель.

AutoencoderKLPH3Image

класс diffusers.AutoencoderKLPH3Image

< >

( in_channels: int = 3out_channels: int = 3latent_channels: int = 24block_out_channels: tuple[int, ...] = (128, 256, 256, 512, 512, 1024)layers_per_block: int = 2spatial_downsample_factors: tuple[int, ...] = (2, 2, 2, 2, 1, 1)temporal_downsample_factors: tuple[int, ...] = (1, 2, 2, 1, 1, 1)norm_num_groups: int = 32norm_eps: float = 1e-06spatial_padding_mode: str = 'reflect'decoder_num_layers: int = 36decoder_num_attention_heads: int = 32decoder_attention_head_dim: int = 64decoder_num_register_tokens: int = 4decoder_ffn_mult: int = 4decoder_rope_theta: float = 100.0decoder_rope_dim_ratio: float = 0.75decoder_norm_eps: float = 1e-05latents_mean: tuple[float, ...] = (0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0)latents_std: tuple[float, ...] = (1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0) )

VAE изображений для P-H3-Image: энкодер VAE и латентное пространство MiniMax-H3, с PH3ImageViTDecoder, который декодирует один латентный кадр.

Изображения передаются как однокадровые видео, (batch_size, channels, 1, height, width). Как и в AutoencoderKLMiniMaxH3, пиксели представляют собой нормализованные по ImageNet RGB-значения в диапазоне [0, 1] (среднее (0.485, 0.456, 0.406), стандартное отклонение (0.229, 0.224, 0.225)), а пространственная тайловая обработка включена по умолчанию.

encode

< >

( x: Tensorreturn_dict: bool = True )

Параметры

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

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

decode

< >

( z: Tensorreturn_dict: bool = True ) → DecoderOutput or tuple

Параметры

  • z (torch.Tensor) — Входная партия латентов, форма (batch_size, latent_channels, 1, height, width).
  • return_dict (bool, необязательный, по умолчанию True) — Определяет, следует ли возвращать DecoderOutput вместо обычного кортежа.

Возвращает

DecoderOutput или tuple

Декодированные изображения, форма (batch_size, out_channels, 1, height, width).

Декодировать пакет латентных изображений.

enable_tiling

< >

( tile_sample_min_height: int | None = Nonetile_sample_min_width: int | None = Nonetile_sample_min_overlap_height: int | None = Nonetile_sample_min_overlap_width: int | None = None )

Параметры

  • tile_sample_min_height (int, необязательный) — Высота плитки в пиксельном пространстве. Кадры, высота которых превышает это значение, разбиваются по вертикали.
  • tile_sample_min_width (int, необязательный) — Ширина плитки в пиксельном пространстве. Кадры, ширина которых превышает это значение, разбиваются по ширине.
  • tile_sample_min_overlap_height (int, необязательный) — Минимальное перекрытие в пикселях между двумя последовательными вертикальными тайлами.
  • tile_sample_min_overlap_width (int, необязательный) — Минимальное перекрытие в пикселях между двумя последовательными горизонтальными тайлами.

Включает тайловое кодирование/декодирование VAE. При включении этого параметра VAE разбивает кадры на тайлы, кодирует или декодирует каждый тайл отдельно и линейно смешивает области перекрытия обратно. Это снижает требования к памяти и позволяет обрабатывать кадры большего размера.

forward

< >

( sample: Tensorsample_posterior: bool = Falsegenerator: typing.Optional[torch.Generator] = Nonereturn_dict: bool = True ) → DecoderOutput or tuple

Параметры

  • sample (torch.Tensor) — Входная партия изображений в виде однокадровых видео, форма (batch_size, in_channels, 1, height, width).
  • sample_posterior (bool, необязательный, по умолчанию False) — Следует ли извлекать выборку из апостериорного распределения вместо взятия его моды.
  • generator (torch.Generator, необязательный) — Генератор, используемый при sample_posterior=True.
  • return_dict (bool, необязательный, по умолчанию True) — Определяет, следует ли возвращать DecoderOutput вместо обычного кортежа.

Возвращает

DecoderOutput или tuple

Изображения после обратного преобразования, форма (batch_size, out_channels, 1, height, width).

Кодируйте, а затем декодируйте пакет изображений.

Update on GitHub