Diffusers documentation

AutoencoderKLMiniMaxH3Audio

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

AutoencoderKLMiniMaxH3Audio

El autoencoder de audio utilizado en MiniMax-H3 de MiniMax. Recibe y emite formas de onda, sin un preprocesador mel ni un vocoder separado: un encoder convolucional con saltos de la línea DAC, una proyección con atención causal hacia el ancho latente de la difusión y un decodificador BigVGAN.

El codificador salta 800 muestras a 32 kHz, es decir, 40 latentes por segundo, por lo que una forma de onda de 800 * n muestras se codifica en n latentes. Las formas de onda que no son un número entero de saltos se rellenan a la derecha.

La proyección de atención causal pasa por el despachador de atención, por lo que set_attention_backend se aplica a ella; su máscara es is_causal=True, que todos los backends respetan excepto _native_npu, cuyo kernel no acepta ninguna bandera causal.

El autoencoder es mono y normaliza los latentes por canal con latents_mean / latents_std en lugar de un scaling_factor escalar. MiniMax-H3 lleva el estéreo como dos elementos de batch y siempre consume la media posterior (latent_dist.mode()), nunca una muestra.

import torch
from diffusers import AutoencoderKLMiniMaxH3Audio

audio_vae = AutoencoderKLMiniMaxH3Audio.from_pretrained(
    "MiniMaxAI/MiniMax-H3", subfolder="audio_vae", dtype=torch.float32
).to("cuda")  # or "mps", "xpu", "cpu"

AutoencoderKLMiniMaxH3Audio

clase diffusers.AutoencoderKLMiniMaxH3Audio

< >

( encoder_dim: int = 64encoder_rates: tuple = (2, 4, 4, 5, 5)latent_dim: int = 2048latent_channels: int = 32num_attention_heads: int = 8decoder_dim: int = 1024decoder_rates: tuple = (5, 5, 2, 2, 2, 2, 2)decoder_kernel_sizes: tuple = (9, 9, 4, 4, 4, 4, 4)resblock_kernel_sizes: tuple = (3, 7, 11)resblock_dilation_sizes: tuple = ((1, 3, 5), (1, 3, 5), (1, 3, 5))sampling_rate: int = 32000latents_mean: list[float] | None = Nonelatents_std: list[float] | None = None )

Parámetros

  • encoder_dim (int, por defecto 64) — Ancho de canal de la primera convolución del codificador; se duplica en cada etapa de muestreo descendente.
  • encoder_rates (tuple[int], por defecto (2, 4, 4, 5, 5)) — Pasos del codificador. Su producto (800) es la longitud del salto, es decir, 40 latentes/s a 32 kHz.
  • latent_dim (int, por defecto 2048) — Ancho del tronco del codificador y de la entrada del decodificador, antes/después de las proyecciones latentes.
  • latent_channels (int, por defecto 32) — Ancho del latente de difusión, es decir, los canales de salida de mean_proj / logs_proj.
  • num_attention_heads (int, por defecto 8) — Número de cabezas en la proyección de atención causal pre_block.
  • decoder_dim (int, por defecto 1024) — Número inicial de canales de BigVGAN; se reduce a la mitad en cada etapa de muestreo ascendente.
  • decoder_rates (tuple[int], por defecto (5, 5, 2, 2, 2, 2, 2)) — Tasas de remuestreo ascendente de BigVGAN. Su producto debe ser igual a prod(encoder_rates).
  • decoder_kernel_sizes (tuple[int], por defecto (9, 9, 4, 4, 4, 4, 4)) — Tamaño del kernel de la convolución transpuesta por etapa de remuestreo ascendente.
  • resblock_kernel_sizes (tuple[int], por defecto (3, 7, 11)) — Tamaños de los núcleos de los bloques residuales AMP paralelos en cada etapa de muestreo ascendente.
  • resblock_dilation_sizes (tuple[tuple[int]], por defecto ((1, 3, 5), (1, 3, 5), (1, 3, 5))) — Dilaciones por bloque AMP.
  • sampling_rate (int, por defecto 32000) — Tasa de muestreo de la forma de onda.
  • latents_mean (list[float], opcional) — Media latente por canal que utiliza el pipeline para normalizar / denormalizar los latentes.
  • latents_std (list[float], opcional) — Desviación estándar latente por canal que utiliza el pipeline para normalizar / denormalizar los latentes.

El autoencoder de audio utilizado por MiniMax-H3: un codificador convolucional de linaje DAC y un decodificador BigVGAN, que opera directamente sobre formas de onda mono de 32 kHz.

Este modelo hereda de ModelMixin. Consulta la documentación de la superclase para los métodos genéricos que la biblioteca implementa para todos los modelos (como la descarga o el guardado).

encode

< >

( sample: Tensorreturn_dict: bool = True ) → MiniMaxH3AudioEncoderOutput or tuple

Parámetros

  • sample (torch.Tensor) — Onda mono de forma [batch_size, 1, samples]. MiniMax-H3 pasa los dos canales estéreo de un clip de referencia como batch_size = 2.
  • return_dict (bool, por defecto True) — Si se debe devolver un MiniMaxH3AudioEncoderOutput en lugar de una tupla simple.

Devuelve

MiniMaxH3AudioEncoderOutput o tuple

La posterior latente sobre [batch_size, latent_channels, samples / 800].

Codifica una forma de onda en el posterior latente de audio.

La forma de onda se rellena a la derecha hasta un múltiplo de hop_length (800 muestras) primero. MiniMax-H3 siempre consume la media posterior (latent_dist.mode()); la cabeza logs_proj nunca se evalúa en el pipeline de referencia.

decode

< >

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

Parámetros

  • latents (torch.Tensor) — Latentes denormalizados de forma [batch_size, latent_channels, num_frames]. MiniMax-H3 pasa los dos canales estéreo como batch_size = 2.
  • return_dict (bool, por defecto True) — Si se debe devolver un DecoderOutput en lugar de una tupla simple.

Devuelve

DecoderOutput o tuple

Forma de onda de forma [batch_size, 1, num_frames * 800], limitada a [-1, 1].

Decodifica los latentes de audio en una forma de onda.

forward

< >

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

Parámetros

  • sample (torch.Tensor) — Onda monofónica de forma [batch_size, 1, samples].
  • sample_posterior (bool, por defecto False) — Si se debe muestrear la posterior en lugar de tomar su modo. MiniMax-H3 utiliza el modo.
  • return_dict (bool, por defecto True) — Si se debe devolver un DecoderOutput en lugar de una tupla simple.
  • generator (torch.Generator, opcional) — Generador utilizado cuando sample_posterior=True.

Devuelve

DecoderOutput o tuple

La forma de onda de ida y vuelta de forma [batch_size, 1, num_frames * 800], limitada a [-1, 1].

Codificar y luego decodificar una forma de onda.

Update on GitHub