Diffusers documentation
AutoencoderKLPH3Image
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
< source >( 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
< source >( x: Tensorreturn_dict: bool = True )
Параметры
- x (
torch.Tensor) — Входная партия изображений в виде однокадровых видео, форма(batch_size, in_channels, 1, height, width). - return_dict (
bool, необязательный, по умолчаниюTrue) — Определяет, следует ли возвращать AutoencoderKLOutput вместо обычного кортежа.
Кодирует пакет изображений в латенты.
decode
< source >( 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
< source >( 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
< source >( 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).
Кодируйте, а затем декодируйте пакет изображений.