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

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 = (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, 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