Diffusers documentation
Kandinsky 6 Transformers
Kandinsky 6 Transformers
يستخدم Kandinsky 6 محوّلاً انتشاراً متعدد الوسائط (multimodal diffusion transformer) لإزالة الضوضاء من كامنات الفيديو والصوت معاً لتوليد فيديو وصوت من نص/صورة، ومحوّلاً انتشاراً خالياً من النص (text-free diffusion transformer) لرفع دقة الفيديو.
Kandinsky6Transformer3DModel
المحوّل متعدد الوسائط المستخدم في Kandinsky6TI2VAPipeline.
import torch
from diffusers import Kandinsky6Transformer3DModel
transformer = Kandinsky6Transformer3DModel.from_pretrained(
"kandinskylab/Kandinsky-6.0-Pro-distill-5s-Diffusers", subfolder="transformer", torch_dtype=torch.bfloat16
)فئة diffusers.Kandinsky6Transformer3DModel
< source >( in_visual_dim: int = 16out_visual_dim: int = 16in_text_dim: int = 3584in_text_dim2: int = 768time_dim: int = 1024patch_size: tuple = (1, 2, 2)model_dim: int = 4096ff_dim: int = 16384num_text_blocks: int = 4num_visual_blocks: int = 60axes_dims: tuple = (32, 48, 48)visual_cond: bool = Truein_audio_dim: int = 20out_audio_dim: int = 20model_dim_a: int | None = Nonetime_dim_a: int | None = Noneff_dim_a: int | None = Noneaxes_dims_a: tuple | None = Noneaudio_freqs_scaling: float = 1.0scale_factor: tuple | list[float] = (1.0, 2.0, 2.0)text_token_padding: bool = Falseca_rope: bool = Falsecross_gates: bool = Falsefix_modulation: bool = Falsevisual_token_type_num_embeddings: int = 0 )
المعاملات
- in_visual_dim (int، اختياري، القيمة الافتراضية 16) — عدد قنوات الكاميرا الكامنة في الفيديو المدخل.
- out_visual_dim (int، اختياري، القيمة الافتراضية 16) — عدد قنوات الكاميرا الكامنة في الفيديو الناتج.
- in_text_dim (int، اختياري، القيمة الافتراضية 3584) — بُعد تضمين رموز النص.
- in_text_dim2 (int، اختياري، القيمة الافتراضية 768) — بُعد تضمين النص المجمّع.
- time_dim (int، اختياري، القيمة الافتراضية 1024) — بُعد تضمين الوقت.
- patch_size (tuple[int, int, int]، اختياري، القيمة الافتراضية
(1, 2, 2)) — حجم الباتش للفيديو. - model_dim (int، اختياري، القيمة الافتراضية 4096) — بُعد المخفي لتحوّل الفيديو.
- ff_dim (int، اختياري، القيمة الافتراضية 16384) — بُعد الطبقة المخفية لشبكة التغذية الأمامية للفيديو.
- num_text_blocks (int، اختياري، القيمة الافتراضية 4) — عدد كتل النص لكل نمط.
- num_visual_blocks (int، اختياري، القيمة الافتراضية 60) — عدد كتل الفيديو/الصوت المدمجة.
- axes_dims (tuple[int, int, int]، اختياري، القيمة الافتراضية
(32, 48, 48)) — أبعاد RoPE للفيديو. - visual_cond (bool، اختياري، القيمة الافتراضية True) — ما إذا كانت قنوات تكييف الفيديو موجودة.
- in_audio_dim (int، اختياري، القيمة الافتراضية 20) — عدد قنوات الصوت الكامنة المدخلة.
- out_audio_dim (int، اختياري، القيمة الافتراضية 20) — عدد قنوات الصوت الكامنة في المخرجات.
- model_dim_a (int، اختياري) — بُعد المخفي لمحوّل الصوت. القيمة الافتراضية هي model_dim.
- time_dim_a (int، اختياري) — بُعد تضمين الوقت للصوت. القيمة الافتراضية هي time_dim.
- ff_dim_a (int، اختياري) — بُعد المخفي للتغذية الأمامية للصوت. القيمة الافتراضية هي ff_dim.
- axes_dims_a (tuple[int, int, int]، اختياري) — أبعاد RoPE للصوت. القيمة الافتراضية هي axes_dims.
- audio_freqs_scaling (float، اختياري، القيمة الافتراضية 1.0) — تحجيم ترددات RoPE للصوت.
- scale_factor (tuple[float, float, float]، اختياري، القيمة الافتراضية (1.0, 2.0, 2.0)) — معامل توسيع ترددات RoPE لكل محور (t, h, w) يُطبَّق على مواضع الفيديو.
- text_token_padding (bool، اختياري، القيمة الافتراضية False) — بيانات وصفية لنقطة الحفظ تسجّل ما إذا كانت تسلسلات النص في النموذج المرجعي مُملأة. يقبل forward دائمًا encoder_attention_mask اختياريًا بغضّ النظر عن هذا العلم؛ أما ما إذا كان يُمرَّر فعليًا فيعتمد بالكامل على المستدعي.
- ca_rope (bool، اختياري، الافتراضي False) — ما إذا كان سيتم استخدام RoPE الصوتي بين الوسائط.
- cross_gates (bool، اختياري، الافتراضي False) — ما إذا كان سيتم استخدام بوابات متبقية بين الوسائط.
- fix_modulation (bool، اختياري، الافتراضي False) — ما إذا كان سيتم استخدام النسخة الثابتة من التعديل.
- visual_token_type_num_embeddings (int، اختياري، القيمة الافتراضية 0) — عدد تضمينات أنواع الرموز البصرية.
Kandinsky 6 محوّل متعدد الوسائط لتوليد الفيديو والصوت من النص أو الصورة.
يتم إزالة الضوضاء من الفيديو والصوت معًا عبر كتل تحويلية مدمجة متعددة الوسائط، حيث تُشترط كل كتلة على فرع النص الخاص بها (رموز Qwen2.5-VL + تضمين مجمّع من CLIP). عند عدم تمرير audio_hidden_states، تتم إزالة الضوضاء من الفيديو وحده مع الاستمرار في تشغيل مراحل الانتباه الذاتي للفيديو، والانتباه المتقاطع، والطبقات الأمامية في الكتلة المدمجة. تُحسب التضمينات الدوارة داخل forward من شبكة الرموز.
تُعيّن نقاط التفتيش المُصدَّرة text_token_padding وca_rope وcross_gates وfix_modulation إلى True (راجع transformer/config.json الخاص بكل نقطة تفتيش)؛ أما القيم الافتراضية False فتصف فقط متغيرًا معماريًا لا يوفر هذا المستودع أوزانًا له.
forward
< source >( hidden_states: Tensorencoder_hidden_states: Tensorpooled_projections: Tensortimestep: Tensoraudio_hidden_states: Tensor | None = Nonevisual_rope_pos: tuple[Tensor, Tensor, Tensor] | None = Noneencoder_attention_mask: Tensor | None = Nonevisual_token_type_ids: Tensor | None = Nonereturn_dict: bool = True ) → Kandinsky6TransformerOutput or tuple
المعاملات
- hidden_states (
torch.Tensorمن الشكل(batch_size, num_frames, height, width, in_channels)) — كائنات الكامنة للفيديو في تخطيط(B, T, H, W, C). عند تعيينvisual_cond=True، يكونin_channelsمساوياً لـ2 * in_visual_dim + 1: الكائن الكامن الضوضائي، الكائن الكامن الشرطي، وقناع التكييف. - encoder_hidden_states (
torch.Tensorمن الشكل(batch_size, sequence_length, in_text_dim)) — تضمينات رموز النص، مشتركة بين فرعي النص للفيديو والصوت. - pooled_projections (
torch.Tensorمن الشكل(batch_size, in_text_dim2)) — تضمين نصي مجمّع يُضاف إلى تضمين خطوة الزمن في كلا الفرعين. - timestep (
torch.Tensorمن الشكل(batch_size,)) — خطوة الانتشار على مقياس[0, num_train_timesteps]، مشتركة بين كلا النمطين. - audio_hidden_states (
torch.Tensorمن الشكل(batch_size, audio_length, in_audio_dim)، اختياري) — حالات الصوت الكامنة. عند إهماله، تعمل الكتل المدمجة عبر مسار الفيديو فقط. - visual_rope_pos (
tuple[torch.Tensor, torch.Tensor, torch.Tensor], اختياري) — فهارس الموضع الدورانية لكل محور(t, h, w)لرموز الفيديو المقسّمة إلى رقعات. القيمة الافتراضية هيarangeعلى كل محور. يمرّر خط الأنابيب فهرسًا زمنيًا صريحًا عند إضافة إطار مرجعي يعيد استخدام الموضع0. - encoder_attention_mask (
torch.Tensorمن الشكل(batch_size, sequence_length)، اختياري) — قناع تعبئة منطقي لـencoder_hidden_states. مرّرNoneعندما لا يكون هناك تعبئة للموجّه. - visual_token_type_ids (
torch.Tensorمن الشكل(batch_size, num_frames)، اختياري) — معرّفات أنواع الرموز لكل إطار، تُضمَّن عبرvisual_token_type_embeddings. يتطلبvisual_token_type_num_embeddings > 0. - return_dict (
bool، القيمة الافتراضيةTrue) — ما إذا كان يجب إرجاعKandinsky6TransformerOutputبدلاً من tuple عادي.
يعيد
Kandinsky6TransformerOutput أو tuple
سرعة الفيديو المتوقعة في التخطيط (B, T, H, W, out_visual_dim) و، عند تقديم audio_hidden_states، سرعة الصوت المتوقعة ذات الشكل (B, audio_length, out_audio_dim).
Kandinsky6SRTransformer3DModel
المحوّل (Transformer) الخالي من النص الذي يستخدمه Kandinsky6SRPipeline لتحسين بلاطة واحدة من الفيديو المُوسَّع في كل مرة.
import torch
from diffusers import Kandinsky6SRTransformer3DModel
transformer = Kandinsky6SRTransformer3DModel.from_pretrained(
"kandinskylab/Kandinsky-6.0-VSR-distilled2steps-5s-Diffusers", subfolder="transformer", torch_dtype=torch.bfloat16
)
# The transformer always runs NABLA sparse attention (`nabla_threshold`, 0.8 by default) on the `flex` backend.
# Compile it, otherwise flex falls back to an eager implementation that needs far more memory at video resolutions.
transformer.compile_repeated_blocks(fullgraph=True)فئة diffusers.Kandinsky6SRTransformer3DModel
< source >( in_visual_dim: int = 64out_visual_dim: int = 640time_dim: int = 512patch_size: tuple[int, int, int] = (1, 1, 1)model_dim: int = 1792ff_dim: int = 7168num_visual_blocks: int = 32axes_dims: tuple[int, int, int] = (16, 24, 24)scale_factor: tuple[float, float, float] = (1.0, 2.0, 2.0)nabla_threshold: float = 0.8nabla_window: tuple[int, int, int] = (11, 7, 7)tile_sizes: tuple[tuple[int, int], ...] = ((512, 512), (512, 768), (768, 512)) )
المعاملات
- in_visual_dim (
int، القيمة الافتراضية64) — عدد القنوات الكامنة في K-VAE. - out_visual_dim (
int، القيمة الافتراضية640) — عدد قنوات الإخراج. - time_dim (
int، القيمة الافتراضية512) — بعد تضمين خطوة الزمن. - patch_size (
tuple[int, int, int]، القيمة الافتراضية(1, 1, 1)) — حجم الباتش على شكل(temporal, height, width). - model_dim (
int، القيمة الافتراضية1792) — البُعد الخفي للترانسفورمر. - ff_dim (
int، القيمة الافتراضية7168) — البُعد الداخلي لشبكات التغذية الأمامية. - num_visual_blocks (
int، القيمة الافتراضية32) — عدد كتل التحويل. - axes_dims (
tuple[int, int, int])، القيمة الافتراضية(16, 24, 24)) — أبعاد RoPE لكل محور من محاور(t, h, w)؛ مجموعها هو بُعد رأس الانتباه. - scale_factor (
tuple[float, float, float])، القيمة الافتراضية(1.0, 2.0, 2.0)) — تصحيح الترددات الخاص بـ RoPE لكل محور، يُطبَّق على مواضع الرموز. - nabla_threshold (
float، القيمة الافتراضية0.8) — عتبة الانتباه التراكمي لاختيار كتل NABLA. - nabla_window (
tuple[int, int, int]، القيمة الافتراضية(11, 7, 7)) — امتدادات(t, h, w)الفردية للأولوية ذات البلاطات المنزلقة التي يولي كل كتلة رموز 8x8 اهتمامًا دائمًا إليها. - tile_sizes (
tuple[tuple[int, int], ...]، القيمة الافتراضية((512, 512), (512, 768), (768, 512))) — أحجام(height, width)بالبكسل لبلاطات الفيديو التي تم تدريب النموذج عليها. يحسّن Kandinsky6SRPipeline كل بلاطة عند الحجم الذي تكون نسبة أبعاده أقرب إلى نسبة أبعاد الفيديو المُدخل.
محوّل انتشار بدون نص لرفع دقة فيديو Kandinsky 6.
يقوم النموذج بإزالة الضوضاء من بلاطات الفيديو الكامني الخاص بـ K-VAE. يجمع مدخله بين الكامني الضوضائي والكامني المرجعي وقناع المرجع الذي يشترطان على عملية رفع الدقة (2 * in_visual_dim + 1 قناة)، ويحتوي مخرجه على out_visual_dim قناة: in_visual_dim لنقطة تحقق السرعة العادية، أو n_grid * in_visual_dim موسعة لنقاط التحقق المُقطّرة الخاصة بـ PiflowScheduler. يعمل الانتباه الذاتي للفيديو عبر نمط الكتلة المتناثرة NABLA على واجهة الانتباه flex، والتي تتطلب أن يكون شبكة الرموز (height وwidth بعد patch_size) قابلة للقسمة على 8.
forward
< source >( hidden_states: Tensortimestep: Tensorreturn_dict: bool = True ) → Transformer2DModelOutput or tuple
المعاملات
- hidden_states (
torch.Tensorمن الشكل(batch_size, num_frames, height, width, 2 * in_visual_dim + 1)) — بلاطات كامنة (Latent tiles) بتنسيق(B, T, H, W, C): الكامنة الضجيجية (noisy latent) والكامنة المرجعية (anchor latent) وقناع المرجع (anchor mask) مدمجة على محور القناة. - timestep (
torch.Tensorمن الشكل(batch_size,)) — خطوة الانتشار على مقياس[0, num_train_timesteps]. - return_dict (
bool، القيمة الافتراضيةTrue) — ما إذا كان يجب إرجاع Transformer2DModelOutput بدلاً من tuple عادي.
يعيد
Transformer2DModelOutput أو tuple
شكل التنبؤ (batch_size, num_frames, height, width, out_visual_dim).