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

MiniMax의 MiniMax-H3에 사용되는 오디오 오토인코더입니다. 입력과 출력 모두 웨이브폼이며, 멜 프론트엔드나 별도의 보코더가 없습니다. DAC 계통의 스트라이드 컨볼루션 인코더, 디퓨전 잠재 변수 폭으로의 인과적 어텐션 투영, 그리고 BigVGAN 디코더로 구성됩니다.

인코더는 32 kHz에서 800샘플을 건너뛰며, 즉 초당 40개의 latent를 생성합니다. 따라서 800 * n샘플의 웨이브폼은 n개의 latent로 인코딩됩니다. 홉의 정수 배가 아닌 웨이브폼은 오른쪽으로 패딩됩니다.

causal-attention 투영은 attention dispatcher를 통해 처리되므로 set_attention_backend가 적용됩니다. 해당 마스크는 is_causal=True이며, _native_npu를 제외한 모든 백엔드가 이를 준수합니다. _native_npu의 커널은 causal 플래그를 받지 않습니다.

Autoencoder는 mono이며, 스칼라 scaling_factor 대신 latents_mean / latents_std로 채널별로 latents를 정규화합니다. MiniMax-H3는 stereo를 두 개의 batch 항목으로 처리하며, 항상 posterior mean(latent_dist.mode())을 사용하고 샘플은 사용하지 않습니다.

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

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

매개변수

  • encoder_dim (int, 기본값 64) — 인코더의 첫 번째 컨볼루션 채널 폭입니다. 모든 다운샘플링 단계에서 두 배로 증가합니다.
  • encoder_rates (tuple[int], 기본값 (2, 4, 4, 5, 5)) — Encoder의 strides입니다. 이들의 곱(800)은 hop length, 즉 32 kHz에서 40 latents/s를 의미합니다.
  • latent_dim (int, 기본값 2048) — latent projection 전/후의 encoder trunk 및 decoder 입력의 폭입니다.
  • latent_channels (int, 기본값 32) — 확산 잠재 변수의 폭, 즉 mean_proj / logs_proj 출력 채널 수입니다.
  • num_attention_heads (int, 기본값 8) — causal-attention projection pre_block의 헤드 수입니다.
  • decoder_dim (int, 기본값 1024) — BigVGAN의 초기 채널 수입니다. 모든 업샘플링 단계에서 절반으로 줄어듭니다.
  • decoder_rates (tuple[int], 기본값 (5, 5, 2, 2, 2, 2, 2)) — BigVGAN 업샘플링 비율입니다. 이 값들의 곱은 prod(encoder_rates)와 같아야 합니다.
  • decoder_kernel_sizes (tuple[int], 기본값 (9, 9, 4, 4, 4, 4, 4)) — 업샘플링 단계별 전치 합성곱 커널 크기.
  • resblock_kernel_sizes (tuple[int], 기본값 (3, 7, 11)) — 각 업샘플링 단계에서 병렬 AMP 잔차 블록의 커널 크기입니다.
  • resblock_dilation_sizes (tuple[tuple[int]], 기본값 ((1, 3, 5), (1, 3, 5), (1, 3, 5))) — AMP 블록별 dilation 값.
  • sampling_rate (int, 기본값 32000) — Waveform의 샘플링 레이트입니다.
  • latents_mean (list[float], 선택 사항) — 파이프라인이 latents를 정규화/역정규화하는 데 사용하는 채널별 latent 평균입니다.
  • latents_std (list[float], 선택 사항) — 파이프라인이 latents를 정규화/역정규화하는 데 사용하는 채널별 latent 표준 편차입니다.

MiniMax-H3에서 사용하는 오디오 오토인코더: DAC 계통의 컨볼루션 인코더와 BigVGAN 디코더로 구성되며, 모노 32 kHz 웨이브폼을 직접 처리합니다.

이 모델은 ModelMixin에서 상속됩니다. 라이브러리가 모든 모델에 대해 구현하는 일반적 메서드(다운로드 또는 저장 등)에 대해서는 상위 클래스 문서를 확인하세요.

encode

< >

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

매개변수

  • sample (torch.Tensor) — [batch_size, 1, samples] 형태의 모노 웨이브폼입니다. MiniMax-H3는 참조 클립의 두 스테레오 채널을 batch_size = 2로 전달합니다.
  • return_dict (bool, 기본값 True) — 일반 튜플 대신 MiniMaxH3AudioEncoderOutput을 반환할지 여부.

반환값

MiniMaxH3AudioEncoderOutput 또는 tuple

[batch_size, latent_channels, samples / 800]에 대한 잠재적 사후 분포.

Encode a waveform into the audio latent posterior.

파형은 먼저 hop_length(800샘플)의 배수로 오른쪽 패딩됩니다. MiniMax-H3는 항상 후방 mean(latent_dist.mode())를 사용합니다. logs_proj 헤드는 참조 파이프라인에서 평가되지 않습니다.

decode

< >

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

매개변수

  • latents (torch.Tensor) — [batch_size, latent_channels, num_frames] 모양의 정규화되지 않은 latents입니다. MiniMax-H3는 두 개의 스테레오 채널을 batch_size = 2로 전달합니다.
  • return_dict (bool, 기본값 True) — 일반 튜플 대신 DecoderOutput를 반환할지 여부.

반환값

DecoderOutput 또는 tuple

[batch_size, 1, num_frames * 800] 형태의 웨이브폼이며, [-1, 1] 범위로 클램프됩니다.

오디오 잠재 변수를 웨이브폼으로 디코딩합니다.

forward

< >

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

매개변수

  • sample (torch.Tensor) — [batch_size, 1, samples] 모양의 모노 웨이브폼.
  • sample_posterior (bool, 기본값 False) — 모드를 취하는 대신 사후 분포에서 샘플링할지 여부입니다. MiniMax-H3은 모드를 사용합니다.
  • return_dict (bool, 기본값 True) — 일반 튜플 대신 DecoderOutput를 반환할지 여부.
  • generator (torch.Generator, 선택 사항) — sample_posterior=True일 때 사용되는 Generator입니다.

반환값

DecoderOutput 또는 tuple

[batch_size, 1, num_frames * 800] 모양의 왕복 처리된 웨이브폼이며, [-1, 1] 범위로 클램프됩니다.

Encode then decode a waveform.

Update on GitHub