Diffusers documentation

AutoencoderKLMiniMaxH3Image

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

AutoencoderKLMiniMaxH3Image

El modelo de autoencoder variacional (VAE) de imagen con pérdida KL utilizado en MiniMax-H3-Image de MiniMax. Combina el codificador de CNN 3D causal de AutoencoderKLMiniMaxH3, ejecutado sobre un solo fotograma, con un decodificador ViT 2D, y comprime 16x espacialmente. encode y decode reciben y devuelven tensores de imagen 4D.

Comparte tres convenciones con AutoencoderKLMiniMaxH3:

  • Los latentes se normalizan por canal. No hay scaling_factor: un pipeline codifica con (latent - latents_mean) / latents_std y decodifica con latent * latents_std + latents_mean.
  • La convención de píxeles es RGB normalizado según ImageNet sobre un rango base de [0, 1], no el habitual [-1, 1]. encode espera (pixel - imagenet_mean) / imagenet_std y decode devuelve valores en ese mismo espacio, por lo que un pipeline aplica sample * imagenet_std + imagenet_mean y limita a [0, 1] antes del posprocesamiento.
  • El mosaico espacial está activado de forma predeterminada. MiniMax-H3-Image se lanzó con el mosaico activado tanto para la codificación como para la decodificación, y las imágenes publicadas son las de mosaico combinado, por lo que desactivarlo cambia la salida. Use enable_tiling para cambiar la geometría del mosaico y disable_tiling para desactivarlo.
import torch
from diffusers import AutoencoderKLMiniMaxH3Image

vae = AutoencoderKLMiniMaxH3Image.from_pretrained(
    "MiniMaxAI/MiniMax-H3-Image", subfolder="vae_diffusers", dtype=torch.float32
).to("cuda")  # or "mps", "xpu", "cpu"

AutoencoderKLMiniMaxH3Image

clase diffusers.AutoencoderKLMiniMaxH3Image

< >

( 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 = 24decoder_num_attention_heads: int = 16decoder_attention_head_dim: int = 64decoder_num_register_tokens: int = 4decoder_ffn_mult: int = 4decoder_rope_theta: float = 100.0decoder_rope_dim_ratio: float = 0.5decoder_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) )

Un modelo VAE con un codificador de CNN 3D causal y un decodificador de ViT 2D no causal, utilizado en MiniMax-H3-Image. El codificador es el codificador de video de MiniMax-H3 ejecutado sobre un único frame; el decodificador es un ViT solo para imágenes.

Este modelo hereda de ModelMixin. Consulta la documentación de la clase superior para sus métodos genéricos implementados para todos los modelos (como la descarga o el guardado).

Los latentes se normalizan con latents_mean / latents_std por canal, en lugar de un scaling_factor; un pipeline codifica con (latent - latents_mean) / latents_std y decodifica con latent * latents_std + latents_mean.

La convención de píxeles es RGB normalizado con ImageNet sobre un rango base de [0, 1], no el habitual [-1, 1]: encode espera (pixel - imagenet_mean) / imagenet_std y decode devuelve valores en ese mismo espacio, por lo que un pipeline debe aplicar sample * imagenet_std + imagenet_mean (media (0.485, 0.456, 0.406), desviación estándar (0.229, 0.224, 0.225)) y recortar a [0, 1] antes del postprocesamiento.

A diferencia de la mayoría de los autoencodidores de la biblioteca, el mosaico espacial está activado por defecto: MiniMax-H3-Image se publicó con el mosaico activado tanto para la codificación como para la decodificación, y las imágenes publicadas son las de mosaico combinado, por lo que desactivar el mosaico cambia la salida. Use enable_tiling para cambiar la geometría del mosaico y disable_tiling para desactivarlo.

encode

< >

( x: Tensorreturn_dict: bool = True )

Parámetros

  • x (torch.Tensor) — Lote de entrada de imágenes, con forma (batch_size, in_channels, height, width).
  • return_dict (bool, opcional, valor predeterminado True) — Si se debe devolver un AutoencoderKLOutput en lugar de una tupla simple.

Codifica un lote de imágenes en latentes.

decode

< >

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

Parámetros

  • z (torch.Tensor) — Lote de entrada de latentes, forma (batch_size, latent_channels, height, width).
  • return_dict (bool, opcional, valor predeterminado True) — Si se debe devolver un DecoderOutput en lugar de una tupla simple.

Devuelve

DecoderOutput o tuple

Las imágenes decodificadas, con forma (batch_size, out_channels, height * spatial_compression_ratio, width * spatial_compression_ratio).

Decodificar un lote de 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) — La altura de la tesela en espacio de píxeles. Los fotogramas más altos que este valor se dividen a lo largo de la dimensión de altura.
  • tile_sample_min_width (int, opcional) — El ancho de la tesela en espacio de píxeles. Los fotogramas más anchos que este valor se dividen a lo largo de la dimensión de ancho.
  • tile_sample_min_overlap_height (int, opcional) — La superposición mínima, en píxeles, entre dos teselas verticales consecutivas.
  • tile_sample_min_overlap_width (int, opcional) — La superposición mínima, en píxeles, entre dos mosaicos horizontales consecutivos.

Habilita la codificación/decodificación de VAE por mosaicos. Cuando esta opción está habilitada, el VAE divide los fotogramas en mosaicos, codifica o decodifica cada mosaico por separado y combina linealmente las superposiciones. Esto reduce el requisito de memoria y permite procesar fotogramas más grandes.

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 imágenes, forma (batch_size, in_channels, height, width).
  • sample_posterior (bool, opcional, valor predeterminado False) — Si se debe muestrear la posterior en lugar de tomar su modo.
  • generator (torch.Generator, opcional) — Generador utilizado cuando sample_posterior=True.
  • return_dict (bool, opcional, valor predeterminado True) — Si se debe devolver un DecoderOutput en lugar de una tupla simple.

Devuelve

DecoderOutput o tuple

Las imágenes de ida y vuelta, con forma (batch_size, out_channels, height, width).

Codificar y luego decodificar un lote de imágenes.

Update on GitHub