Diffusers documentation

AutoencoderKLMiniMaxH3Audio

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

AutoencoderKLMiniMaxH3Audio

O autoencoder de áudio usado em MiniMax-H3 pela MiniMax. Ele recebe e produz waveforms, sem front-end mel e sem vocoder separado: um encoder convolucional com strides da linhagem DAC, uma projeção com atenção causal para a largura do latente de difusão e um decoder BigVGAN.

O codificador avança 800 amostras a 32 kHz, ou seja, 40 latentes por segundo, de modo que uma forma de onda de 800 * n amostras é codificada em n latentes. Formas de onda que não correspondem a um número inteiro de avanços são preenchidas à direita.

A projeção de atenção causal passa pelo despachador de atenção, portanto set_attention_backend se aplica a ela; sua máscara é is_causal=True, que todos os backends respeitam, exceto _native_npu, cujo kernel não aceita uma flag causal.

O autoencoder é mono e normaliza os latentes por canal com latents_mean / latents_std, em vez de um scaling_factor escalar. O MiniMax-H3 carrega o estéreo como dois itens de batch e sempre consome a média do posterior (latent_dist.mode()), nunca uma amostra.

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

classe diffusers.AutoencoderKLMiniMaxH3Audio

< >

( encoder_dim: int = 64encoder_rates: tuple[int, ...] = (2, 4, 4, 5, 5)latent_dim: int = 2048latent_channels: int = 32num_attention_heads: int = 8decoder_dim: int = 1024decoder_rates: tuple[int, ...] = (5, 5, 2, 2, 2, 2, 2)decoder_kernel_sizes: tuple[int, ...] = (9, 9, 4, 4, 4, 4, 4)resblock_kernel_sizes: tuple[int, ...] = (3, 7, 11)resblock_dilation_sizes: tuple[tuple[int, ...], ...] = ((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, padrão 64) — Largura do canal da primeira convolução do codificador; dobra em cada etapa de downsampling.
  • encoder_rates (tuple[int], padrão (2, 4, 4, 5, 5)) — Passos do codificador. O produto deles (800) é o comprimento do salto, ou seja, 40 latentes/s a 32 kHz.
  • latent_dim (int, padrão 2048) — Largura do tronco do codificador e da entrada do decodificador, antes/depois das projeções latentes.
  • latent_channels (int, padrão 32) — Largura do latente de difusão, ou seja, os canais de saída de mean_proj / logs_proj.
  • num_attention_heads (int, padrão 8) — Número de cabeças na projeção de atenção causal pre_block.
  • decoder_dim (int, padrão 1024) — Número inicial de canais do BigVGAN; reduzido pela metade em cada etapa de upsampling.
  • decoder_rates (tuple[int], padrão (5, 5, 2, 2, 2, 2, 2)) — Taxas de upsampling do BigVGAN. O produto delas deve ser igual a prod(encoder_rates).
  • decoder_kernel_sizes (tuple[int], padrão (9, 9, 4, 4, 4, 4, 4)) — Tamanho do kernel da convolução transposta por estágio de upsampling.
  • resblock_kernel_sizes (tuple[int], padrão (3, 7, 11)) — Tamanhos dos kernels dos blocos residuais AMP paralelos em cada etapa de upsampling.
  • resblock_dilation_sizes (tuple[tuple[int]], padrão ((1, 3, 5), (1, 3, 5), (1, 3, 5))) — Dilatações por bloco AMP.
  • sampling_rate (int, padrão 32000) — Taxa de amostragem da forma de onda.
  • latents_mean (list[float], opcional) — Média latente por canal que o pipeline usa para normalizar/denormalizar os latentes.
  • latents_std (list[float], opcional) — Desvio padrão latente por canal que o pipeline usa para normalizar/denormalizar os latentes.

O autoencoder de áudio usado pelo MiniMax-H3: um codificador convolucional de linhagem DAC e um decodificador BigVGAN, operando diretamente em formas de onda mono de 32 kHz.

Este modelo herda de ModelMixin. Consulte a documentação da superclasse para os métodos genéricos que a biblioteca implementa para todos os modelos (como download ou salvamento).

encode

< >

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

Parâmetros

  • sample (torch.Tensor) — Forma de onda mono com formato [batch_size, 1, samples]. O MiniMax-H3 passa os dois canais estéreo de um clipe de referência como batch_size = 2.
  • return_dict (bool, padrão True) — Se deve retornar um MiniMaxH3AudioEncoderOutput em vez de uma tupla simples.

Retorna

MiniMaxH3AudioEncoderOutput ou tuple

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

Codifique uma forma de onda no posterior latente de áudio.

A forma de onda é primeiro preenchida à direita até um múltiplo de hop_length (800 amostras). O MiniMax-H3 sempre consome a média posterior (latent_dist.mode()) — o cabeçalho logs_proj nunca é avaliado pelo pipeline de referência.

decode

< >

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

Parâmetros

  • latents (torch.Tensor) — Latentes denormalizados de forma [batch_size, latent_channels, num_frames]. O MiniMax-H3 passa os dois canais estéreo como batch_size = 2.
  • return_dict (bool, padrão True) — Se deve retornar um DecoderOutput em vez de uma tupla simples.

Retorna

DecoderOutput ou tuple

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

Decodifique os latentes de áudio em uma 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) — Forma de onda mono com formato [batch_size, 1, samples].
  • sample_posterior (bool, padrão False) — Se deve amostrar a posterior em vez de tomar seu modo. O MiniMax-H3 usa o modo.
  • return_dict (bool, padrão True) — Se deve retornar um DecoderOutput em vez de uma tupla simples.
  • generator (torch.Generator, opcional) — Gerador usado quando sample_posterior=True.

Retorna

DecoderOutput ou tuple

A forma de onda de ida e volta, de forma [batch_size, 1, num_frames * 800], limitada a [-1, 1].

Codifique e depois decodifique uma forma de onda.

Update on GitHub