Diffusers documentation
Kandinsky 6 VAE'leri
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
< source >( 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ılan3) — Piksel kanal sayısı. - out_channels (
int, varsayılan3) — Yeniden oluşturulan piksel kanal sayısı. - latent_channels (
int, varsayılan64) — 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ılan2) — Her kodlayıcı seviyesindeki artımsal blok sayısı; çözücü her seviyede bir fazlasını kullanır. - temporal_compression_ratio (
int, varsayılan4) — Zamansal sıkıştırma çarpanı; ardışıklog2seviyesi de zamanı sıkıştırır. - temporal_compression_start_level (
int, varsayılan1) — Zamanı sıkıştıran ilk seviye. - scaling_factor (
float, varsayılan0.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
< source >( 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_framesdeğeri1 + k * temporal_compression_ratioolmalıdır. - return_dict (
bool, varsayılanTrue) — 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
< source >( z: torch.Tensorreturn_dict: bool = True )
Latentleri bir videoya dönüştürün.
forward
< source >( 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_framesdeğeri1 + k * temporal_compression_ratioolmalıdır. - sample_posterior (
bool, isteğe bağlı, varsayılanFalse) — Modu kullanmak yerine latent posterior'dan örneklem alınıp alınmayacağı. - return_dict (
bool, isteğe bağlı, varsayılanTrue) — Düz bir tuple yerine~models.autoencoder_kl.DecoderOutputdö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 birtorch.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
< source >( 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ılan128) — Mel kutu sayısı. - latent_channels (
int, varsayılan40) — Gizli kanal sayısı. - hidden_channels (
int, varsayılan512) — 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ılan2) — Her kodlayıcı seviyesi için artımsal blok sayısı; çözücü her seviyede bir fazlasını kullanır. - sample_rate (
int, varsayılan44100) — Dalga formu örneklem hızı. - n_fft (
int, varsayılan2048) — Mel ön ucunun FFT boyutu. - hop_length (
int, varsayılan512) — 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ılan0.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
< source >( 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ılanTrue) — 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
< source >( z: torch.Tensorreturn_dict: bool = True )
Latentleri mel spektrograma çözümlen.
forward
< source >( 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ılanFalse) — Modu kullanmak yerine latent posterior'dan örneklem alınıp alınmayacağı. - return_dict (
bool, isteğe bağlı, varsayılanTrue) — Düz bir tuple yerine~models.autoencoder_kl.DecoderOutputdö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 birtorch.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
< source >( 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ılan128) — Giriş spektrogramının mel kutu sayısı. Eşleşen MMAudioVAE'ninmel_binsdeğeriyle aynı olmalıdır. - upsample_initial_channel (
int, varsayılan1536) — İ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'ninhop_lengthdeğ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
< source >( 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ılanTrue) — Düz bir tuple yerine~models.autoencoder_kl.DecoderOutputdöndürülüp döndürülmemesi.