Diffusers documentation

Kandinsky 6 Transformers

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v0.42.1).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

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

< >

( 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

< >

( 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.Tensor dengan bentuk (batch_size, num_frames, height, width, in_channels)) — Latent video dalam tata letak (B, T, H, W, C). Dengan visual_cond=True, in_channels adalah 2 * in_visual_dim + 1: latent berisik, latent kondisional, dan mask kondisional.
  • encoder_hidden_states (torch.Tensor dengan bentuk (batch_size, sequence_length, in_text_dim)) — Embedding token teks, yang dibagikan oleh cabang teks video dan audio.
  • pooled_projections (torch.Tensor dengan bentuk (batch_size, in_text_dim2)) — Embedding teks yang dipoolkan dan ditambahkan ke embedding timestep dari kedua cabang.
  • timestep (torch.Tensor dengan bentuk (batch_size,)) — Timestep difusi pada skala [0, num_train_timesteps], yang digunakan bersama oleh kedua modalitas.
  • audio_hidden_states (torch.Tensor dengan 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 adalah arange di setiap sumbu. Pipeline meneruskan indeks temporal eksplisit saat menambahkan frame referensi yang menggunakan ulang posisi 0.
  • encoder_attention_mask (torch.Tensor dengan bentuk (batch_size, sequence_length), opsional) — Mask padding boolean untuk encoder_hidden_states. Berikan None jika tidak ada prompt yang di-pad.
  • visual_token_type_ids (torch.Tensor dengan bentuk (batch_size, num_frames), opsional) — ID tipe token per frame, yang di-embed melalui visual_token_type_embeddings. Memerlukan visual_token_type_num_embeddings > 0.
  • return_dict (bool, defaultnya True) — Apakah akan mengembalikan Kandinsky6TransformerOutput alih-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

< >

( 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, defaultnya 64) — Jumlah kanal laten dari K-VAE.
  • out_visual_dim (int, defaultnya 640) — Jumlah saluran output.
  • time_dim (int, defaultnya 512) — Dimensi dari embedding timestep.
  • patch_size (tuple[int, int, int], defaultnya (1, 1, 1)) — Ukuran patch sebagai (temporal, height, width).
  • model_dim (int, defaultnya 1792) — Dimensi tersembunyi dari transformer.
  • ff_dim (int, defaultnya 7168) — Dimensi dalam dari jaringan feed-forward.
  • num_visual_blocks (int, defaultnya 32) — 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, defaultnya 0.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

< >

( hidden_states: Tensortimestep: Tensorreturn_dict: bool = True ) → Transformer2DModelOutput or tuple

Parameter

  • hidden_states (torch.Tensor dengan 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.Tensor dengan bentuk (batch_size,)) — Timestep difusi pada skala [0, num_train_timesteps].
  • return_dict (bool, defaultnya True) — Apakah akan mengembalikan Transformer2DModelOutput alih-alih tuple biasa.

Mengembalikan

Transformer2DModelOutput atau tuple

Prediksi bentuk (batch_size, num_frames, height, width, out_visual_dim).

Update on GitHub