Diffusers documentation

VAEs de Kandinsky 6

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

VAEs de Kandinsky 6

Kandinsky 6 utiliza un K-VAE 3D causal para la superresolución de video y el VAE de mel-espectrograma de MMAudio, junto con un MMAudioVocoder BigVGAN independiente, para la generación de audio sincronizado.

Kandinsky6SRVAE

El K-VAE causal 3D utilizado por Kandinsky6SRPipeline. Procesa videos de longitud arbitraria en segmentos de memoria acotada, reproduciendo la salida exacta de una única pasada no segmentada.

import torch
from diffusers import Kandinsky6SRVAE

vae = Kandinsky6SRVAE.from_pretrained(
    "kandinskylab/Kandinsky-6.0-VSR-5s-Diffusers", subfolder="vae", torch_dtype=torch.bfloat16
)

clase diffusers.Kandinsky6SRVAE

< >

( in_channels: int = 3out_channels: int = 3latent_channels: int = 64encoder_block_out_channels: tuple[int, ...] = (16, 128, 256, 512, 1024)decoder_block_out_channels: tuple[int, ...] = (16, 256, 512, 1024, 2048)layers_per_block: int = 2temporal_compression_ratio: int = 4temporal_compression_start_level: int = 1scaling_factor: float = 0.910344004631042 )

Parámetros

  • in_channels (int, por defecto 3) — Número de canales de píxeles.
  • out_channels (int, por defecto 3) — Número de canales de píxeles reconstruidos.
  • latent_channels (int, por defecto 64) — Número de canales latentes.
  • encoder_block_out_channels (tuple[int, ...], por defecto (16, 128, 256, 512, 1024)) — Ancho de salida de los bloques residuales en cada nivel del codificador; cada nivel, excepto el último, reduce a la mitad el tamaño espacial y duplica el ancho al pasar al siguiente nivel.
  • decoder_block_out_channels (tuple[int, ...], por defecto (16, 256, 512, 1024, 2048)) — Ancho de salida de los bloques residuales en cada nivel del decodificador.
  • layers_per_block (int, por defecto 2) — Número de bloques residuales por nivel del codificador; el decodificador usa uno más por nivel.
  • temporal_compression_ratio (int, por defecto 4) — Factor de compresión temporal; log2 de sus niveles consecutivos también comprime el tiempo.
  • temporal_compression_start_level (int, por defecto 1) — Primer nivel que comprime el tiempo.
  • scaling_factor (float, por defecto 0.910344) — Escala aplicada a los latentes antes de que entren en el transformador de difusión.

Causal 3D K-VAE utilizado por Kandinsky6SRPipeline para codificar y decodificar video.

Los videos se procesan en segmentos temporales de 16 fotogramas de píxeles (más el fotograma inicial). Las convoluciones causales conservan su estado de relleno entre segmentos, por lo que la segmentación solo limita la memoria máxima y no cambia el resultado.

encode

< >

( x: torch.Tensorreturn_dict: bool = True )

Parámetros

  • x (torch.Tensor de forma (batch_size, channels, num_frames, height, width)) — Vídeo de píxeles en [-1, 1]. num_frames debe ser 1 + k * temporal_compression_ratio.
  • return_dict (bool, por defecto True) — Si se debe devolver un AutoencoderKLOutput en lugar de una tupla simple.

Codifica un video en su distribución latente.

decode

< >

( z: torch.Tensorreturn_dict: bool = True )

Parámetros

  • z (torch.Tensor de forma (batch_size, latent_channels, num_latent_frames, height, width)) — Latentes, ya divididos por scaling_factor.
  • return_dict (bool, por defecto True) — Si se debe devolver un ~models.autoencoder_kl.DecoderOutput en lugar de una tupla simple.

Decodifica los latentes en un video.

forward

< >

( sample: torch.Tensorsample_posterior: bool = Falsereturn_dict: bool = Truegenerator: torch.Generator | None = None ) → ~models.autoencoder_kl.DecoderOutput or tuple

Parámetros

  • sample (torch.Tensor de forma (batch_size, channels, num_frames, height, width)) — Vídeo de píxeles en [-1, 1]. num_frames debe ser 1 + k * temporal_compression_ratio.
  • sample_posterior (bool, opcional, valor predeterminado False) — Si se debe muestrear de la posterior latente en lugar de usar su modo.
  • return_dict (bool, opcional, valor predeterminado True) — Si se debe devolver un ~models.autoencoder_kl.DecoderOutput en lugar de una tupla simple.
  • generator (torch.Generator, opcional) — Un torch.Generator para hacer que la muestreo sea determinista.

Devuelve

~models.autoencoder_kl.DecoderOutput o tuple

Si return_dict es True, se devuelve un ~models.autoencoder_kl.DecoderOutput, en caso contrario se devuelve una tuple simple. Su sample es el video reconstruido.

MMAudioVAE

El VAE de espectrograma mel utilizado por Kandinsky6TI2VAPipeline cuando sample_audio=True. Su salida de decode es un espectrograma mel; pásalo por MMAudioVocoder para obtener una forma de onda.

La implementación de referencia se encuentra en hkchengrex/MMAudio (licencia MIT).

import torch
from diffusers import MMAudioVAE

audio_vae = MMAudioVAE.from_pretrained(
    "kandinskylab/Kandinsky-6.0-Pro-distill-5s-Diffusers", subfolder="audio_vae", torch_dtype=torch.bfloat16
)

clase diffusers.MMAudioVAE

< >

( mel_bins: int = 128latent_channels: int = 40hidden_channels: int = 512channel_multipliers: tuple[int, ...] = (1, 2, 4)layers_per_block: int = 2sample_rate: int = 44100n_fft: int = 2048hop_length: int = 512scaling_factor: float = 0.417 )

Parámetros

  • mel_bins (int, por defecto 128) — Número de bins mel.
  • latent_channels (int, por defecto 40) — Número de canales latentes.
  • hidden_channels (int, por defecto 512) — Ancho base del autoencoder.
  • channel_multipliers (tuple[int, ...], por defecto (1, 2, 4)) — Multiplicadores de anchura de los niveles del autoencoder.
  • layers_per_block (int, por defecto 2) — Bloques residuales por nivel del codificador; el decodificador usa uno más por nivel.
  • sample_rate (int, por defecto 44100) — Tasa de muestreo de la forma de onda.
  • n_fft (int, por defecto 2048) — Tamaño de la FFT del frente mel.
  • hop_length (int, por defecto 512) — Longitud del salto del frente mel. Debe coincidir con el factor total de remuestreo ascendente del MMAudioVocoder con el que se empareja este VAE.
  • scaling_factor (float, por defecto 0.417) — Escala aplicada a los latentes antes de que entren en el transformador de difusión.

VAE de audio de Kandinsky6TI2VAPipeline: un autoencoder que preserva la magnitud sobre espectrogramas log-mel (MMAudio, https://arxiv.org/abs/2412.15322).

encode convierte una forma de onda en una distribución latente; decode convierte los latentes de vuelta en un espectrograma mel, que MMAudioVocoder luego convierte en una forma de onda. Un marco latente cubre hop_length * 2 muestras.

encode

< >

( audio: torch.Tensorreturn_dict: bool = True )

Parámetros

  • audio (torch.Tensor de forma (batch_size, num_samples)) — Onda mono en [-1, 1] a sample_rate.
  • return_dict (bool, por defecto True) — Si se debe devolver un AutoencoderKLOutput en lugar de una tupla simple.

Codifica una forma de onda en su distribución latente.

decode

< >

( z: torch.Tensorreturn_dict: bool = True )

Parámetros

  • z (torch.Tensor de forma (batch_size, latent_channels, num_latent_frames)) — Latentes, ya divididos por scaling_factor.
  • return_dict (bool, por defecto True) — Si se debe devolver un ~models.autoencoder_kl.DecoderOutput en lugar de una tupla simple.

Decodifica los latentes en un espectrograma mel.

forward

< >

( sample: torch.Tensorsample_posterior: bool = Falsereturn_dict: bool = Truegenerator: torch.Generator | None = None ) → ~models.autoencoder_kl.DecoderOutput or tuple

Parámetros

  • sample (torch.Tensor de forma (batch_size, num_samples)) — Onda mono en [-1, 1] a sample_rate para codificar y reconstruir como un espectrograma mel.
  • sample_posterior (bool, opcional, valor predeterminado False) — Si se debe muestrear de la posterior latente en lugar de usar su modo.
  • return_dict (bool, opcional, valor predeterminado True) — Si se debe devolver un ~models.autoencoder_kl.DecoderOutput en lugar de una tupla simple.
  • generator (torch.Generator, opcional) — Un torch.Generator para hacer que la muestreo sea determinista.

Devuelve

~models.autoencoder_kl.DecoderOutput o tuple

Si return_dict es True, se devuelve un ~models.autoencoder_kl.DecoderOutput; en caso contrario, se devuelve una tuple simple. Su sample es el espectrograma mel reconstruido de forma (batch_size, mel_bins, num_mel_frames).

MMAudioVocoder

Adaptado de los paquetes de vocoder MMAudio de BigVGAN-v2, a su vez de NVIDIA/BigVGAN (licencia MIT), con las activaciones Snake anti-alias de alias-free-torch (Apache License 2.0).

clase diffusers.MMAudioVocoder

< >

( num_mels: int = 128upsample_initial_channel: int = 1536upsample_rates: tuple[int, ...] = (8, 4, 2, 2, 2, 2)upsample_kernel_sizes: tuple[int, ...] = (16, 8, 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)) )

Parámetros

  • num_mels (int, por defecto 128) — Número de bins mel del espectrograma de entrada. Debe coincidir con mel_bins del MMAudioVAE emparejado.
  • upsample_initial_channel (int, por defecto 1536) — Ancho de la primera capa.
  • upsample_rates (tuple[int, ...], por defecto (8, 4, 2, 2, 2, 2)) — Factores de remuestreo ascendente de las etapas del vocoder. Su producto es el factor total de remuestreo ascendente y debe coincidir con el hop_length del MMAudioVAE emparejado.
  • upsample_kernel_sizes (tuple[int, ...], por defecto (16, 8, 4, 4, 4, 4)) — Tamaños de los núcleos de las convoluciones transpuestas de las etapas del vocoder.
  • resblock_kernel_sizes (tuple[int, ...], por defecto (3, 7, 11)) — Tamaños de los núcleos de los bloques residuales.
  • resblock_dilation_sizes (tuple[tuple[int, ...], ...], por defecto ((1, 3, 5), (1, 3, 5), (1, 3, 5))) — Dilaciones de los bloques residuales.

Vocoder BigVGAN-v2 (https://github.com/NVIDIA/BigVGAN, licencia MIT) con las activaciones Snake anti-alias de https://github.com/junjun3518/alias-free-torch (Apache 2.0), que convierte los espectrogramas mel que decodifica MMAudioVAE en formas de onda para Kandinsky6TI2VAPipeline.

forward

< >

( mel: torch.Tensorreturn_dict: bool = True )

Parámetros

  • mel (torch.Tensor de forma (batch_size, num_mels, num_mel_frames)) — Espectrograma Mel, tal como lo decodifica MMAudioVAE.
  • return_dict (bool, por defecto True) — Si se debe devolver un ~models.autoencoder_kl.DecoderOutput en lugar de una tupla simple.
Update on GitHub