Diffusers documentation
Kandinsky 5.0 Video
Kandinsky 5.0 Video
Kandinsky 5.0, 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 adresinde bulunabilir.
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 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 Alanları | |------------|-------------|-----------| | kandinskylab/Kandinsky-5.0-T2V-Lite-sft-5s-Diffusers | 5 saniyelik Gözetimli İnce Ayarlı 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 Classifier-Free Guidance damıtılmış | 2× daha hızlı çıkarım | | kandinskylab/Kandinsky-5.0-T2V-Lite-nocfg-10s-Diffusers | 10 saniyelik Classifier-Free Guidance damıtılmış | 2× daha hızlı çıkarım | | kandinskylab/Kandinsky-5.0-T2V-Lite-distilled16steps-5s-Diffusers | 16 adıma damıtılmış 5 saniyelik Diffusion | 6× daha hızlı çıkarım, minimal kalite kaybı | | kandinskylab/Kandinsky-5.0-T2V-Lite-distilled16steps-10s-Diffusers | 16 adıma damıtılmış 10 saniyelik Diffusion | 6× daha hızlı çıkarım, minimal kalite kaybı | | kandinskylab/Kandinsky-5.0-T2V-Lite-pretrain-5s-Diffusers | 5 saniyelik Temel ön eğitilmiş model | Araştırma ve ince ayar | | kandinskylab/Kandinsky-5.0-T2V-Lite-pretrain-10s-Diffusers | 10 saniyelik Temel ö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
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
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:
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):
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
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'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
sınıf diffusers.Kandinsky5T2VPipeline
< source >( transformer: Kandinsky5Transformer3DModelvae: AutoencoderKLHunyuanVideotext_encoder: Qwen2_5_VLForConditionalGenerationtokenizer: Qwen2VLProcessortext_encoder_2: CLIPTextModeltokenizer_2: CLIPTokenizerscheduler: FlowMatchEulerDiscreteScheduler )
Parametreler
- transformer (
Kandinsky5Transformer3DModel) — Kodlanmış video latentlerini gürültüden arındırmak için kullanılan Koşullu Transformer. - vae (AutoencoderKLHunyuanVideo) — Video'ları latent temsillere kodlamak ve bu temsillerden video'ları çözmek için kullanılan Varyasyonel Oto-Kodlayıcı Modeli hunyuanvideo-community/HunyuanVideo (vae).
- text_encoder (
Qwen2_5_VLForConditionalGeneration) — Donmuş metin kodlayıcı Qwen2.5-VL. - tokenizer (
AutoProcessor) — Qwen2.5-VL için Tokenizer. - text_encoder_2 (
CLIPTextModel) — Donmuş CLIP, özellikle clip-vit-large-patch14 varyantı. - tokenizer_2 (
CLIPTokenizer) — CLIP için tokenizer. - scheduler (FlowMatchEulerDiscreteScheduler) —
Kodlanmış video latentlerini gürültüden arındırmak için
transformerile birlikte kullanılacak bir zamanlayıcı.
Kandinsky 5.0 kullanılarak metinden videoya üretim için Pipeline.
Bu model DiffusionPipeline sınıfından devralı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__
< source >( prompt: str | list[str] = Nonenegative_prompt: str | list[str] | None = Noneheight: int = 512width: int = 768num_frames: int = 121num_inference_steps: int = 50guidance_scale: float = 5.0num_videos_per_prompt: int | None = 1generator: typing.Union[torch.Generator, list[torch.Generator], NoneType] = Nonelatents: typing.Optional[torch.Tensor] = Noneprompt_embeds_qwen: typing.Optional[torch.Tensor] = Noneprompt_embeds_clip: typing.Optional[torch.Tensor] = Nonenegative_prompt_embeds_qwen: typing.Optional[torch.Tensor] = Nonenegative_prompt_embeds_clip: typing.Optional[torch.Tensor] = Noneprompt_cu_seqlens: typing.Optional[torch.Tensor] = Nonenegative_prompt_cu_seqlens: typing.Optional[torch.Tensor] = Noneoutput_type: str | None = 'pil'return_dict: bool = Truecallback_on_step_end: typing.Union[typing.Callable[[int, int], NoneType], diffusers.callbacks.PipelineCallback, diffusers.callbacks.MultiPipelineCallbacks, NoneType] = Nonecallback_on_step_end_tensor_inputs: list = ['latents']max_sequence_length: int = 512 ) → ~KandinskyPipelineOutput or tuple
Parametreler
- prompt (
strveyalist[str], isteğe bağlı) — Video üretimini yönlendirmek için istem veya istemler. Tanımlanmadıysa bunun yerineprompt_embedsgeçirin. - negative_prompt (
strveyalist[str], isteğe bağlı) — Video üretimi sırasında kaçınılması istenen istem veya istemler. Tanımlanmamışsa bunun yerinenegative_prompt_embedsgeçirin. Rehberlik kullanılmadığında (guidance_scale<1) yok sayılır. - height (
int, varsayılan512) — Oluşturulan videonun piksel cinsinden yüksekliği. - width (
int, varsayılan768) — Oluşturulan videonun piksel cinsinden genişliği. - num_frames (
int, varsayılan25) — Oluşturulan videodaki kare sayısı. - num_inference_steps (
int, varsayılan50) — Gürültü azaltma adım sayısı. - guidance_scale (
float, varsayılan5.0) — Sınıflandırıcı-özgür yönlendirmede (classifier-free guidance) tanımlandığı gibi yönlendirme ölçeği. - num_videos_per_prompt (
int, isteğe bağlı, varsayılan 1) — Her prompt için üretilecek video sayısı. - generator (
torch.Generatorveyalist[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 önceden oluşturulmuş metin gömme değerleri. - prompt_embeds_clip (
torch.Tensor, isteğe bağlı) — CLIP metin kodlayıcısından ö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ömmelemeleri 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") — Oluşturulan videonun çıktı biçimi. - return_dict (
bool, isteğe bağlı, varsayılanTrue) —KandinskyPipelineOutputdöndürülüp döndürülmemeye karar verir. - 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_endişlevi için girdi tensörlerinin listesi. - max_sequence_length (
int, varsayılan512) — Metin kodlama için maksimum dizi uzunluğu.
Dönüş değeri
~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:
>>> 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
< source >( promptnegative_promptheightwidthprompt_embeds_qwen = Noneprompt_embeds_clip = Nonenegative_prompt_embeds_qwen = Nonenegative_prompt_embeds_clip = Noneprompt_cu_seqlens = Nonenegative_prompt_cu_seqlens = Nonecallback_on_step_end_tensor_inputs = Nonemax_sequence_length = None )
Parametreler
- prompt — Girdi istemi
- negative_prompt — Yönlendirme için negatif prompt
- 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ömüleri
- negative_prompt_embeds_clip — Ön hesaplanmış CLIP negatif istem gömüleri
- 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ükseltilen
ValueError
ValueError— Girdiler geçersizse
Hattın girdi parametrelerini doğrulayın.
encode_prompt
< source >( prompt: str | list[str]num_videos_per_prompt: int = 1max_sequence_length: int = 512device: typing.Optional[torch.device] = Nonedtype: typing.Optional[torch.dtype] = None ) → tuple[torch.Tensor, torch.Tensor, torch.Tensor]
Parametreler
- prompt (
strveyalist[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üş değeri
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
< source >( T: intH: intW: intwT: int = 3wH: int = 3wW: int = 3device = 'cuda' ) → torch.Tensor
Parametreler
- T (int) — Zaman çerçevesi 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üş değeri
torch.Tensor
(THW, THW) biçiminde 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
< source >( sampledevice ) → Dict
Ö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
< source >( batch_size: intnum_channels_latents: int = 16height: int = 480width: int = 832num_frames: int = 81dtype: typing.Optional[torch.dtype] = Nonedevice: typing.Optional[torch.device] = Nonegenerator: typing.Union[torch.Generator, list[torch.Generator], NoneType] = Nonelatents: typing.Optional[torch.Tensor] = None ) → torch.Tensor
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 tipi
- device (torch.device) — Latent'lerin oluşturulacağı cihaz
- generator (torch.Generator) — Rastgele sayı üreteci
- latents (torch.Tensor) — Kullanılacak mevcut latentler
Dönüş değeri
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
sınıf diffusers.Kandinsky5I2VPipeline
< source >( transformer: Kandinsky5Transformer3DModelvae: AutoencoderKLHunyuanVideotext_encoder: Qwen2_5_VLForConditionalGenerationtokenizer: Qwen2VLProcessortext_encoder_2: CLIPTextModeltokenizer_2: CLIPTokenizerscheduler: FlowMatchEulerDiscreteScheduler )
Parametreler
- transformer (
Kandinsky5Transformer3DModel) — Kodlanmış video latentlerini gürültüden arındırmak için kullanılan Koşullu Transformer. - vae (AutoencoderKLHunyuanVideo) — Video'ları latent temsillere kodlamak ve bu temsillerden video'ları çözmek için kullanılan Varyasyonel Oto-Kodlayıcı Modeli hunyuanvideo-community/HunyuanVideo (vae).
- text_encoder (
Qwen2_5_VLForConditionalGeneration) — Donmuş metin kodlayıcı Qwen2.5-VL. - tokenizer (
AutoProcessor) — Qwen2.5-VL için Tokenizer. - text_encoder_2 (
CLIPTextModel) — Donmuş CLIP, özellikle clip-vit-large-patch14 varyantı. - tokenizer_2 (
CLIPTokenizer) — CLIP için tokenizer. - scheduler (FlowMatchEulerDiscreteScheduler) —
Kodlanmış video latentlerini gürültüden arındırmak için
transformerile birlikte kullanılacak bir zamanlayıcı.
Kandinsky 5.0 kullanılarak görüntüden videoya üretim için Pipeline.
Bu model DiffusionPipeline sınıfından devralı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__
< source >( image: typing.Union[PIL.Image.Image, numpy.ndarray, torch.Tensor, list[PIL.Image.Image], list[numpy.ndarray], list[torch.Tensor]]prompt: str | list[str] = Nonenegative_prompt: str | list[str] | None = Noneheight: int = 512width: int = 768num_frames: int = 121num_inference_steps: int = 50guidance_scale: float = 5.0num_videos_per_prompt: int | None = 1generator: typing.Union[torch.Generator, list[torch.Generator], NoneType] = Nonelatents: typing.Optional[torch.Tensor] = Noneprompt_embeds_qwen: typing.Optional[torch.Tensor] = Noneprompt_embeds_clip: typing.Optional[torch.Tensor] = Nonenegative_prompt_embeds_qwen: typing.Optional[torch.Tensor] = Nonenegative_prompt_embeds_clip: typing.Optional[torch.Tensor] = Noneprompt_cu_seqlens: typing.Optional[torch.Tensor] = Nonenegative_prompt_cu_seqlens: typing.Optional[torch.Tensor] = Noneoutput_type: str | None = 'pil'return_dict: bool = Truecallback_on_step_end: typing.Optional[typing.Callable[[int, int, NoneType], diffusers.callbacks.PipelineCallback | diffusers.callbacks.MultiPipelineCallbacks]] = Nonecallback_on_step_end_tensor_inputs: list = ['latents']max_sequence_length: int = 512 ) → ~KandinskyPipelineOutput or tuple
Parametreler
- image (
PipelineImageInput) — Üretimin koşullandırılacağı girdi görüntüsü. Bir görüntü, görüntü listesi veyatorch.Tensorolmalıdır. - prompt (
strveyalist[str], isteğe bağlı) — Video üretimini yönlendirmek için istem veya istemler. Tanımlanmadıysa bunun yerineprompt_embedsgeçirin. - negative_prompt (
strveyalist[str], isteğe bağlı) — Video üretimi sırasında kaçınılması istenen istem veya istemler. Tanımlanmamışsa bunun yerinenegative_prompt_embedsgeçirin. Rehberlik kullanılmadığında (guidance_scale<1) yok sayılır. - height (
int, varsayılan512) — Oluşturulan videonun piksel cinsinden yüksekliği. - width (
int, varsayılan768) — Oluşturulan videonun piksel cinsinden genişliği. - num_frames (
int, varsayılan121) — Oluşturulan videodaki kare sayısı. - num_inference_steps (
int, varsayılan50) — Gürültü azaltma adım sayısı. - guidance_scale (
float, varsayılan5.0) — Sınıflandırıcı-özgür yönlendirmede (classifier-free guidance) tanımlandığı gibi yönlendirme ölçeği. - num_videos_per_prompt (
int, isteğe bağlı, varsayılan 1) — Her prompt için üretilecek video sayısı. - generator (
torch.Generatorveyalist[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ömümeleri. - prompt_embeds_clip (
torch.Tensor, isteğe bağlı) — Önceden oluşturulmuş CLIP metin gömümeleri. - 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ı) — Önceden oluşturulmuş CLIP negatif metin gömümleri. - 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") — Oluşturulan videonun çıktı biçimi. - return_dict (
bool, isteğe bağlı, varsayılanTrue) —KandinskyPipelineOutputdöndürülüp döndürülmemeye karar verir. - 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_endişlevi için girdi tensörlerinin listesi. - max_sequence_length (
int, varsayılan512) — Metin kodlama için maksimum dizi uzunluğu.
Dönüş değeri
~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:
>>> 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
< source >( promptnegative_promptimageheightwidthprompt_embeds_qwen = Noneprompt_embeds_clip = Nonenegative_prompt_embeds_qwen = Nonenegative_prompt_embeds_clip = Noneprompt_cu_seqlens = Nonenegative_prompt_cu_seqlens = Nonecallback_on_step_end_tensor_inputs = Nonemax_sequence_length = None )
Parametreler
- prompt — Girdi istemi
- negative_prompt — Yönlendirme için negatif prompt
- image — Koşullandırma için girdi 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ömüleri
- negative_prompt_embeds_clip — Ön hesaplanmış CLIP negatif istem gömüleri
- 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ükseltilen
ValueError
ValueError— Girdiler geçersizse
Hattın girdi parametrelerini doğrulayın.
encode_prompt
< source >( prompt: str | list[str]num_videos_per_prompt: int = 1max_sequence_length: int = 512device: typing.Optional[torch.device] = Nonedtype: typing.Optional[torch.dtype] = None ) → tuple[torch.Tensor, torch.Tensor, torch.Tensor]
Parametreler
- prompt (
strveyalist[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üş değeri
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
< source >( T: intH: intW: intwT: int = 3wH: int = 3wW: int = 3device = 'cuda' ) → torch.Tensor
Parametreler
- T (int) — Zaman çerçevesi 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üş değeri
torch.Tensor
(THW, THW) biçiminde 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
< source >( sampledevice ) → Dict
Ö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
< source >( image: typing.Union[PIL.Image.Image, numpy.ndarray, torch.Tensor, list[PIL.Image.Image], list[numpy.ndarray], list[torch.Tensor]]batch_size: intnum_channels_latents: int = 16height: int = 480width: int = 832num_frames: int = 81dtype: typing.Optional[torch.dtype] = Nonedevice: typing.Optional[torch.device] = Nonegenerator: typing.Union[torch.Generator, list[torch.Generator], NoneType] = Nonelatents: typing.Optional[torch.Tensor] = None ) → torch.Tensor
Parametreler
- image (PipelineImageInput) — Üretimi koşullandırmak için girdi olarak kullanılan görüntü
- 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 tipi
- device (torch.device) — Latent'lerin oluşturulacağı cihaz
- generator (torch.Generator) — Rastgele sayı üreteci
- latents (torch.Tensor) — Kullanılacak mevcut latentler
Dönüş değeri
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
@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
}





