Diffusers documentation

AutoencoderKLPH3Image

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

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 = (128, 256, 256, 512, 512, 1024)layers_per_block: int = 2spatial_downsample_factors: tuple = (2, 2, 2, 2, 1, 1)temporal_downsample_factors: tuple = (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 = (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 = (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