# Kandinsky 5.0 Video

[Kandinsky 5.0](https://arxiv.org/abs/2511.14993), Video ve Image üretimi için bir difüzyon modeli ailesidir.

Kandinsky 5.0 Lite, sınıfındaki açık kaynaklı modeller arasında 1. sırada yer alan, hafif video üretimi modelleri (2B parametre) serisidir. Daha büyük modellerden üstün performans gösterir ve açık kaynaklı ekosistemde Rus kavramlarının en iyi anlaşıldığı modeldir.

Kandinsky 5.0 Pro, yüksek kaliteli büyük video üretim modelleri (19B parametre) serisidir. HD'de yüksek kaliteli üretim ve I2V gibi daha fazla üretim formatı sunar.

Model, birkaç temel yenilik sunar:
- Daha iyi eğitim kararlılığı için **Flow Matching** ile **Latent diffusion pipeline**
- Metin gömme vektörlerine çapraz dikkat (cross-attention) uygulayan **Diffusion Transformer (DiT)** ana üretken omurga olarak
- Kapsamlı metin anlama için **Qwen2.5-VL** ve **CLIP** kullanılarak çift metin kodlama
- Verimli video kodlama ve çözümlüme için **HunyuanVideo 3D VAE**
- Verimli uzun dizi işleme için **Sparse attention mechanisms** (NABLA)

Orijinal kod tabanı [kandinskylab/Kandinsky-5](https://github.com/kandinskylab/Kandinsky-5) adresinde bulunabilir.

> [!TIP]
> Metinten videoya üretim için resmi model kontrol noktalarını, ön eğitilmiş, SFT, no-CFG ve damıtılmış varyantları dahil olmak üzere, Hub'daki [Kandinsky Lab](https://huggingface.co/kandinskylab) kuruluşunu inceleyin.

## Mevcut Modeller

Kandinsky 5.0 T2V Pro:

| model_id | Açıklama | Kullanım Senaryoları |
|------------|-------------|-----------|
| **kandinskylab/Kandinsky-5.0-T2V-Pro-sft-5s-Diffusers** | 5 saniyelik Metinden Videoya Pro modeli | Yüksek kaliteli metinden videoya üretim |
| **kandinskylab/Kandinsky-5.0-I2V-Pro-sft-5s-Diffusers** | 5 saniyelik Görüntüden Videoya Pro modeli | Yüksek kaliteli görüntüden videoya üretim |

Kandinsky 5.0 T2V Lite:
| model_id | Açıklama | Kullanım Senaryoları |
|------------|-------------|-----------|
| **kandinskylab/Kandinsky-5.0-T2V-Lite-sft-5s-Diffusers** | 5 saniyelik Gözetimli İnce Ayarlanmış model | En yüksek üretim kalitesi |
| **kandinskylab/Kandinsky-5.0-T2V-Lite-sft-10s-Diffusers** | 10 saniyelik Gözetimli İnce Ayarlı model | En yüksek üretim kalitesi |
| **kandinskylab/Kandinsky-5.0-T2V-Lite-nocfg-5s-Diffusers** | 5 saniyelik damıtılmış Classifier-Free Guidance | 2 kat daha hızlı çıkarım |
| **kandinskylab/Kandinsky-5.0-T2V-Lite-nocfg-10s-Diffusers** | 10 saniyelik damıtılmış Classifier-Free Guidance | 2 kat daha hızlı çıkarım |
| **kandinskylab/Kandinsky-5.0-T2V-Lite-distilled16steps-5s-Diffusers** | 5 saniyelik Diffusion, 16 adıma damıtıldı | 6 kat daha hızlı çıkarım, minimal kalite kaybı |
| **kandinskylab/Kandinsky-5.0-T2V-Lite-distilled16steps-10s-Diffusers** | 10 saniyelik Diffusion, 16 adıma damıtıldı | 6 kat daha hızlı çıkarım, minimal kalite kaybı |
| **kandinskylab/Kandinsky-5.0-T2V-Lite-pretrain-5s-Diffusers** | 5 saniyelik Base ön eğitilmiş model | Araştırma ve ince ayar |
| **kandinskylab/Kandinsky-5.0-T2V-Lite-pretrain-10s-Diffusers** | 10 saniyelik Base ön eğitilmiş model | Araştırma ve ince ayar |

## Kullanım Örnekleri

### Temel Metinden Videoya Üretim

#### Pro
**⚠️ Uyarı!** tüm Pro modelleri pipeline.enable_model_cpu_offload() ile çıkarılmalıdır
```python
import torch
from diffusers import Kandinsky5T2VPipeline
from diffusers.utils import export_to_video

# Load the pipeline
model_id = "kandinskylab/Kandinsky-5.0-T2V-Pro-sft-5s-Diffusers"
pipe = Kandinsky5T2VPipeline.from_pretrained(model_id, dtype=torch.bfloat16)

pipe = pipe.to("cuda")  # or "mps", "xpu", "cpu"
pipeline.transformer.set_attention_backend("flex")                            # <--- Set attention backend to Flex
pipeline.enable_model_cpu_offload()                                           # <--- Enable cpu offloading for single GPU inference
pipeline.transformer.compile(mode="max-autotune-no-cudagraphs", dynamic=True) # <--- Compile with max-autotune-no-cudagraphs

# Generate video
prompt = "A cat and a dog baking a cake together in a kitchen."
negative_prompt = "Static, 2D cartoon, cartoon, 2d animation, paintings, images, worst quality, low quality, ugly, deformed, walking backwards"

output = pipe(
    prompt=prompt,
    negative_prompt=negative_prompt,
    height=768,
    width=1024,
    num_frames=121,  # ~5 seconds at 24fps
    num_inference_steps=50,
    guidance_scale=5.0,
).frames[0]

export_to_video(output, "output.mp4", fps=24, quality=9)
```

#### Lite
```python
import torch
from diffusers import Kandinsky5T2VPipeline
from diffusers.utils import export_to_video

# Load the pipeline
model_id = "kandinskylab/Kandinsky-5.0-T2V-Lite-sft-5s-Diffusers"
pipe = Kandinsky5T2VPipeline.from_pretrained(model_id, dtype=torch.bfloat16)
pipe = pipe.to("cuda")  # or "mps", "xpu", "cpu"

# Generate video
prompt = "A cat and a dog baking a cake together in a kitchen."
negative_prompt = "Static, 2D cartoon, cartoon, 2d animation, paintings, images, worst quality, low quality, ugly, deformed, walking backwards"

output = pipe(
    prompt=prompt,
    negative_prompt=negative_prompt,
    height=512,
    width=768,
    num_frames=121,  # ~5 seconds at 24fps
    num_inference_steps=50,
    guidance_scale=5.0,
).frames[0]

export_to_video(output, "output.mp4", fps=24, quality=9)
```

### 10 saniyelik Modeller
**⚠️ Uyarı!** tüm 10 saniyelik modeller, Flex attention ve max-autotune-no-cudagraphs derlemesiyle kullanılmalıdır:

```python
pipe = Kandinsky5T2VPipeline.from_pretrained(
    "kandinskylab/Kandinsky-5.0-T2V-Lite-sft-10s-Diffusers", 
    dtype=torch.bfloat16
)
pipe = pipe.to("cuda")  # or "mps", "xpu", "cpu"

pipe.transformer.set_attention_backend(
    "flex"
)                                       # <--- Set attention backend to Flex
pipe.transformer.compile(
    mode="max-autotune-no-cudagraphs", 
    dynamic=True
)                                       # <--- Compile with max-autotune-no-cudagraphs

prompt = "A cat and a dog baking a cake together in a kitchen."
negative_prompt = "Static, 2D cartoon, cartoon, 2d animation, paintings, images, worst quality, low quality, ugly, deformed, walking backwards"

output = pipe(
    prompt=prompt,
    negative_prompt=negative_prompt,
    height=512,
    width=768,
    num_frames=241,
    num_inference_steps=50,
    guidance_scale=5.0,
).frames[0]

export_to_video(output, "output.mp4", fps=24, quality=9)
```

### Diffusion Distilled modeli
**⚠️ Uyarı!** tüm nocfg ve diffusion distilled modeller CFG olmadan çıkarılmalıdır (```guidance_scale=1.0```):

```python
model_id = "kandinskylab/Kandinsky-5.0-T2V-Lite-distilled16steps-5s-Diffusers"
pipe = Kandinsky5T2VPipeline.from_pretrained(model_id, dtype=torch.bfloat16)
pipe = pipe.to("cuda")  # or "mps", "xpu", "cpu"

output = pipe(
    prompt="A beautiful sunset over mountains",
    num_inference_steps=16,  # <--- Model is distilled in 16 steps
    guidance_scale=1.0,      # <--- no CFG
).frames[0]

export_to_video(output, "output.mp4", fps=24, quality=9)
```

### Temel Görüntüden Video Üretimi
**⚠️ Uyarı!** tüm Pro modelleri pipeline.enable_model_cpu_offload() ile çıkarılmalıdır
```python
import torch
from diffusers import Kandinsky5T2VPipeline
from diffusers.utils import export_to_video

# Load the pipeline
model_id = "kandinskylab/Kandinsky-5.0-I2V-Pro-sft-5s-Diffusers"
pipe = Kandinsky5T2VPipeline.from_pretrained(model_id, dtype=torch.bfloat16)

pipe = pipe.to("cuda")  # or "mps", "xpu", "cpu"
pipeline.transformer.set_attention_backend("flex")                            # <--- Set attention backend to Flex
pipeline.enable_model_cpu_offload()                                           # <--- Enable cpu offloading for single GPU inference
pipeline.transformer.compile(mode="max-autotune-no-cudagraphs", dynamic=True) # <--- Compile with max-autotune-no-cudagraphs

# Generate video
image = load_image(
    "https://huggingface.co/kandinsky-community/kandinsky-3/resolve/main/assets/title.jpg?download=true"
)
height = 896
width = 896
image = image.resize((width, height))

prompt = "An funny furry creture smiles happily and holds a sign that says 'Kandinsky'"
negative_prompt = ""

output = pipe(
    prompt=prompt,
    negative_prompt=negative_prompt,
    height=height,
    width=width,
    num_frames=121,  # ~5 seconds at 24fps
    num_inference_steps=50,
    guidance_scale=5.0,
).frames[0]

export_to_video(output, "output.mp4", fps=24, quality=9)
```

## Kandinsky 5.0 Pro Yan Yana Değerlendirme

  
      
          
      
      
         
      

  
      
          Veo 3 ile karşılaştırma
      
      
          Veo 3 fast ile karşılaştırma
      
  
      
          
      
      
          
      
  
      
          Wan 2.2 A14B Metinden Videoya moduyla karşılaştırma
      
      
          Wan 2.2 A14B Görselden Videoya moduyla karşılaştırma
      

## Kandinsky 5.0 Lite Yan Yana Değerlendirme

Değerlendirme, [Movie Gen benchmark](https://github.com/facebookresearch/MovieGenBench)'dan genişletilmiş istemlere dayanmaktadır ve bu istemler, benchmark/moviegen_bench.csv dosyasının expanded_prompt sütununda mevcuttur.

  
      
          
      
      
          
      
  
      
          
      
      
          
      
  
      
          
      

## Kandinsky 5.0 Lite Distill Yan Yana değerlendirme

  
      
          
      
      
          
      

## Kandinsky5T2VPipeline[[diffusers.Kandinsky5T2VPipeline]]

#### diffusers.Kandinsky5T2VPipeline[[diffusers.Kandinsky5T2VPipeline]]

```python
diffusers.Kandinsky5T2VPipeline(transformer: Kandinsky5Transformer3DModel, vae: AutoencoderKLHunyuanVideo, text_encoder: Qwen2_5_VLForConditionalGeneration, tokenizer: Qwen2VLProcessor, text_encoder_2: CLIPTextModel, tokenizer_2: CLIPTokenizer, scheduler: FlowMatchEulerDiscreteScheduler)
```

[Kaynak](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/kandinsky5/pipeline_kandinsky.py#L131)

**Parametreler:**

transformer (`Kandinsky5Transformer3DModel`) : Kodlanmış video latentlerini gürültüden arındırmak için kullanılan koşullu Transformer.

vae ([AutoencoderKLHunyuanVideo](/docs/diffusers/main/tr/api/models/autoencoder_kl_hunyuan_video#diffusers.AutoencoderKLHunyuanVideo)) : Videoları latent temsillere kodlamak ve bu temsillerden çözmek için [hunyuanvideo-community/HunyuanVideo (vae)](https://huggingface.co/hunyuanvideo-community/HunyuanVideo) Varyasyonel Oto-Kodlayıcı Modeli.

text_encoder (`Qwen2_5_VLForConditionalGeneration`) : Donmuş metin kodlayıcı [Qwen2.5-VL](https://huggingface.co/Qwen/Qwen2.5-VL-7B-Instruct).

tokenizer (`AutoProcessor`) : Qwen2.5-VL için Tokenizer.

text_encoder_2 (`CLIPTextModel`) : Donmuş [CLIP](https://huggingface.co/docs/transformers/model_doc/clip#transformers.CLIPTextModel), özellikle [clip-vit-large-patch14](https://huggingface.co/openai/clip-vit-large-patch14) varyantı.

tokenizer_2 (`CLIPTokenizer`) : CLIP için tokenizer.

scheduler ([FlowMatchEulerDiscreteScheduler](/docs/diffusers/main/tr/api/schedulers/flow_match_euler_discrete#diffusers.FlowMatchEulerDiscreteScheduler)) : Kodlanmış video latentlerini gürültüden arındırmak için `transformer` ile birlikte kullanılacak bir zamanlayıcı.

Kandinsky 5.0 kullanılarak metinden videoya üretim için Pipeline.

Bu model [DiffusionPipeline](/docs/diffusers/main/tr/api/pipelines/overview#diffusers.DiffusionPipeline) sınıfından devralınmıştır. Tüm pipeline'lar için uygulanan genel yöntemlerin (indirme, kaydetme, belirli bir cihazda çalıştırma vb.) belgelerini üst sınıfın dokümantasyonunda bulabilirsiniz.

#### __call__[[diffusers.Kandinsky5T2VPipeline.__call__]]

```python
__call__(prompt: str | list[str] = None, negative_prompt: str | list[str] | None = None, height: int = 512, width: int = 768, num_frames: int = 121, num_inference_steps: int = 50, guidance_scale: float = 5.0, num_videos_per_prompt: int | None = 1, generator: typing.Union[torch.Generator, list[torch.Generator], NoneType] = None, latents: typing.Optional[torch.Tensor] = None, prompt_embeds_qwen: typing.Optional[torch.Tensor] = None, prompt_embeds_clip: typing.Optional[torch.Tensor] = None, negative_prompt_embeds_qwen: typing.Optional[torch.Tensor] = None, negative_prompt_embeds_clip: typing.Optional[torch.Tensor] = None, prompt_cu_seqlens: typing.Optional[torch.Tensor] = None, negative_prompt_cu_seqlens: typing.Optional[torch.Tensor] = None, output_type: str | None = 'pil', return_dict: bool = True, callback_on_step_end: typing.Union[typing.Callable[[int, int], NoneType], diffusers.callbacks.PipelineCallback, diffusers.callbacks.MultiPipelineCallbacks, NoneType] = None, callback_on_step_end_tensor_inputs: list = ['latents'], max_sequence_length: int = 512)
```

[Kaynak](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/kandinsky5/pipeline_kandinsky.py#L680)

**Parametreler:**

prompt (`str` veya `list[str]`, *isteğe bağlı*) : Video üretimini yönlendirmek için istem veya istemler. Tanımlanmamışsa, bunun yerine `prompt_embeds` geçirin.

negative_prompt (`str` veya `list[str]`, *isteğe bağlı*) : Video üretimi sırasında kaçınılması gereken istem veya istemler. Tanımlanmamışsa bunun yerine `negative_prompt_embeds` geçirin. Rehberlik kullanılmadığında (`guidance_scale` < `1`) yok sayılır.

height (`int`, varsayılan `512`) : Üretilen videonun piksel cinsinden yüksekliği.

width (`int`, varsayılan `768`) : Üretilen videonun piksel cinsinden genişliği.

num_frames (`int`, varsayılan `25`) : Üretilen videodaki kare sayısı.

num_inference_steps (`int`, varsayılan `50`) : Gürültü azaltma adım sayısı.

guidance_scale (`float`, varsayılan `5.0`) : Sınıflandırıcı-ücretsiz yönlendirmede (classifier-free guidance) tanımlanan yönlendirme ölçeği.

num_videos_per_prompt (`int`, *isteğe bağlı*, varsayılan 1) : Her istem için üretilecek video sayısı.

generator (`torch.Generator` veya `list[torch.Generator]`, *isteğe bağlı*) : Üretimi deterministik hale getirmek için bir torch üreteci.

latents (`torch.Tensor`, *isteğe bağlı*) : Önceden oluşturulmuş gürültülü latentler.

prompt_embeds_qwen (`torch.Tensor`, *isteğe bağlı*) : Qwen metin kodlayıcısından gelen önceden oluşturulmuş metin gömme değerleri.

prompt_embeds_clip (`torch.Tensor`, *isteğe bağlı*) : CLIP metin kodlayıcısından gelen önceden oluşturulmuş metin gömme değerleri.

negative_prompt_embeds_qwen (`torch.Tensor`, *isteğe bağlı*) : Qwen metin kodlayıcısından önceden oluşturulmuş negatif metin gömme değerleri.

negative_prompt_embeds_clip (`torch.Tensor`, *isteğe bağlı*) : CLIP metin kodlayıcısından önceden oluşturulmuş negatif metin gömme değerleri.

prompt_cu_seqlens (`torch.Tensor`, *isteğe bağlı*) : Qwen prompt gömme verileri için kümülatif dizi uzunlukları, değişken uzunluklu dikkat için kullanılır.

negative_prompt_cu_seqlens (`torch.Tensor`, *isteğe bağlı*) : Qwen negatif istem gömme verileri için kümülatif dizi uzunlukları, değişken uzunluklu dikkat için kullanılır.

output_type (`str`, *isteğe bağlı*, varsayılan `"pil"`) : Üretilen videonun çıktı biçimi.

return_dict (`bool`, *isteğe bağlı*, varsayılan `True`) : Bir `KandinskyPipelineOutput` döndürülecek mi?

callback_on_step_end (`Callable`, `PipelineCallback`, `MultiPipelineCallbacks`, *isteğe bağlı*) : Her gürültü azaltma adımının sonunda çağrılan bir işlev.

callback_on_step_end_tensor_inputs (`list`, *isteğe bağlı*) : `callback_on_step_end` fonksiyonu için girdi tensörlerinin listesi.

max_sequence_length (`int`, varsayılan `512`) : Metin kodlama için maksimum dizi uzunluğu.

**Dönüş:** `~KandinskyPipelineOutput` veya `tuple`

`return_dict` `True` ise `KandinskyPipelineOutput` döndürülür, aksi halde ilk öğesi üretilen görsellerin listesini içeren bir `tuple` döndürülür.

Üretim için pipeline'ın çağrı fonksiyonu.

Örnekler:

```python
>>> import torch
>>> from diffusers import Kandinsky5T2VPipeline
>>> from diffusers.utils import export_to_video

>>> # Available models:
>>> # kandinskylab/Kandinsky-5.0-T2V-Pro-sft-5s-Diffusers
>>> # kandinskylab/Kandinsky-5.0-T2V-Lite-sft-5s-Diffusers
>>> # kandinskylab/Kandinsky-5.0-T2V-Lite-nocfg-5s-Diffusers
>>> # kandinskylab/Kandinsky-5.0-T2V-Lite-distilled16steps-5s-Diffusers
>>> # kandinskylab/Kandinsky-5.0-T2V-Lite-pretrain-5s-Diffusers
>>> # kandinskylab/Kandinsky-5.0-T2V-Lite-sft-10s-Diffusers
>>> # kandinskylab/Kandinsky-5.0-T2V-Lite-nocfg-10s-Diffusers
>>> # kandinskylab/Kandinsky-5.0-T2V-Lite-distilled16steps-10s-Diffusers
>>> # kandinskylab/Kandinsky-5.0-T2V-Lite-pretrain-10s-Diffusers

>>> model_id = "kandinskylab/Kandinsky-5.0-T2V-Lite-sft-5s-Diffusers"
>>> pipe = Kandinsky5T2VPipeline.from_pretrained(model_id, torch_dtype=torch.bfloat16)
>>> pipe = pipe.to("cuda")

>>> prompt = "A cat and a dog baking a cake together in a kitchen."
>>> negative_prompt = "Static, 2D cartoon, cartoon, 2d animation, paintings, images, worst quality, low quality, ugly, deformed, walking backwards"

>>> output = pipe(
...     prompt=prompt,
...     negative_prompt=negative_prompt,
...     height=512,
...     width=768,
...     num_frames=121,
...     num_inference_steps=50,
...     guidance_scale=5.0,
... ).frames[0]

>>> export_to_video(output, "output.mp4", fps=24, quality=9)
```

#### check_inputs[[diffusers.Kandinsky5T2VPipeline.check_inputs]]

```python
check_inputs(prompt, negative_prompt, height, width, prompt_embeds_qwen = None, prompt_embeds_clip = None, negative_prompt_embeds_qwen = None, negative_prompt_embeds_clip = None, prompt_cu_seqlens = None, negative_prompt_cu_seqlens = None, callback_on_step_end_tensor_inputs = None, max_sequence_length = None)
```

[Kaynak](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/kandinsky5/pipeline_kandinsky.py#L511)

**Parametreler:**

prompt : Girdi istemi

negative_prompt : Yönlendirme için negatif istem

height : Video yüksekliği

width : Video genişliği

prompt_embeds_qwen : Ön hesaplanmış Qwen istek gömme değerleri

prompt_embeds_clip : Ön hesaplanmış CLIP istem gömme değerleri

negative_prompt_embeds_qwen : Ön hesaplanmış Qwen negatif istem gömme değerleri

negative_prompt_embeds_clip : Ön hesaplanmış CLIP negatif istek gömme değerleri

prompt_cu_seqlens : Qwen olumlu istemi için önceden hesaplanmış kümülatif dizi uzunlukları

negative_prompt_cu_seqlens : Qwen negatif istemi için önceden hesaplanmış kümülatif dizi uzunlukları

callback_on_step_end_tensor_inputs : Geri çağrı girdi tensörleri

**Yükselen:** ``ValueError``

- ``ValueError`` -- Girdiler geçersizse

Hattın girdi parametrelerini doğrulayın.

#### encode_prompt[[diffusers.Kandinsky5T2VPipeline.encode_prompt]]

```python
encode_prompt(prompt: str | list[str], num_videos_per_prompt: int = 1, max_sequence_length: int = 512, device: typing.Optional[torch.device] = None, dtype: typing.Optional[torch.dtype] = None)
```

[Kaynak](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/kandinsky5/pipeline_kandinsky.py#L418)

**Parametreler:**

prompt (`str` veya `list[str]`) : Kodlanacak istem.

num_videos_per_prompt (`int`, *isteğe bağlı*, varsayılan 1) : Her istem için üretilecek video sayısı.

max_sequence_length (`int`, *isteğe bağlı*, varsayılan 512) : Metin kodlama için maksimum dizi uzunluğu.

device (`torch.device`, *isteğe bağlı*) : Torch cihazı.

dtype (`torch.dtype`, *isteğe bağlı*) : Torch dtype.

**Dönüş:** tuple[torch.Tensor, torch.Tensor, torch.Tensor]

- Şekli (batch_size * num_videos_per_prompt, sequence_length, embedding_dim) olan Qwen metin gömme değerleri
- CLIP havuzlanmış gömme değerleri, şekli (batch_size * num_videos_per_prompt, clip_embedding_dim)
- Qwen gömmelemeleri için kümülatif dizi uzunlukları (`cu_seqlens`), şekli (batch_size * num_videos_per_prompt + 1,)

Tek bir istemi (pozitif veya negatif) metin kodlayıcı gizli durumlarına kodlar.

Bu yöntem, video üretimi için kapsamlı metin temsilleri oluşturmak üzere hem Qwen2.5-VL hem de CLIP metin kodlayıcılarından gelen gömme (embedding) değerlerini birleştirir.

#### fast_sta_nabla[[diffusers.Kandinsky5T2VPipeline.fast_sta_nabla]]

```python
fast_sta_nabla(T: int, H: int, W: int, wT: int = 3, wH: int = 3, wW: int = 3, device = 'cuda')
```

[Kaynak](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/kandinsky5/pipeline_kandinsky.py#L229)

**Parametreler:**

T (int) : Zaman çerçevelerinin sayısı

H (int) : Gizli uzaydaki yükseklik

W (int) : Gizli uzaydaki genişlik

wT (int) : Zaman dikkat penceresi boyutu

wH (int) : Yükseklik dikkat pencere boyutu

wW (int) : Genişlik dikkat pencere boyutu

device (str) : Tensörün oluşturulacağı cihaz

**Dönüş:** `torch.Tensor`

(T*H*W, T*H*W) boyutunda seyrek dikkat maskesi

Verimli video üretimi için seyrek zamansal dikkat (STA) maskesi oluşturun.

Bu yöntem, dikkati yakın karelere ve uzamsal konumlara sınırlayan bir maske oluşturarak video üretimi için hesaplama karmaşıklığını azaltır.

#### get_sparse_params[[diffusers.Kandinsky5T2VPipeline.get_sparse_params]]

```python
get_sparse_params(sample, device)
```

[Kaynak](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/kandinsky5/pipeline_kandinsky.py#L264)

**Parametreler:**

sample (torch.Tensor) : Girdi örnek tensörü

device (torch.device) : Tensörlerin yerleştirileceği cihaz

**Dönüş:** `Dict`

Seyrek dikkat parametrelerini içeren sözlük

Örnek boyutlarına dayalı olarak dönüştürücü için seyrek dikkat parametreleri oluşturun.

Bu yöntem, dönüştürücü modelde verimli video işleme için gereken seyrek dikkat yapılandırmasını hesaplar.

#### prepare_latents[[diffusers.Kandinsky5T2VPipeline.prepare_latents]]

```python
prepare_latents(batch_size: int, num_channels_latents: int = 16, height: int = 480, width: int = 832, num_frames: int = 81, dtype: typing.Optional[torch.dtype] = None, device: typing.Optional[torch.device] = None, generator: typing.Union[torch.Generator, list[torch.Generator], NoneType] = None, latents: typing.Optional[torch.Tensor] = None)
```

[Kaynak](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/kandinsky5/pipeline_kandinsky.py#L597)

**Parametreler:**

batch_size (int) : Üretilecek video sayısı

num_channels_latents (int) : Gizli uzaydaki kanal sayısı

height (int) : Üretilen videonun yüksekliği

width (int) : Üretilen videonun genişliği

num_frames (int) : Videodaki kare sayısı

dtype (torch.dtype) : Latentler için veri türü

device (torch.device) : Latent'lerin oluşturulacağı cihaz

generator (torch.Generator) : Rastgele sayı üreteci

latents (torch.Tensor) : Kullanılacak mevcut latentler

**Dönüş:** `torch.Tensor`

Hazırlanmış latent tensör

Video üretimi için başlangıç gizli değişkenlerini hazırlar.

Bu yöntem, gürültü azaltma sürecinin başlangıç noktası olarak rastgele gürültü latentleri oluşturur veya sağlanan latentleri kullanır.

## Kandinsky5I2VPipeline[[diffusers.Kandinsky5I2VPipeline]]

#### diffusers.Kandinsky5I2VPipeline[[diffusers.Kandinsky5I2VPipeline]]

```python
diffusers.Kandinsky5I2VPipeline(transformer: Kandinsky5Transformer3DModel, vae: AutoencoderKLHunyuanVideo, text_encoder: Qwen2_5_VLForConditionalGeneration, tokenizer: Qwen2VLProcessor, text_encoder_2: CLIPTextModel, tokenizer_2: CLIPTokenizer, scheduler: FlowMatchEulerDiscreteScheduler)
```

[Kaynak](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/kandinsky5/pipeline_kandinsky_i2v.py#L128)

**Parametreler:**

transformer (`Kandinsky5Transformer3DModel`) : Kodlanmış video latentlerini gürültüden arındırmak için kullanılan koşullu Transformer.

vae ([AutoencoderKLHunyuanVideo](/docs/diffusers/main/tr/api/models/autoencoder_kl_hunyuan_video#diffusers.AutoencoderKLHunyuanVideo)) : Videoları latent temsillere kodlamak ve bu temsillerden çözmek için [hunyuanvideo-community/HunyuanVideo (vae)](https://huggingface.co/hunyuanvideo-community/HunyuanVideo) Varyasyonel Oto-Kodlayıcı Modeli.

text_encoder (`Qwen2_5_VLForConditionalGeneration`) : Donmuş metin kodlayıcı [Qwen2.5-VL](https://huggingface.co/Qwen/Qwen2.5-VL-7B-Instruct).

tokenizer (`AutoProcessor`) : Qwen2.5-VL için Tokenizer.

text_encoder_2 (`CLIPTextModel`) : Donmuş [CLIP](https://huggingface.co/docs/transformers/model_doc/clip#transformers.CLIPTextModel), özellikle [clip-vit-large-patch14](https://huggingface.co/openai/clip-vit-large-patch14) varyantı.

tokenizer_2 (`CLIPTokenizer`) : CLIP için tokenizer.

scheduler ([FlowMatchEulerDiscreteScheduler](/docs/diffusers/main/tr/api/schedulers/flow_match_euler_discrete#diffusers.FlowMatchEulerDiscreteScheduler)) : Kodlanmış video latentlerini gürültüden arındırmak için `transformer` ile birlikte kullanılacak bir zamanlayıcı.

Kandinsky 5.0 kullanılarak görüntüden videoya üretim için Pipeline.

Bu model [DiffusionPipeline](/docs/diffusers/main/tr/api/pipelines/overview#diffusers.DiffusionPipeline) sınıfından devralınmıştır. Tüm pipeline'lar için uygulanan genel yöntemlerin (indirme, kaydetme, belirli bir cihazda çalıştırma vb.) belgelerini üst sınıfın dokümantasyonunda bulabilirsiniz.

#### __call__[[diffusers.Kandinsky5I2VPipeline.__call__]]

```python
__call__(image: typing.Union[PIL.Image.Image, numpy.ndarray, torch.Tensor, list[PIL.Image.Image], list[numpy.ndarray], list[torch.Tensor]], prompt: str | list[str] = None, negative_prompt: str | list[str] | None = None, height: int = 512, width: int = 768, num_frames: int = 121, num_inference_steps: int = 50, guidance_scale: float = 5.0, num_videos_per_prompt: int | None = 1, generator: typing.Union[torch.Generator, list[torch.Generator], NoneType] = None, latents: typing.Optional[torch.Tensor] = None, prompt_embeds_qwen: typing.Optional[torch.Tensor] = None, prompt_embeds_clip: typing.Optional[torch.Tensor] = None, negative_prompt_embeds_qwen: typing.Optional[torch.Tensor] = None, negative_prompt_embeds_clip: typing.Optional[torch.Tensor] = None, prompt_cu_seqlens: typing.Optional[torch.Tensor] = None, negative_prompt_cu_seqlens: typing.Optional[torch.Tensor] = None, output_type: str | None = 'pil', return_dict: bool = True, callback_on_step_end: typing.Optional[typing.Callable[[int, int, NoneType], diffusers.callbacks.PipelineCallback | diffusers.callbacks.MultiPipelineCallbacks]] = None, callback_on_step_end_tensor_inputs: list = ['latents'], max_sequence_length: int = 512)
```

[Kaynak](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/kandinsky5/pipeline_kandinsky_i2v.py#L748)

**Parametreler:**

image (`PipelineImageInput`) : Üretimi koşullandırmak için girdi olarak kullanılan görüntü. Bir görüntü, görüntü listesi veya `torch.Tensor` olmalıdır.

prompt (`str` veya `list[str]`, *isteğe bağlı*) : Video üretimini yönlendirmek için istem veya istemler. Tanımlanmamışsa, bunun yerine `prompt_embeds` geçirin.

negative_prompt (`str` veya `list[str]`, *isteğe bağlı*) : Video üretimi sırasında kaçınılması gereken istem veya istemler. Tanımlanmamışsa bunun yerine `negative_prompt_embeds` geçirin. Rehberlik kullanılmadığında (`guidance_scale` < `1`) yok sayılır.

height (`int`, varsayılan `512`) : Üretilen videonun piksel cinsinden yüksekliği.

width (`int`, varsayılan `768`) : Üretilen videonun piksel cinsinden genişliği.

num_frames (`int`, varsayılan `121`) : Üretilen videodaki kare sayısı.

num_inference_steps (`int`, varsayılan `50`) : Gürültü azaltma adım sayısı.

guidance_scale (`float`, varsayılan `5.0`) : Sınıflandırıcı-ücretsiz yönlendirmede (classifier-free guidance) tanımlanan yönlendirme ölçeği.

num_videos_per_prompt (`int`, *isteğe bağlı*, varsayılan 1) : Her istem için üretilecek video sayısı.

generator (`torch.Generator` veya `list[torch.Generator]`, *isteğe bağlı*) : Üretimi deterministik hale getirmek için bir torch üreteci.

latents (`torch.Tensor`, *isteğe bağlı*) : Önceden oluşturulmuş gürültülü latentler.

prompt_embeds_qwen (`torch.Tensor`, *isteğe bağlı*) : Önceden oluşturulmuş Qwen metin gömme değerleri.

prompt_embeds_clip (`torch.Tensor`, *isteğe bağlı*) : Önceden oluşturulmuş CLIP metin gömme değerleri.

negative_prompt_embeds_qwen (`torch.Tensor`, *isteğe bağlı*) : Önceden oluşturulmuş Qwen negatif metin gömme değerleri.

negative_prompt_embeds_clip (`torch.Tensor`, *isteğe bağlı*) : Ön oluşturulmuş CLIP negatif metin gömme değerleri.

prompt_cu_seqlens (`torch.Tensor`, *isteğe bağlı*) : Qwen olumlu istemi için önceden oluşturulmuş kümülatif dizi uzunlukları.

negative_prompt_cu_seqlens (`torch.Tensor`, *isteğe bağlı*) : Qwen negatif istemi için önceden oluşturulmuş kümülatif dizi uzunlukları.

output_type (`str`, *isteğe bağlı*, varsayılan `"pil"`) : Üretilen videonun çıktı biçimi.

return_dict (`bool`, *isteğe bağlı*, varsayılan `True`) : Bir `KandinskyPipelineOutput` döndürülecek mi?

callback_on_step_end (`Callable`, `PipelineCallback`, `MultiPipelineCallbacks`, *isteğe bağlı*) : Her gürültü azaltma adımının sonunda çağrılan bir işlev.

callback_on_step_end_tensor_inputs (`List`, *isteğe bağlı*) : `callback_on_step_end` işlevi için girdi tensörlerinin listesi.

max_sequence_length (`int`, varsayılan `512`) : Metin kodlama için maksimum dizi uzunluğu.

**Dönüş:** `~KandinskyPipelineOutput` veya `tuple`

`return_dict` `True` ise `KandinskyPipelineOutput` döndürülür, aksi halde ilk öğesi üretilen videoların listesini içeren bir `tuple` döndürülür.

Görselden video üretimi için pipeline'ın çağrı fonksiyonu.

Örnekler:

```python
>>> import torch
>>> from diffusers import Kandinsky5I2VPipeline
>>> from diffusers.utils import export_to_video, load_image

>>> # Available models:
>>> # kandinskylab/Kandinsky-5.0-I2V-Pro-sft-5s-Diffusers

>>> model_id = "kandinskylab/Kandinsky-5.0-I2V-Pro-sft-5s-Diffusers"
>>> pipe = Kandinsky5I2VPipeline.from_pretrained(model_id, torch_dtype=torch.bfloat16)
>>> pipe = pipe.to("cuda")

>>> image = load_image(
...     "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/diffusers/astronaut.jpg"
... )
>>> prompt = "An astronaut floating in space with Earth in the background, cinematic shot"
>>> negative_prompt = "Static, 2D cartoon, cartoon, 2d animation, paintings, images, worst quality, low quality, ugly, deformed, walking backwards"

>>> output = pipe(
...     image=image,
...     prompt=prompt,
...     negative_prompt=negative_prompt,
...     height=512,
...     width=768,
...     num_frames=121,
...     num_inference_steps=50,
...     guidance_scale=5.0,
... ).frames[0]

>>> export_to_video(output, "output.mp4", fps=24, quality=9)
```

#### check_inputs[[diffusers.Kandinsky5I2VPipeline.check_inputs]]

```python
check_inputs(prompt, negative_prompt, image, height, width, prompt_embeds_qwen = None, prompt_embeds_clip = None, negative_prompt_embeds_qwen = None, negative_prompt_embeds_clip = None, prompt_cu_seqlens = None, negative_prompt_cu_seqlens = None, callback_on_step_end_tensor_inputs = None, max_sequence_length = None)
```

[Kaynak](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/kandinsky5/pipeline_kandinsky_i2v.py#L545)

**Parametreler:**

prompt : Girdi istemi

negative_prompt : Yönlendirme için negatif istem

image : Koşullandırma için giriş görüntüsü

height : Video yüksekliği

width : Video genişliği

prompt_embeds_qwen : Ön hesaplanmış Qwen istek gömme değerleri

prompt_embeds_clip : Ön hesaplanmış CLIP istem gömme değerleri

negative_prompt_embeds_qwen : Ön hesaplanmış Qwen negatif istem gömme değerleri

negative_prompt_embeds_clip : Ön hesaplanmış CLIP negatif istek gömme değerleri

prompt_cu_seqlens : Qwen olumlu istemi için önceden hesaplanmış kümülatif dizi uzunlukları

negative_prompt_cu_seqlens : Qwen negatif istemi için önceden hesaplanmış kümülatif dizi uzunlukları

callback_on_step_end_tensor_inputs : Geri çağrı girdi tensörleri

**Yükselen:** ``ValueError``

- ``ValueError`` -- Girdiler geçersizse

Hattın girdi parametrelerini doğrulayın.

#### encode_prompt[[diffusers.Kandinsky5I2VPipeline.encode_prompt]]

```python
encode_prompt(prompt: str | list[str], num_videos_per_prompt: int = 1, max_sequence_length: int = 512, device: typing.Optional[torch.device] = None, dtype: typing.Optional[torch.dtype] = None)
```

[Kaynak](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/kandinsky5/pipeline_kandinsky_i2v.py#L454)

**Parametreler:**

prompt (`str` veya `list[str]`) : Kodlanacak istem.

num_videos_per_prompt (`int`, *isteğe bağlı*, varsayılan 1) : Her istem için üretilecek video sayısı.

max_sequence_length (`int`, *isteğe bağlı*, varsayılan 512) : Metin kodlama için maksimum dizi uzunluğu.

device (`torch.device`, *isteğe bağlı*) : Torch cihazı.

dtype (`torch.dtype`, *isteğe bağlı*) : Torch dtype.

**Dönüş:** tuple[torch.Tensor, torch.Tensor, torch.Tensor]

- Şekli (batch_size * num_videos_per_prompt, sequence_length, embedding_dim) olan Qwen metin gömme değerleri
- CLIP havuzlanmış gömme değerleri, şekli (batch_size * num_videos_per_prompt, clip_embedding_dim)
- Qwen gömmelemeleri için kümülatif dizi uzunlukları (`cu_seqlens`), şekli (batch_size * num_videos_per_prompt + 1,)

Tek bir istemi (pozitif veya negatif) metin kodlayıcı gizli durumlarına kodlar.

Bu yöntem, video üretimi için kapsamlı metin temsilleri oluşturmak üzere hem Qwen2.5-VL hem de CLIP metin kodlayıcılarından gelen gömme (embedding) değerlerini birleştirir.

#### fast_sta_nabla[[diffusers.Kandinsky5I2VPipeline.fast_sta_nabla]]

```python
fast_sta_nabla(T: int, H: int, W: int, wT: int = 3, wH: int = 3, wW: int = 3, device = 'cuda')
```

[Kaynak](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/kandinsky5/pipeline_kandinsky_i2v.py#L226)

**Parametreler:**

T (int) : Zaman çerçevelerinin sayısı

H (int) : Gizli uzaydaki yükseklik

W (int) : Gizli uzaydaki genişlik

wT (int) : Zaman dikkat penceresi boyutu

wH (int) : Yükseklik dikkat pencere boyutu

wW (int) : Genişlik dikkat pencere boyutu

device (str) : Tensörün oluşturulacağı cihaz

**Dönüş:** `torch.Tensor`

(T*H*W, T*H*W) boyutunda seyrek dikkat maskesi

Verimli video üretimi için seyrek zamansal dikkat (STA) maskesi oluşturun.

Bu yöntem, dikkati yakın karelere ve uzamsal konumlara sınırlayan bir maske oluşturarak video üretimi için hesaplama karmaşıklığını azaltır.

#### get_sparse_params[[diffusers.Kandinsky5I2VPipeline.get_sparse_params]]

```python
get_sparse_params(sample, device)
```

[Kaynak](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/kandinsky5/pipeline_kandinsky_i2v.py#L261)

**Parametreler:**

sample (torch.Tensor) : Girdi örnek tensörü

device (torch.device) : Tensörlerin yerleştirileceği cihaz

**Dönüş:** `Dict`

Seyrek dikkat parametrelerini içeren sözlük

Örnek boyutlarına dayalı olarak dönüştürücü için seyrek dikkat parametreleri oluşturun.

Bu yöntem, dönüştürücü modelde verimli video işleme için gereken seyrek dikkat yapılandırmasını hesaplar.

#### prepare_latents[[diffusers.Kandinsky5I2VPipeline.prepare_latents]]

```python
prepare_latents(image: typing.Union[PIL.Image.Image, numpy.ndarray, torch.Tensor, list[PIL.Image.Image], list[numpy.ndarray], list[torch.Tensor]], batch_size: int, num_channels_latents: int = 16, height: int = 480, width: int = 832, num_frames: int = 81, dtype: typing.Optional[torch.dtype] = None, device: typing.Optional[torch.device] = None, generator: typing.Union[torch.Generator, list[torch.Generator], NoneType] = None, latents: typing.Optional[torch.Tensor] = None)
```

[Kaynak](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/kandinsky5/pipeline_kandinsky_i2v.py#L636)

**Parametreler:**

image (PipelineImageInput) : Üretimi koşullandırmak için girdi görseli

batch_size (int) : Üretilecek video sayısı

num_channels_latents (int) : Gizli uzaydaki kanal sayısı

height (int) : Üretilen videonun yüksekliği

width (int) : Üretilen videonun genişliği

num_frames (int) : Videodaki kare sayısı

dtype (torch.dtype) : Latentler için veri türü

device (torch.device) : Latent'lerin oluşturulacağı cihaz

generator (torch.Generator) : Rastgele sayı üreteci

latents (torch.Tensor) : Kullanılacak mevcut latentler

**Dönüş:** `torch.Tensor`

İlk kare kodlanmış görüntü olarak hazırlanmış latent tensör

Görselden video üretiminde başlangıç gizli değişkenlerini hazırlar.

Bu yöntem, ilk kare hariç tüm kareler için rastgele gürültü latentleri oluşturur; ilk kare, kodlanmış giriş görseliyle değiştirilir.

## Atıf
```bibtex
@misc{kandinsky2025,
    author = {Alexander Belykh and Alexander Varlamov and Alexey Letunovskiy and Anastasia Aliaskina and Anastasia Maltseva and Anastasiia Kargapoltseva and Andrey Shutkin and Anna Averchenkova and Anna Dmitrienko and Bulat Akhmatov and Denis Dimitrov and Denis Koposov and Denis Parkhomenko and Dmitrii and Ilya Vasiliev and Ivan Kirillov and Julia Agafonova and Kirill Chernyshev and Kormilitsyn Semen and Lev Novitskiy and Maria Kovaleva and Mikhail Mamaev and Mikhailov and Nikita Kiselev and Nikita Osterov and Nikolai Gerasimenko and Nikolai Vaulin and Olga Kim and Olga Vdovchenko and Polina Gavrilova and Polina Mikhailova and Tatiana Nikulina and Viacheslav Vasilev and Vladimir Arkhipkin and Vladimir Korviakov and Vladimir Polovnikov and Yury Kolabushin},
    title = {Kandinsky 5.0: A family of diffusion models for Video & Image generation},
    howpublished = {\url{https://github.com/kandinskylab/Kandinsky-5}},
    year = 2025
}
```

