Diffusers documentation

AutoencoderKLMochi

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

AutoencoderKLMochi

El modelo de autoencoder variacional (VAE) 3D con pérdida KL utilizado en Mochi fue introducido en Mochi 1 Preview por la Universidad de Tsinghua y ZhipuAI.

El modelo se puede cargar con el siguiente fragmento de código.

from diffusers import AutoencoderKLMochi

vae = AutoencoderKLMochi.from_pretrained("genmo/mochi-1-preview", subfolder="vae", dtype=torch.float32).to("cuda")  # or "mps", "xpu", "cpu"

AutoencoderKLMochi

clase diffusers.AutoencoderKLMochi

< >

( in_channels: int = 15out_channels: int = 3encoder_block_out_channels: tuple[int] = (64, 128, 256, 384)decoder_block_out_channels: tuple[int] = (128, 256, 512, 768)latent_channels: int = 12layers_per_block: tuple[int, ...] = (3, 3, 4, 6, 3)act_fn: str = 'silu'temporal_expansions: tuple[int, ...] = (1, 2, 3)spatial_expansions: tuple[int, ...] = (2, 2, 2)add_attention_block: tuple[bool, ...] = (False, True, True, True, True)latents_mean: tuple[float, ...] = (-0.06730895953510081, -0.038011381506090416, -0.07477820912866141, -0.05565264470995561, 0.012767231469026969, -0.04703542746246419, 0.043896967884726704, -0.09346305707025976, -0.09918314763016893, -0.008729793427399178, -0.011931556316503654, -0.0321993391887285)latents_std: tuple[float, ...] = (0.9263795028493863, 0.9248894543193766, 0.9393059390890617, 0.959253732819592, 0.8244560132752793, 0.917259975397747, 0.9294154431013696, 1.3720942357788521, 0.881393668867029, 0.9168315692124348, 0.9185249279345552, 0.9274757570805041)scaling_factor: float = 1.0 )

Parámetros

  • in_channels (int, opcional, valor predeterminado 3) — Número de canales en la imagen de entrada.
  • out_channels (int, opcional, valor predeterminado 3) — Número de canales en la salida.
  • block_out_channels (tuple[int], opcional, por defecto (64,)) — tupla de canales de salida de los bloques.
  • act_fn (str, opcional, por defecto "silu") — La función de activación a utilizar.
  • scaling_factor (float, opcional, valor predeterminado 1.15258426) — La desviación estándar por componente del espacio latente entrenado, calculada utilizando el primer lote del conjunto de entrenamiento. Se utiliza para escalar el espacio latente para que tenga varianza unitaria durante el entrenamiento del modelo de difusión. Los latentes se escalan con la fórmula z = z * scaling_factor antes de ser pasados al modelo de difusión. Al decodificar, los latentes se escalan de vuelta a la escala original con la fórmula: z = 1 / scaling_factor * z. Para más detalles, consulte las secciones 4.3.2 y D.1 del artículo High-Resolution Image Synthesis with Latent Diffusion Models.

Un modelo VAE con pérdida KL para codificar imágenes en latentes y decodificar representaciones latentes en imágenes. Se utiliza en Mochi 1 preview.

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

decode

< >

( z: Tensorreturn_dict: bool = True ) → ~models.vae.DecoderOutput or tuple

Parámetros

  • z (torch.Tensor) — Lote de entrada de vectores latentes.
  • return_dict (bool, opcional, valor predeterminado True) — Si se debe devolver un ~models.vae.DecoderOutput en lugar de una tupla simple.

Devuelve

~models.vae.DecoderOutput o tuple

If return_dict is True, a ~models.vae.DecoderOutput is returned, otherwise a plain tuple is returned.

Decodificar un lote de imágenes.

enable_tiling

< >

( tile_sample_min_height: int | None = Nonetile_sample_min_width: int | None = Nonetile_sample_stride_height: float | None = Nonetile_sample_stride_width: float | None = None )

Parámetros

  • tile_sample_min_height (int, opcional) — La altura mínima requerida para que una muestra se separe en mosaicos a lo largo de la dimensión de altura.
  • tile_sample_min_width (int, opcional) — El ancho mínimo requerido para que una muestra se separe en mosaicos a lo largo de la dimensión de ancho.
  • tile_sample_stride_height (int, opcional) — La cantidad mínima de solapamiento entre dos mosaicos verticales consecutivos. Esto garantiza que no se produzcan artefactos de mosaico a lo largo de la dimensión de altura.
  • tile_sample_stride_width (int, opcional) — La separación entre dos mosaicos horizontales consecutivos. Esto garantiza que no se produzcan artefactos de mosaico a lo largo de la dimensión de ancho.

Habilita la decodificación de VAE por mosaicos. Cuando esta opción está habilitada, el VAE dividirá el tensor de entrada en mosaicos para calcular la decodificación y la codificación en varios pasos. Esto es útil para ahorrar una gran cantidad de memoria y para permitir el procesamiento de imágenes más grandes.

encode

< >

( x: Tensorreturn_dict: bool = True )

Parámetros

  • x (torch.Tensor) — Lote de entrada de imágenes.
  • return_dict (bool, opcional, valor predeterminado True) — Si se debe devolver un ~models.autoencoder_kl.AutoencoderKLOutput en lugar de una tupla simple.

Codifica un lote de imágenes en latentes.

forward

< >

( sample: Tensorsample_posterior: bool = Falsereturn_dict: bool = Truegenerator: typing.Optional[torch.Generator] = None ) → ~models.vae.DecoderOutput or tuple

Parámetros

  • sample (torch.Tensor) — Muestra de entrada.
  • sample_posterior (bool, opcional, por defecto False) — Si se muestrea de la posterior.
  • return_dict (bool, opcional, valor predeterminado True) — Indica si se debe devolver un DecoderOutput en lugar de una tupla simple.
  • generator (torch.Generator, opcional) — Un torch.Generator para hacer que la muestreo sea determinista.

Devuelve

~models.vae.DecoderOutput o tuple

Si return_dict es True, se devuelve un ~models.vae.DecoderOutput, de lo contrario se devuelve una tuple simple.

tiled_decode

< >

( z: Tensorreturn_dict: bool = True ) → ~models.vae.DecoderOutput or tuple

Parámetros

  • z (torch.Tensor) — Lote de entrada de vectores latentes.
  • return_dict (bool, opcional, valor predeterminado True) — Indica si se debe devolver un ~models.vae.DecoderOutput en lugar de una tupla simple.

Devuelve

~models.vae.DecoderOutput o tuple

If return_dict is True, a ~models.vae.DecoderOutput is returned, otherwise a plain tuple is returned.

Decodificar un lote de imágenes usando un decodificador por mosaicos.

tiled_encode

< >

( x: Tensor ) → torch.Tensor

Parámetros

  • x (torch.Tensor) — Lote de entrada de videos.

Devuelve

torch.Tensor

La representación latente de los videos codificados.

Codifica un lote de imágenes usando un codificador por mosaicos.

DecoderOutput

clase diffusers.models.autoencoders.vae.DecoderOutput

< >

( sample: Tensorcommit_loss: typing.Optional[torch.FloatTensor] = None )

Parámetros

  • sample (torch.Tensor de forma (batch_size, num_channels, height, width)) — La muestra de salida decodificada de la última capa del modelo.

Salida del método de decodificación.

Update on GitHub