Buckets:

hf-doc-build/doc / diffusers /main /pt /api /models /autoencoderkl_p_h3_image.md
mishig's picture
|
download
raw
7.48 kB

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[[diffusers.AutoencoderKLPH3Image]]

diffusers.AutoencoderKLPH3Image[[diffusers.AutoencoderKLPH3Image]]

diffusers.AutoencoderKLPH3Image(in_channels: int = 3, out_channels: int = 3, latent_channels: int = 24, block_out_channels: tuple[int, ...] = (128, 256, 256, 512, 512, 1024), layers_per_block: int = 2, spatial_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 = 32, norm_eps: float = 1e-06, spatial_padding_mode: str = 'reflect', decoder_num_layers: int = 36, decoder_num_attention_heads: int = 32, decoder_attention_head_dim: int = 64, decoder_num_register_tokens: int = 4, decoder_ffn_mult: int = 4, decoder_rope_theta: float = 100.0, decoder_rope_dim_ratio: float = 0.75, decoder_norm_eps: float = 1e-05, latents_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))

Fonte

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[[diffusers.AutoencoderKLPH3Image.encode]]

encode(x: Tensor, return_dict: bool = True)

Fonte

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.

Retorna:

A distribuição latente das imagens codificadas. Observe que os latentes são normalizados com latents_mean / latents_std em seguida.

Codifica um lote de imagens em latentes.

decode[[diffusers.AutoencoderKLPH3Image.decode]]

decode(z: Tensor, return_dict: bool = True)

Fonte

Parâmetros:

z (torch.Tensor) : Lote de entrada de latentes, formato (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[[diffusers.AutoencoderKLPH3Image.enable_tiling]]

enable_tiling(tile_sample_min_height: int | None = None, tile_sample_min_width: int | None = None, tile_sample_min_overlap_height: int | None = None, tile_sample_min_overlap_width: int | None = None)

Fonte

Parâmetros:

tile_sample_min_height (int, opcional) : A altura do 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 isso são divididos ao longo da dimensão de largura.

tile_sample_min_overlap_height (int, opcional) : O mínimo de sobreposição, em pixels, entre duas tiles verticais consecutivas.

tile_sample_min_overlap_width (int, opcional) : O mínimo de sobreposição, 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[[diffusers.AutoencoderKLPH3Image.forward]]

forward(sample: Tensor, sample_posterior: bool = False, generator: typing.Optional[torch.Generator] = None, return_dict: bool = True)

Fonte

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.

Xet Storage Details

Size:
7.48 kB
·
Xet hash:
a1e9ad6e06df4223328e6b533062096aa5f6b501f0a7c78abc1c933ac14b21a4

Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.