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

O VAE de imagem de P-H3-Image da Pruna AI. Ele utiliza o codificador e o espaço latente do VAE de vídeo do MiniMax-H3, com um decodificador ViT que decodifica um único frame latente em uma imagem.

Segue as convenções de AutoencoderKLMiniMaxH3:

  • As imagens são passadas como vídeos de quadro único, (batch_size, channels, 1, height, width), com compressão espacial de 16x.
  • Os latentes são normalizados por canal com latents_mean / latents_std em vez de um scaling_factor.
  • Os pixels são RGB normalizados pelo ImageNet em [0, 1]: encode espera (pixel - imagenet_mean) / imagenet_std e decode retorna esse espaço.
  • O mosaico espacial está ativado por padrão, com mosaicos de 256 pixels e pelo menos 64 pixels de sobreposição.
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"

A projeção de saída do codificador e do decodificador permanece em float32, independentemente do dtype em que o modelo é carregado.

AutoencoderKLPH3Image

classe 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) )

O VAE de imagem de P-H3-Image: o codificador VAE e o espaço latente do MiniMax-H3, com um PH3ImageViTDecoder que decodifica um único quadro latente.

As imagens são passadas como vídeos de quadro único, (batch_size, channels, 1, height, width). Assim como em AutoencoderKLMiniMaxH3, os pixels são RGB normalizados pelo ImageNet sobre [0, 1] (média (0.485, 0.456, 0.406), desvio padrão (0.229, 0.224, 0.225)) e o tiling espacial está ativado por padrão.

encode

< >

( x: Tensorreturn_dict: bool = True )

Parâmetros

  • x (torch.Tensor) — Lote de entrada de imagens como vídeos de quadro único, com forma (batch_size, in_channels, 1, height, width).
  • return_dict (bool, opcional, padrão True) — Se deve retornar um AutoencoderKLOutput em vez de uma tupla simples.

Codifica um lote de imagens em latentes.

decode

< >

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

Parâmetros

  • z (torch.Tensor) — Lote de entrada de latentes, com forma (batch_size, latent_channels, 1, height, width).
  • return_dict (bool, opcional, padrão True) — Se deve retornar um DecoderOutput em vez de uma tupla simples.

Retorna

DecoderOutput ou tuple

As imagens decodificadas, com formato (batch_size, out_channels, 1, height, width).

Decodifique um lote de imagens latentes.

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 )

Parâmetros

  • tile_sample_min_height (int, opcional) — A altura da tile no espaço de pixels. Quadros mais altos que isso são divididos ao longo da dimensão de altura.
  • tile_sample_min_width (int, opcional) — A largura do tile no espaço de pixels. Quadros mais largos que esse valor são divididos ao longo da dimensão de largura.
  • tile_sample_min_overlap_height (int, opcional) — A sobreposição mínima, em pixels, entre duas tiles verticais consecutivas.
  • tile_sample_min_overlap_width (int, opcional) — A sobreposição mínima, em pixels, entre duas tiles horizontais consecutivas.

Ativa a codificação/decodificação em blocos (tiled) do VAE. Quando essa opção está ativada, o VAE divide os quadros em blocos, codifica ou decodifica cada bloco separadamente e mescla linearmente as sobreposições novamente. Isso reduz o requisito de memória e permite o processamento de quadros maiores.

forward

< >

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

Parâmetros

  • sample (torch.Tensor) — Lote de entrada de imagens como vídeos de quadro único, com forma (batch_size, in_channels, 1, height, width).
  • sample_posterior (bool, opcional, padrão False) — Se deve amostrar a posterior em vez de tomar seu modo.
  • generator (torch.Generator, opcional) — Gerador usado quando sample_posterior=True.
  • return_dict (bool, opcional, padrão True) — Se deve retornar um DecoderOutput em vez de uma tupla simples.

Retorna

DecoderOutput ou tuple

As imagens de ida e volta, com forma (batch_size, out_channels, 1, height, width).

Codifique e depois decodifique um lote de imagens.

Update on GitHub