Diffusers documentation

Kandinsky 6 VAEs

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

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

< >

( 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

< >

( 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

< >

( z: torch.Tensorreturn_dict: bool = True )

المعاملات

  • z (torch.Tensor من الشكل (batch_size, latent_channels, num_latent_frames, height, width)) — القيم الكامنة، مقسومة مسبقًا على scaling_factor.
  • return_dict (bool، القيمة الافتراضية True) — ما إذا كان يجب إرجاع ~models.autoencoder_kl.DecoderOutput بدلاً من tuple عادي.

فكّ تشفير الكمونيات إلى فيديو.

forward

< >

( 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

< >

( 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

< >

( 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

< >

( z: torch.Tensorreturn_dict: bool = True )

المعاملات

  • z (torch.Tensor من الشكل (batch_size, latent_channels, num_latent_frames)) — القيم الكامنة، مقسومة مسبقًا على scaling_factor.
  • return_dict (bool، القيمة الافتراضية True) — ما إذا كان يجب إرجاع ~models.autoencoder_kl.DecoderOutput بدلاً من tuple عادي.

فكّ تشفير الكمونيات إلى طيف ملّ.

forward

< >

( 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

< >

( 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

< >

( 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 عادي.
Update on GitHub