Diffusers documentation
Kandinsky 6 Transformers
Kandinsky 6 Transformers
Kandinsky 6 menggunakan multimodal diffusion transformer yang melakukan denoising pada latens video dan audio secara bersamaan untuk generasi teks/gambar-ke-video-dan-audio, serta text-free diffusion transformer untuk super-resolusi video.
Kandinsky6Transformer3DModel
Transformer multimodal yang digunakan oleh 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
)kelas 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 )
Parameter
- in_visual_dim (int, opsional, default 16) — Jumlah channel laten video input.
- out_visual_dim (int, opsional, default 16) — Jumlah saluran laten video keluaran.
- in_text_dim (int, opsional, default 3584) — Dimensi embedding token teks.
- in_text_dim2 (int, opsional, default 768) — Dimensi embedding teks yang dipool.
- time_dim (int, opsional, default 1024) — Dimensi embedding waktu.
- patch_size (tuple[int, int, int], opsional, default
(1, 2, 2)) — Ukuran patch video. - model_dim (int, opsional, default 4096) — Dimensi tersembunyi transformer video.
- ff_dim (int, opsional, default 16384) — Dimensi tersembunyi feed-forward video.
- num_text_blocks (int, opsional, default 4) — Jumlah blok teks per modalitas.
- num_visual_blocks (int, opsional, default 60) — Jumlah blok video/audio yang digabungkan.
- axes_dims (tuple[int, int, int], opsional, default
(32, 48, 48)) — Dimensi RoPE untuk video. - visual_cond (bool, opsional, default True) — Apakah kanal kondisioning video ada.
- in_audio_dim (int, opsional, default 20) — Jumlah saluran laten audio input.
- out_audio_dim (int, opsional, default 20) — Jumlah saluran laten audio keluaran.
- model_dim_a (int, opsional) — Dimensi tersembunyi transformer audio. Bawaan adalah model_dim.
- time_dim_a (int, opsional) — Dimensi embedding waktu audio. Bawaan adalah time_dim.
- ff_dim_a (int, opsional) — Dimensi tersembunyi feed-forward audio. Bawaan adalah ff_dim.
- axes_dims_a (tuple[int, int, int], opsional) — Dimensi RoPE audio. Bawaan adalah axes_dims.
- audio_freqs_scaling (float, opsional, default 1.0) — Skala frekuensi RoPE audio.
- scale_factor (tuple[float, float, float], opsional, default (1.0, 2.0, 2.0)) — Skala frekuensi RoPE per sumbu (t, h, w) yang diterapkan pada posisi video.
- text_token_padding (bool, opsional, default False) — Metadata checkpoint yang mencatat apakah urutan teks model referensi di-pad. forward selalu menerima encoder_attention_mask opsional terlepas dari flag ini; apakah mask tersebut benar-benar diteruskan sepenuhnya bergantung pada pemanggil.
- ca_rope (bool, opsional, default False) — Apakah akan menggunakan cross-modal audio RoPE.
- cross_gates (bool, opsional, default False) — Apakah akan menggunakan gerbang residual lintas-modal.
- fix_modulation (bool, opsional, default False) — Apakah akan menggunakan varian modulasi tetap.
- visual_token_type_num_embeddings (int, opsional, default 0) — Jumlah embedding tipe token visual.
Kandinsky 6 transformer multimodal untuk generasi teks/gambar-ke-video-dan-audio.
Video dan audio didenois bersama melalui blok transformer lintas-modal yang terfusi, masing-masing dikondisikan pada cabang teksnya sendiri (token Qwen2.5-VL + embedding CLIP yang dipool). Jika tidak ada audio_hidden_states yang diteruskan, hanya video yang didenois, sementara tahap self-attention video, cross-attention, dan feed-forward dari blok terfusi tetap dijalankan. Embedding rotasi dihitung di dalam forward dari grid token.
Checkpoint yang dirilis mengatur text_token_padding, ca_rope, cross_gates, dan fix_modulation menjadi True (lihat transformer/config.json dari masing-masing checkpoint); nilai default False hanya menggambarkan varian arsitektur yang tidak memiliki bobot yang disertakan di repo ini.
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
Parameter
- hidden_states (
torch.Tensordengan bentuk(batch_size, num_frames, height, width, in_channels)) — Latent video dalam tata letak(B, T, H, W, C). Denganvisual_cond=True,in_channelsadalah2 * in_visual_dim + 1: latent berisik, latent kondisional, dan mask kondisional. - encoder_hidden_states (
torch.Tensordengan bentuk(batch_size, sequence_length, in_text_dim)) — Embedding token teks, yang dibagikan oleh cabang teks video dan audio. - pooled_projections (
torch.Tensordengan bentuk(batch_size, in_text_dim2)) — Embedding teks yang dipoolkan dan ditambahkan ke embedding timestep dari kedua cabang. - timestep (
torch.Tensordengan bentuk(batch_size,)) — Timestep difusi pada skala[0, num_train_timesteps], yang digunakan bersama oleh kedua modalitas. - audio_hidden_states (
torch.Tensordengan bentuk(batch_size, audio_length, in_audio_dim), opsional) — Latent audio. Jika diabaikan, blok yang digabungkan hanya menjalankan jalur video. - visual_rope_pos (
tuple[torch.Tensor, torch.Tensor, torch.Tensor], opsional) — Indeks posisi rotasi per sumbu(t, h, w)dari token video yang telah dipatch. Nilainya secara default adalaharangedi setiap sumbu. Pipeline meneruskan indeks temporal eksplisit saat menambahkan frame referensi yang menggunakan ulang posisi0. - encoder_attention_mask (
torch.Tensordengan bentuk(batch_size, sequence_length), opsional) — Mask padding boolean untukencoder_hidden_states. BerikanNonejika tidak ada prompt yang di-pad. - visual_token_type_ids (
torch.Tensordengan bentuk(batch_size, num_frames), opsional) — ID tipe token per frame, yang di-embed melaluivisual_token_type_embeddings. Memerlukanvisual_token_type_num_embeddings > 0. - return_dict (
bool, defaultnyaTrue) — Apakah akan mengembalikanKandinsky6TransformerOutputalih-alih tuple biasa.
Mengembalikan
Kandinsky6TransformerOutput atau tuple
Kecepatan video yang diprediksi dalam tata letak (B, T, H, W, out_visual_dim) dan, ketika audio_hidden_states diberikan, kecepatan audio yang diprediksi dengan bentuk (B, audio_length, out_audio_dim).
Kandinsky6SRTransformer3DModel
Transformer tanpa teks yang digunakan oleh Kandinsky6SRPipeline untuk menyempurnakan satu ubin video yang telah diperbesar pada satu waktu.
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)kelas 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)) )
Parameter
- in_visual_dim (
int, defaultnya64) — Jumlah kanal laten dari K-VAE. - out_visual_dim (
int, defaultnya640) — Jumlah saluran output. - time_dim (
int, defaultnya512) — Dimensi dari embedding timestep. - patch_size (
tuple[int, int, int], defaultnya(1, 1, 1)) — Ukuran patch sebagai(temporal, height, width). - model_dim (
int, defaultnya1792) — Dimensi tersembunyi dari transformer. - ff_dim (
int, defaultnya7168) — Dimensi dalam dari jaringan feed-forward. - num_visual_blocks (
int, defaultnya32) — Jumlah blok transformer. - axes_dims (
tuple[int, int, int], defaultnya(16, 24, 24)) — Dimensi RoPE per sumbu(t, h, w); jumlah dari dimensi-dimensi ini adalah dimensi head perhatian. - scale_factor (
tuple[float, float, float], defaultnya(1.0, 2.0, 2.0)) — Skala frekuensi RoPE per sumbu yang diterapkan pada posisi token. - nabla_threshold (
float, defaultnya0.8) — Ambang batas perhatian kumulatif untuk pemilihan blok NABLA. - nabla_window (
tuple[int, int, int], defaultnya(11, 7, 7)) — Rentang(t, h, w)ganjil dari prior sliding-tile yang selalu diperhatikan oleh setiap blok token 8x8. - tile_sizes (
tuple[tuple[int, int], ...], defaultnya((512, 512), (512, 768), (768, 512))) — Ukuran piksel(height, width)dari tile video yang digunakan untuk melatih model. Kandinsky6SRPipeline menyempurnakan setiap tile pada ukuran yang rasio aspeknya paling mendekati video input.
Diffusion transformer tanpa teks untuk super-resolusi video Kandinsky 6.
Model ini melakukan denoising pada tile dari video laten K-VAE. Inputnya menggabungkan laten berisik dengan laten jangkar dan mask jangkar yang mengondisikan super-resolusi (2 * in_visual_dim + 1 channel), dan outputnya berisi out_visual_dim channel: in_visual_dim untuk checkpoint kecepatan biasa, atau n_grid * in_visual_dim yang diperlebar untuk checkpoint distilasi PiflowScheduler. Self-attention video berjalan melalui pola blok sparse NABLA pada backend perhatian flex, yang membutuhkan grid token (height dan width setelah patch_size) dapat dibagi habis oleh 8.
forward
< source >( hidden_states: Tensortimestep: Tensorreturn_dict: bool = True ) → Transformer2DModelOutput or tuple
Parameter
- hidden_states (
torch.Tensordengan bentuk(batch_size, num_frames, height, width, 2 * in_visual_dim + 1)) — Ubin laten dalam tata letak(B, T, H, W, C): laten berisik, laten jangkar, dan masker jangkar yang digabungkan sepanjang sumbu kanal. - timestep (
torch.Tensordengan bentuk(batch_size,)) — Timestep difusi pada skala[0, num_train_timesteps]. - return_dict (
bool, defaultnyaTrue) — Apakah akan mengembalikan Transformer2DModelOutput alih-alih tuple biasa.
Mengembalikan
Transformer2DModelOutput atau tuple
Prediksi bentuk (batch_size, num_frames, height, width, out_visual_dim).