Diffusers documentation
Kandinsky 6 VAEs
Kandinsky 6 VAEs
يستخدم Kandinsky 6 نموذج K-VAE ثلاثي الأبعاد سببي (causal) لرفع دقة الفيديو، إلى جانب نموذج VAE الخاص بمطياف الميّل (mel-spectrogram) من MMAudio، مقترنًا بمُرمِّز صوتي منفصل من BigVGAN هو MMAudioVocoder، وذلك لتوليد صوت متزامن.
Kandinsky6SRVAE
نموذج K-VAE السببي ثلاثي الأبعاد الذي يستخدمه Kandinsky6SRPipeline. يعالج مقاطع فيديو بطول غير محدود في مقاطع ذاكرة محدودة مع إعادة إنتاج المخرج الدقيق لمرور واحد غير مقسّم.
import torch
from diffusers import Kandinsky6SRVAE
vae = Kandinsky6SRVAE.from_pretrained(
"kandinskylab/Kandinsky-6.0-VSR-5s-Diffusers", subfolder="vae", torch_dtype=torch.bfloat16
)class 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 )
المعاملات
- in_channels (
int، القيمة الافتراضية3) — عدد قنوات البكسل. - out_channels (
int)، القيمة الافتراضية3) — عدد قنوات البكسلات المُعاد بناؤها. - latent_channels (
int، القيمة الافتراضية64) — عدد قنوات الكمون. - encoder_block_out_channels (
tuple[int, ...])، القيمة الافتراضية(16, 128, 256, 512, 1024)) — عرض المخرجات للكتل المتبقية عند كل مستوى من مستويات المُشفِّر؛ حيث يُنصِّف كل مستوى باستثناء الأخير الحجم المكاني ويُضاعف العرض في الطريق إلى المستوى التالي. - decoder_block_out_channels (
tuple[int, ...])، القيمة الافتراضية(16, 256, 512, 1024, 2048)) — عرض المخرجات للكتل المتبقية (residual blocks) عند كل مستوى من مستويات فك الترميز (decoder). - layers_per_block (
int، القيمة الافتراضية2) — عدد الكتل المتبقية لكل مستوى في المُشفِّر؛ يستخدم المُفكِّك كتلةً إضافيةً واحدةً لكل مستوى. - temporal_compression_ratio (
int، القيمة الافتراضية4) — معامل الضغط الزمني؛log2من المستويات المتتالية له تضغط الزمن أيضاً. - temporal_compression_start_level (
int، القيمة الافتراضية1) — المستوى الأول الذي يضغط الزمن. - scaling_factor (
float، القيمة الافتراضية0.910344) — المعامل المطبَّق على الكمون (latents) قبل دخوله إلى محوّل الانتشار (diffusion transformer).
نموذج Causal 3D K-VAE الذي يستخدمه Kandinsky6SRPipeline لتشفير الفيديو وفك تشفيره.
تُعالَج مقاطع الفيديو في مقاطع زمنية من 16 إطارًا بكسليًا (بالإضافة إلى الإطار الافتتاحي). تحمل الالتفافات السببية حالة الحشو الخاصة بها بين المقاطع، لذا فإن التقطيع يحدد فقط ذروة الذاكرة ولا يغيّر النتيجة.
encode
< source >( x: torch.Tensorreturn_dict: bool = True )
المعاملات
- x (
torch.Tensorمن الشكل(batch_size, channels, num_frames, height, width)) — فيديو بكسل في[-1, 1]. يجب أن يكونnum_framesمساوياً لـ1 + k * temporal_compression_ratio. - return_dict (
bool، القيمة الافتراضيةTrue) — ما إذا كان يجب إرجاع AutoencoderKLOutput بدلاً من tuple عادي.
ترميز فيديو إلى توزيعه الكامن.
decode
< source >( z: torch.Tensorreturn_dict: bool = True )
فكّ تشفير الكمونيات إلى فيديو.
forward
< source >( sample: torch.Tensorsample_posterior: bool = Falsereturn_dict: bool = Truegenerator: torch.Generator | None = None ) → ~models.autoencoder_kl.DecoderOutput or tuple
المعاملات
- sample (
torch.Tensorمن الشكل(batch_size, channels, num_frames, height, width)) — فيديو بكسل في[-1, 1]. يجب أن يكونnum_framesمساوياً لـ1 + k * temporal_compression_ratio. - sample_posterior (
bool، اختياري، الافتراضيFalse) — ما إذا كان سيتم أخذ عينة من التوزيع الخلفي الكامن بدلاً من استخدام وضعه. - return_dict (
bool، اختياري، القيمة الافتراضيةTrue) — ما إذا كان يجب إرجاع~models.autoencoder_kl.DecoderOutputبدلاً من tuple عادي. - generator (
torch.Generator، اختياري) —torch.Generatorلجعل عملية أخذ العينات حتمية.
يعيد
~models.autoencoder_kl.DecoderOutput أو tuple
إذا كان return_dict صحيحًا، يُعاد ~models.autoencoder_kl.DecoderOutput، وإلا يُعاد tuple عادي. حيث أن sample هو الفيديو المُعاد بناؤه.
MMAudioVAE
نموذج VAE لطيف الميغاسبيكتروغرام الذي يستخدمه Kandinsky6TI2VAPipeline عندما يكون sample_audio=True. مخرجات decode الخاصة به هي ميغاسبيكتروغرام؛ مرّرها عبر MMAudioVocoder للحصول على موجة.
يمكن العثور على التنفيذ المرجعي في hkchengrex/MMAudio (رخصة 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
)فئة 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 )
المعاملات
- mel_bins (
int، القيمة الافتراضية128) — عدد دلاء ميل. - latent_channels (
int، القيمة الافتراضية40) — عدد قنوات الكمون. - hidden_channels (
int، القيمة الافتراضية512) — العرض الأساسي لمشفّر-المفكّك التلقائي. - channel_multipliers (
tuple[int, ...]، القيمة الافتراضية(1, 2, 4)) — معاملات عرض مستويات مِفكِّك الترميز التلقائي. - layers_per_block (
int، القيمة الافتراضية2) — عدد الكتل المتبقية لكل مستوى في المُشفِّر؛ يستخدم المُفكِّك كتلةً إضافيةً واحدةً لكل مستوى. - sample_rate (
int، القيمة الافتراضية44100) — معدل أخذ العينات للموجة. - n_fft (
int، القيمة الافتراضية2048) — حجم تحويل فورييه السريع (FFT) في الواجهة الأمامية للميل. - hop_length (
int، القيمة الافتراضية512) — طول القفزة في الواجهة الأمامية للميل. يجب أن يتطابق مع عامل التوسيع الكلي الخاص بـ MMAudioVocoder الذي يُقرَن به هذا VAE. - scaling_factor (
float، القيمة الافتراضية0.417) — المعامل المطبَّق على الكمون (latents) قبل دخوله إلى محوّل الانتشار (diffusion transformer).
VAE الصوتي الخاص بـ Kandinsky6TI2VAPipeline: مُشفِّر ذاتي يحافظ على السعة فوق مطيافات log-mel (MMAudio، https://arxiv.org/abs/2412.15322).
encode يحوّل الموجة الصوتية إلى توزيع كامن؛ decode يحوّل القيم الكامنة مرة أخرى إلى طيف مل، ثم يحوّله MMAudioVocoder إلى موجة صوتية. تغطي كل إطار كامن hop_length * 2 عينة.
encode
< source >( audio: torch.Tensorreturn_dict: bool = True )
المعاملات
- audio (
torch.Tensorمن الشكل(batch_size, num_samples)) — موجة أحادية (Mono) في[-1, 1]بمعدل عينةsample_rate. - return_dict (
bool، القيمة الافتراضيةTrue) — ما إذا كان يجب إرجاع AutoencoderKLOutput بدلاً من tuple عادي.
ترميز موجة صوتية إلى توزيعها الكامن.
decode
< source >( z: torch.Tensorreturn_dict: bool = True )
فكّ تشفير الكمونيات إلى طيف ملّ.
forward
< source >( sample: torch.Tensorsample_posterior: bool = Falsereturn_dict: bool = Truegenerator: torch.Generator | None = None ) → ~models.autoencoder_kl.DecoderOutput or tuple
المعاملات
- sample (
torch.Tensorمن الشكل(batch_size, num_samples)) — موجة أحادية (Mono) في[-1, 1]بمعدلsample_rateلتشفيرها وإعادة بنائها كطيف مل (mel spectrogram). - sample_posterior (
bool، اختياري، الافتراضيFalse) — ما إذا كان سيتم أخذ عينة من التوزيع الخلفي الكامن بدلاً من استخدام وضعه. - return_dict (
bool، اختياري، القيمة الافتراضيةTrue) — ما إذا كان يجب إرجاع~models.autoencoder_kl.DecoderOutputبدلاً من tuple عادي. - generator (
torch.Generator، اختياري) —torch.Generatorلجعل عملية أخذ العينات حتمية.
يعيد
~models.autoencoder_kl.DecoderOutput أو tuple
إذا كان return_dict صحيحًا، يُعاد ~models.autoencoder_kl.DecoderOutput، وإلا يُعاد tuple عادي. حيث أن sample هو مطياف الميلا المُعاد بناؤه ذو الشكل (batch_size, mel_bins, num_mel_frames).
MMAudioVocoder
مُعدَّل من حزم مُصنِّع الصوت MMAudio الخاص بـ BigVGAN-v2، وهو بدوره مُشتق من NVIDIA/BigVGAN (ترخيص MIT)، مع تفعيلات Snake المُنعَّمة ضد التداخل من alias-free-torch (ترخيص Apache 2.0).
فئة 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)) )
المعاملات
- num_mels (
int، القيمة الافتراضية128) — عدد خلايا mel في مطياف الإدخال. يجب أن يتطابق معmel_binsالخاص بـ MMAudioVAE المقترن. - upsample_initial_channel (
int، القيمة الافتراضية1536) — عرض الطبقة الأولى. - upsample_rates (
tuple[int, ...])، القيمة الافتراضية(8, 4, 2, 2, 2, 2)) — عوامل رفع العينة لمراحل مُنشئ الصوت. حاصل ضربها هو عامل رفع العينة الكلي، ويجب أن يطابقhop_lengthالخاص بـ MMAudioVAE المقترن. - upsample_kernel_sizes (
tuple[int, ...])، القيمة الافتراضية(16, 8, 4, 4, 4, 4)) — أحجام نوى الالتفاف المعكوس (Transposed-convolution) لمراحل مُولّد الصوت (vocoder). - resblock_kernel_sizes (
tuple[int, ...]، القيمة الافتراضية(3, 7, 11)) — أحجام النواة (Kernel sizes) للكتل المتبقية (residual blocks). - resblock_dilation_sizes (
tuple[tuple[int, ...], ...]، القيمة الافتراضية((1, 3, 5), (1, 3, 5), (1, 3, 5))) — قيم التمدد (Dilations) في الكتل المتبقية (residual blocks).
مُصوِّت BigVGAN-v2 (https://github.com/NVIDIA/BigVGAN، ترخيص MIT) مع تفعيلات Snake المُنعّمة (https://github.com/junjun3518/alias-free-torch، Apache 2.0)، لتحويل مطيافات الميل التي يفكّكها MMAudioVAE إلى موجات صوتية لـ Kandinsky6TI2VAPipeline.
forward
< source >( mel: torch.Tensorreturn_dict: bool = True )
المعاملات
- mel (
torch.Tensorمن الشكل(batch_size, num_mels, num_mel_frames)) — مطياف ميل، كما تم فك ترميزه بواسطة MMAudioVAE. - return_dict (
bool، القيمة الافتراضيةTrue) — ما إذا كان يجب إرجاع~models.autoencoder_kl.DecoderOutputبدلاً من tuple عادي.