Diffusers documentation

Kandinsky 6 VAE'leri

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Kandinsky 6 VAE'leri

Kandinsky 6, video süper çözünürlüğü için nedensel 3D K-VAE'yi ve senkronize ses üretimi için ayrı bir MMAudioVocoder ile eşleştirilmiş MMAudio mel-spektrogram VAE'sini kullanır.

Kandinsky6SRVAE

Kandinsky6SRPipeline tarafından kullanılan nedensel 3D K-VAE. Sınırlı bellek segmentlerinde keyfi uzunluktaki videoları işlerken tek, segmentlenmemiş geçişin tam çıktısını yeniden üretir.

import torch
from diffusers import Kandinsky6SRVAE

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

sınıf 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 )

Parametreler

  • in_channels (int, varsayılan 3) — Piksel kanal sayısı.
  • out_channels (int, varsayılan 3) — Yeniden oluşturulan piksel kanal sayısı.
  • latent_channels (int, varsayılan 64) — Gizli kanal sayısı.
  • encoder_block_out_channels (tuple[int, ...], varsayılan (16, 128, 256, 512, 1024)) — Her kodlayıcı seviyesindeki artımsal blokların çıktı genişliği; son seviye hariç her seviye, bir sonraki seviyeye geçerken uzamsal boyutu yarıya indirir ve genişliği ikiye katlar.
  • decoder_block_out_channels (tuple[int, ...], varsayılan (16, 256, 512, 1024, 2048)) — Her decoder seviyesindeki artımsal blokların çıktı genişliği.
  • layers_per_block (int, varsayılan 2) — Her kodlayıcı seviyesindeki artımsal blok sayısı; çözücü her seviyede bir fazlasını kullanır.
  • temporal_compression_ratio (int, varsayılan 4) — Zamansal sıkıştırma çarpanı; ardışık log2 seviyesi de zamanı sıkıştırır.
  • temporal_compression_start_level (int, varsayılan 1) — Zamanı sıkıştıran ilk seviye.
  • scaling_factor (float, varsayılan 0.910344) — Diffusion transformer'a girmeden önce latents'lere uygulanan ölçek.

Kandinsky6SRPipeline tarafından videoyu kodlamak ve çözmek için kullanılan Nedenli 3D K-VAE.

Videolar, 16 piksel karesi (başlangıç karesi hariç) uzunluğunda zaman dilimlerinde işlenir. Neden-sonuç konvolüsyonlar, dolgu durumlarını dilimler arasında taşır; bu nedenle segmentasyon yalnızca tepe bellek kullanımını sınırlar, sonucu değiştirmez.

encode

< >

( x: torch.Tensorreturn_dict: bool = True )

Parametreler

  • x (torch.Tensor, şekli (batch_size, channels, num_frames, height, width)) — [-1, 1] aralığında piksel video. num_frames değeri 1 + k * temporal_compression_ratio olmalıdır.
  • return_dict (bool, varsayılan True) — Düz bir tuple yerine AutoencoderKLOutput döndürülüp döndürülmediğini belirtir.

Bir videoyu gizli dağılımına kodlayın.

decode

< >

( z: torch.Tensorreturn_dict: bool = True )

Parametreler

  • z (torch.Tensor, şekli (batch_size, latent_channels, num_latent_frames, height, width)) — Zaten scaling_factor ile bölünmüş latentler.
  • return_dict (bool, varsayılan True) — Düz bir tuple yerine ~models.autoencoder_kl.DecoderOutput döndürülüp döndürülmemesi.

Latentleri bir videoya dönüştürün.

forward

< >

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

Parametreler

  • sample (torch.Tensor, şekli (batch_size, channels, num_frames, height, width)) — [-1, 1] aralığında piksel video. num_frames değeri 1 + k * temporal_compression_ratio olmalıdır.
  • sample_posterior (bool, isteğe bağlı, varsayılan False) — Modu kullanmak yerine latent posterior'dan örneklem alınıp alınmayacağı.
  • return_dict (bool, isteğe bağlı, varsayılan True) — Düz bir tuple yerine ~models.autoencoder_kl.DecoderOutput döndürülüp döndürülmemesi.
  • generator (torch.Generator, isteğe bağlı) — Örnekleme işlemini deterministik hale getirmek için kullanılan bir torch.Generator.

Dönüş değeri

~models.autoencoder_kl.DecoderOutput veya tuple

return_dict True ise, ~models.autoencoder_kl.DecoderOutput döndürülür, aksi takdirde düz bir tuple döndürülür. sample alanı, yeniden oluşturulan videoya karşılık gelir.

MMAudioVAE

sample_audio=True olduğunda Kandinsky6TI2VAPipeline'ın kullandığı mel-spektrogram VAE. decode çıktısı bir mel spektrogramdır; dalga formu almak için bunu MMAudioVocoder üzerinden geçirin.

Referans uygulama hkchengrex/MMAudio adresinde bulunabilir (MIT lisansı).

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
)

sınıf 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 )

Parametreler

  • mel_bins (int, varsayılan 128) — Mel kutu sayısı.
  • latent_channels (int, varsayılan 40) — Gizli kanal sayısı.
  • hidden_channels (int, varsayılan 512) — Otomatik kodlayıcının temel genişliği.
  • channel_multipliers (tuple[int, ...], varsayılan (1, 2, 4)) — Otomatik kodlayıcı seviyelerinin genişlik çarpanları.
  • layers_per_block (int, varsayılan 2) — Her kodlayıcı seviyesi için artımsal blok sayısı; çözücü her seviyede bir fazlasını kullanır.
  • sample_rate (int, varsayılan 44100) — Dalga formu örneklem hızı.
  • n_fft (int, varsayılan 2048) — Mel ön ucunun FFT boyutu.
  • hop_length (int, varsayılan 512) — Mel ön ucunun atlama uzunluğu. Bu VAE'nin eşleştirildiği MMAudioVocoder'nin toplam örnekleme artırma katsayısıyla eşleşmelidir.
  • scaling_factor (float, varsayılan 0.417) — Diffusion transformer'a girmeden önce latente uygulanan ölçek.

Kandinsky6TI2VAPipeline'in Audio VAE'si: log-mel spektrogramları üzerinde büyüklük koruyucu bir otoenkoder (MMAudio, https://arxiv.org/abs/2412.15322).

encode, bir dalga formunu gizli bir dağıtıma dönüştürür; decode, gizli değerleri tekrar bir mel spektrograma dönüştürür ve MMAudioVocoder bunu bir dalga formuna çevirir. Bir gizli çerçeve hop_length * 2 örneklemi kapsar.

encode

< >

( audio: torch.Tensorreturn_dict: bool = True )

Parametreler

  • audio (torch.Tensor, şekli (batch_size, num_samples)) — sample_rate örnekleme hızında, [-1, 1] aralığında mono dalga formu.
  • return_dict (bool, varsayılan True) — Düz bir tuple yerine AutoencoderKLOutput döndürülüp döndürülmediğini belirtir.

Bir dalga formunu gizli dağılımına kodlayın.

decode

< >

( z: torch.Tensorreturn_dict: bool = True )

Parametreler

  • z (torch.Tensor, şekli (batch_size, latent_channels, num_latent_frames)) — Zaten scaling_factor ile bölünmüş latentler.
  • return_dict (bool, varsayılan True) — Düz bir tuple yerine ~models.autoencoder_kl.DecoderOutput döndürülüp döndürülmemesi.

Latentleri mel spektrograma çözümlen.

forward

< >

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

Parametreler

  • sample (torch.Tensor, şekli (batch_size, num_samples)) — Mel spektrogram olarak kodlanıp yeniden oluşturulacak, sample_rate örnekleme hızında [-1, 1] aralığında mono dalga formu.
  • sample_posterior (bool, isteğe bağlı, varsayılan False) — Modu kullanmak yerine latent posterior'dan örneklem alınıp alınmayacağı.
  • return_dict (bool, isteğe bağlı, varsayılan True) — Düz bir tuple yerine ~models.autoencoder_kl.DecoderOutput döndürülüp döndürülmemesi.
  • generator (torch.Generator, isteğe bağlı) — Örnekleme işlemini deterministik hale getirmek için kullanılan bir torch.Generator.

Dönüş değeri

~models.autoencoder_kl.DecoderOutput veya tuple

return_dict True ise, ~models.autoencoder_kl.DecoderOutput döndürülür, aksi takdirde düz bir tuple döndürülür. sample alanı, (batch_size, mel_bins, num_mel_frames) biçiminde yeniden oluşturulmuş mel spektrumudur.

MMAudioVocoder

MMAudio demetleri, BigVGAN-v2 vokalizerinden uyarlanmıştır; bu demetler de NVIDIA/BigVGAN (MIT lisansı) kaynaklıdır ve alias-free-torch'ün (Apache Lisansı 2.0) anti-aliased Snake aktivasyonlarını içerir.

sınıf 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)) )

Parametreler

  • num_mels (int, varsayılan 128) — Giriş spektrogramının mel kutu sayısı. Eşleşen MMAudioVAE'nin mel_bins değeriyle aynı olmalıdır.
  • upsample_initial_channel (int, varsayılan 1536) — İlk katmanın genişliği.
  • upsample_rates (tuple[int, ...], varsayılan (8, 4, 2, 2, 2, 2)) — Vokoder aşamalarının örnekleme artırma (upsampling) çarpanları. Bunların çarpımı toplam örnekleme artırma çarpanını verir ve eşleşen MMAudioVAE'nin hop_length değeriyle aynı olmalıdır.
  • upsample_kernel_sizes (tuple[int, ...], varsayılan (16, 8, 4, 4, 4, 4)) — Vokoder aşamalarının transpoze konvolüsyon çekirdek boyutları.
  • resblock_kernel_sizes (tuple[int, ...], varsayılan (3, 7, 11)) — Artık blokların çekirdek boyutları.
  • resblock_dilation_sizes (tuple[tuple[int, ...], ...], varsayılan ((1, 3, 5), (1, 3, 5), (1, 3, 5))) — Artık blokların (residual blocks) dilatasyonları.

Anti-aliased Snake aktivasyonlarına sahip https://github.com/junjun3518/alias-free-torch (Apache 2.0) ile https://github.com/NVIDIA/BigVGAN (MIT lisansı) tabanlı BigVGAN-v2 vokoderi, MMAudioVAE'nin çözdüğü mel spektrogramlarını Kandinsky6TI2VAPipeline için dalga formlarına dönüştürür.

forward

< >

( mel: torch.Tensorreturn_dict: bool = True )

Parametreler

  • mel (torch.Tensor, şekli (batch_size, num_mels, num_mel_frames)) — MMAudioVAE tarafından çözülen Mel spektrogramı.
  • return_dict (bool, varsayılan True) — Düz bir tuple yerine ~models.autoencoder_kl.DecoderOutput döndürülüp döndürülmemesi.
Update on GitHub