Buckets:

mishig's picture
|
download
raw
37.2 kB

Kandinsky 6

Kandinsky 6, Kandinsky Lab tarafından geliştirilen bir video üretim modeli ailesidir. Ana model, metinden veya bir referans görüntüden video ve senkronize ses üretmek için tek bir çok modlu difüzyon dönüştürücüsü kullanır: video ve ses latentleri, iki modalite arasında çapraz dikkat (cross-attention) uygulayan füzyon blokları aracılığıyla birlikte gürültüden arındırılır; her biri kendi Qwen2.5-VL metin dalı ve bir CLIP havuzlanmış gömme (pooled embedding) ile koşullandırılmıştır. Ayrı bir süper çözünürlük modeli, üretilen videoyu nedensel bir 3D K-VAE'nin latent uzayında karot karot (tile by tile) ölçek büyütür.

Hub'daki Kandinsky Lab kuruluşunu, hem temel hem de süper çözünürlük modellerinin akış eşleştirme ve damıtılmış varyantlarını içeren resmi kontrol noktalarının tam seti için inceleyin.

Distilled checkpoint'lar, az adımlı PiflowScheduler ile birlikte gelir ve guidance_scale=1.0 ile çalıştırılmalıdır.

Mevcut modeller

Model Pipeline Notlar
kandinskylab/Kandinsky-6.0-Pro-5s-Diffusers Kandinsky6TI2VAPipeline Akış eşleştirme, guidance_scale=5.0, 50 adım
kandinskylab/Kandinsky-6.0-Pro-distill-5s-Diffusers Kandinsky6TI2VAPipeline Distilled, guidance_scale=1.0, 10 adım
kandinskylab/Kandinsky-6.0-Lite-5s-Diffusers Kandinsky6TI2VAPipeline Akış eşleştirme, guidance_scale=5.0, 50 adım
kandinskylab/Kandinsky-6.0-Lite-distill-5s-Diffusers Kandinsky6TI2VAPipeline Distilled, guidance_scale=1.0, 10 adım
kandinskylab/Kandinsky-6.0-Pro-pretrain-5s-Diffusers Kandinsky6TI2VAPipeline Akış eşleştirme, guidance_scale=5.0, 50 adım
kandinskylab/Kandinsky-6.0-Lite-pretrain-5s-Diffusers Kandinsky6TI2VAPipeline Akış eşleştirme, guidance_scale=5.0, 50 adım
kandinskylab/Kandinsky-6.0-VSR-5s-Diffusers Kandinsky6SRPipeline Akış eşleştirme süper çözünürlüğü
kandinskylab/Kandinsky-6.0-VSR-distilled2steps-5s-Diffusers Kandinsky6SRPipeline Damıtılmış süper çözünürlük, 2 adım

Metin/görselden video ve ses

import torch
from diffusers import Kandinsky6TI2VAPipeline
from diffusers.utils import encode_video

pipe = Kandinsky6TI2VAPipeline.from_pretrained(
    "kandinskylab/Kandinsky-6.0-Pro-distill-5s-Diffusers", torch_dtype=torch.bfloat16
)
pipe.enable_model_cpu_offload()

output = pipe(
    prompt="A cat and a dog baking a cake together in a kitchen.",
    height=480,
    width=864,
    num_frames=121,
    num_inference_steps=10,
    guidance_scale=1.0,
)
encode_video(
    output.frames[0],
    fps=24,
    output_path="output.mp4",
    audio=output.audio[0][None],
    audio_sample_rate=pipe.audio_sample_rate,
)

İlk kareyi bir referans görüntüye göre koşullandırmak için image=, yalnızca video üretmek için sample_audio=False ve kısa istekleri önce ayrıntılı isteklere dönüştürmek için Qwen2.5-VL metin kodlayıcısına izin vermek için expand_prompts=True parametrelerini iletin.

Video süper çözünürlüğü

Kandinsky6SRPipeline, Kandinsky6TI2VAPipeline tarafından üretilen kareleri alır ve bunları 2, 4 veya 2.25 (1.125x ikili doğrusal ön büyütme ve ardından 2x yolu) kat oranında büyütür. Video, üst üste binen karolara bölünür; her karo, SR dönüştürücüsünün eğitim gördüğü karo boyutlarından birinde iyileştirilir ve karolar Hann pencereleriyle geri birleştirilir.

# required: lets inductor pick flex-attention tiles that fit the SR block mask
torch._inductor.config.max_autotune = True  

sr_pipe = Kandinsky6SRPipeline.from_pretrained(
    "kandinskylab/Kandinsky-6.0-VSR-distilled2steps-5s-Diffusers", torch_dtype=torch.bfloat16
)
# The SR transformer always runs NABLA sparse attention on the `flex` backend. Compile it, otherwise flex falls
# back to an eager implementation that needs far more memory at video resolutions.
sr_pipe.enable_model_cpu_offload()
sr_pipe.transformer.set_attention_backend("flex")
sr_pipe.transformer.compile_repeated_blocks(fullgraph=True)

upscaled = sr_pipe(video=output.frames[0], resolution_scale=2.25, num_inference_steps=2).frames[0]

Bellek optimizasyonu

Genel teknikler için Bellek kullanımını azaltma kılavuzuna bakın. Hem Kandinsky6TI2VAPipeline hem de Kandinsky6SRPipeline, (yukarıda kullanılan) model offloading ve hızdan ödün vererek daha küçük bir ayak izi için sequential CPU offloading destekler:

pipe.enable_sequential_cpu_offload()

Kandinsky6TI2VAPipeline'in video VAE'si, yüksek çözünürlükler veya uzun videolar için tiled decoding (döşemeli çözümleme) desteği de sunar:

pipe.vae.enable_tiling()

Notlar

  • height ve width, video VAE'nin uzamsal sıkıştırma oranının transformer'ın yama boyutuyla çarpımına bölünmelidir — varsayılan Kandinsky6TI2VAPipeline yapılandırmasında bu değer 16'dır (8 sıkıştırma oranına sahip AutoencoderKLHunyuanVideo, patch_size=(1, 2, 2)). Yukarıdaki örnekte kullanılan 480x864 bu koşulu sağlar.
  • Kandinsky6SRPipeline'in girdisi video, bazı tam sayı k için 1 + k * vae_scale_factor_temporal kareye sahip olmalıdır (varsayılan K-VAE yapılandırmasıyla 4 zamansal sıkıştırma oranı, bu nedenle 121 kare çalışır ancak 120 çalışmaz) — bu koşulu zaten sağlamayan bir videoyu ölçeklendirmeden önce kırpın veya doldurun.
  • expand_prompts=True, gürültü azaltma öncesinde ek bir üretim turu için zaten yüklenmiş Qwen2.5-VL metin kodlayıcısını yeniden kullanır; bu nedenle gecikme ekler ancak ek model ağırlığı gerektirmez.
  • Daha hızlı tekrarlı çıkarım için tekrarlanan dönüştürücü bloklarını derleyin:
    pipe.transformer.compile_repeated_blocks(fullgraph=True)
    

Kandinsky6TI2VAPipeline[[diffusers.Kandinsky6TI2VAPipeline]]

diffusers.Kandinsky6TI2VAPipeline[[diffusers.Kandinsky6TI2VAPipeline]]

diffusers.Kandinsky6TI2VAPipeline(transformer: Kandinsky6Transformer3DModel, vae: AutoencoderKLHunyuanVideo, text_encoder: Qwen2_5_VLForConditionalGeneration, tokenizer: Qwen2_5_VLProcessor, text_encoder_2: CLIPTextModel, tokenizer_2: CLIPTokenizer, scheduler: diffusers.schedulers.scheduling_flow_match_euler_discrete.FlowMatchEulerDiscreteScheduler | diffusers.schedulers.scheduling_piflow.PiflowScheduler, audio_vae: diffusers.models.autoencoders.autoencoder_mmaudio.MMAudioVAE | None = None, vocoder: diffusers.models.autoencoders.mmaudio_vocoder.MMAudioVocoder | None = None)

Kaynak

Parametreler:

transformer (Kandinsky6Transformer3DModel) : Video ve ses latentlerini gürültüden arındıran çok modlu dönüştürücü.

vae (AutoencoderKLHunyuanVideo) : Referans görüntüyü kodlamak ve üretilen videoyu çözmek için kullanılan Video VAE.

text_encoder (Qwen2_5_VLForConditionalGeneration) : Qwen2.5-VL modeli, token düzeyinde metin gömme (embedding) ve isteğe bağlı olarak prompt genişletme sağlar.

tokenizer (Qwen2_5_VLProcessor) : text_encoder işlemcisi.

text_encoder_2 (CLIPTextModel) : Havuzlanmış metin gömümünü (pooled text embedding) sağlayan CLIP metin kodlayıcısı.

tokenizer_2 (CLIPTokenizer) : text_encoder_2'nin tokenizer'ı.

scheduler (FlowMatchEulerDiscreteScheduler veya PiflowScheduler) : transformer ile birlikte latentleri gürültüden arındırmak için kullanılan zamanlayıcı. Distilled checkpoint'ler bir PiflowScheduler ile birlikte gelir ve guidance_scale=1.0 ile çalıştırılmalıdır.

audio_vae (MMAudioVAE, isteğe bağlı) : Üretilen ses latentlerini mel spektrograma çözmek için kullanılan ses VAE'si. Yalnızca sample_audio=True olduğunda gereklidir.

vocoder (MMAudioVocoder, isteğe bağlı) : audio_vae'nin çözdüğü mel spektrogramı bir dalga formuna dönüştürmek için kullanılan vokoder. Yalnızca sample_audio=True olduğunda gereklidir.

Kandinsky 6 ile metin/görselden video ve ses üretimi için Pipeline.

Video ve ses latentleri, Qwen2.5-VL metin token'ları ve bir CLIP pooled embedding ile koşullandırılmış tek bir çok modlu transformer tarafından birlikte gürültüden arındırılır. İsteğe bağlı bir referans görüntü, ilk kareyi koşullandırır.

Bu model 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.Kandinsky6TI2VAPipeline.call]]

__call__(prompt: str | list[str] | None = None, image: typing.Union[PIL.Image.Image, numpy.ndarray, torch.Tensor, list[PIL.Image.Image], list[numpy.ndarray], list[torch.Tensor], NoneType] = None, negative_prompt: str | list[str] | None = None, height: int = 512, width: int = 768, num_frames: int = 121, frame_rate: float = 24.0, num_inference_steps: int = 50, timesteps: list[int] | None = None, sigmas: list[float] | None = None, guidance_scale: float = 5.0, num_videos_per_prompt: int = 1, generator: typing.Union[torch.Generator, list[torch.Generator], NoneType] = None, latents: typing.Optional[torch.Tensor] = None, audio_latents: typing.Optional[torch.Tensor] = None, prompt_embeds: typing.Optional[torch.Tensor] = None, pooled_prompt_embeds: typing.Optional[torch.Tensor] = None, negative_prompt_embeds: typing.Optional[torch.Tensor] = None, negative_pooled_prompt_embeds: typing.Optional[torch.Tensor] = None, sample_audio: bool = True, expand_prompts: bool = False, max_sequence_length: int = 1024, output_type: str = 'pil', return_dict: bool = True, callback_on_step_end: collections.abc.Callable[[int, int, dict], None] | None = None, callback_on_step_end_tensor_inputs: list = ['latents'])

Kaynak

Parametreler:

prompt (str veya list[str], isteğe bağlı) : Üretimi yönlendirmek için istem veya istemler. prompt_embeds verilmediği sürece zorunludur.

image (PipelineImageInput, isteğe bağlı) : İlk kareyi koşullandıran referans görüntü(ler) (görüntüden video ve ses).

negative_prompt (str veya list[str], isteğe bağlı) : Üretimi yönlendirmemek için kullanılan istem veya istemler. Varsayılan olarak Kandinsky 6 negatif istemi kullanı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 kare sayısı.

frame_rate (float, varsayılan 24.0) : Videonun oluşturulduğu kare hızı; senkronize sesin uzunluğunu belirler.

num_inference_steps (int, varsayılan 50) : Gürültü azaltma adım sayısı. Distilled checkpoint'ler için 16 kullanın.

timesteps (list[int], isteğe bağlı) : Bunları destekleyen zamanlayıcılar için özel zaman adımları.

sigmas (list[float], isteğe bağlı) : Bunları destekleyen zamanlayıcılar için özel sigmalar.

guidance_scale (float, varsayılan 5.0) : Classifier-free guidance ölçeği. PiflowScheduler ile 1.0 olmalıdır.

num_videos_per_prompt (int, varsayılan 1) : Her istem için üretilecek video sayısı.

generator (torch.Generator veya list[torch.Generator], isteğe bağlı) : Başlangıç gürültüsü ve referans görüntü kodlaması için kullanılan üreteç(ler).

latents (torch.Tensor, isteğe bağlı) : (batch_size, channels, num_latent_frames, latent_height, latent_width) biçiminde önceden oluşturulmuş video latentsleri.

audio_latents (torch.Tensor, isteğe bağlı) : (batch_size, channels, audio_length) biçiminde önceden oluşturulmuş ses latentleri.

prompt_embeds (torch.Tensor, isteğe bağlı) : Önceden oluşturulmuş Qwen2.5-VL metin gömme değerleri.

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

negative_prompt_embeds (torch.Tensor, isteğe bağlı) : Önceden oluşturulmuş negatif Qwen2.5-VL metin gömme değerleri.

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

sample_audio (bool, varsayılan True) : Senkronize ses üretilecek mi. Boru hattının bir audio_vae ve bir vocoder içermesi gerekir.

expand_prompts (bool, varsayılan False) : Kodlamadan önce istemlerin expand_prompts() ile yeniden yazılıp yazılmayacağı.

max_sequence_length (int, varsayılan 1024) : Sohbet şablonundan sonraki maksimum istem belirteç sayısı.

output_type (str, varsayılan "pil") : Üretilen videonun çıktı biçimi: "pil", "np", "pt" veya "latent".

return_dict (bool, varsayılan True) : Düz bir tuple yerine Kandinsky6TI2VAPipelineOutput döndürülecek mi?

callback_on_step_end (Callable, isteğe bağlı) : callback_on_step_end(self, step, timestep, callback_kwargs) ile her gürültü azaltma adımının sonunda çağrılan bir işlev. Listelenen tensörleri geçersiz kılan bir sözlük döndürebilir.

callback_on_step_end_tensor_inputs (list[str], varsayılan ["latents"]) : callback_on_step_end'e iletilen girdi tensörleri; _callback_tensor_inputs'ün bir alt kümesi.

Dönüş: Kandinsky6TI2VAPipelineOutput veya tuple

Oluşturulan video ve ses; return_dict=False olduğunda (frames, audio) demeti.

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

Örnekler:

>>> import torch
>>> from diffusers import Kandinsky6TI2VAPipeline
>>> from diffusers.utils import encode_video

>>> pipe = Kandinsky6TI2VAPipeline.from_pretrained(
...     "kandinskylab/Kandinsky-6.0-Pro-distill-5s-Diffusers", torch_dtype=torch.bfloat16
... )
>>> pipe.enable_model_cpu_offload()

>>> output = pipe(
...     prompt="A cat and a dog baking a cake together in a kitchen.",
...     height=480,
...     width=864,
...     num_frames=121,
...     num_inference_steps=16,
...     guidance_scale=1.0,
... )
>>> encode_video(
...     output.frames[0],
...     fps=24,
...     output_path="output.mp4",
...     audio=output.audio[0][None],
...     audio_sample_rate=pipe.audio_sample_rate,
... )

encode_image[[diffusers.Kandinsky6TI2VAPipeline.encode_image]]

encode_image(image: typing.Union[PIL.Image.Image, numpy.ndarray, torch.Tensor, list[PIL.Image.Image], list[numpy.ndarray], list[torch.Tensor]], height: int, width: int, device: device, dtype: dtype, num_videos_per_prompt: int = 1, generator: typing.Optional[torch.Generator] = None)

Kaynak

Referans görüntülerini, VAE scaling_factor ile ölçeklendirilmiş (batch_size, latent_height, latent_width, latent_channels) boyutunda ilk kare latentlerine kodlar. PIL görüntüleri height x width boyutuna yeniden boyutlandırılır ve merkezden kırpılır; tensörler ve diziler zaten bu boyutta olmalıdır. Latentler, batch boyutu boyunca num_videos_per_prompt kez tekrarlanır.

encode_prompt[[diffusers.Kandinsky6TI2VAPipeline.encode_prompt]]

encode_prompt(prompt: str | list[str], negative_prompt: str | list[str] | None = None, do_classifier_free_guidance: bool = True, num_videos_per_prompt: int = 1, prompt_embeds: typing.Optional[torch.Tensor] = None, pooled_prompt_embeds: typing.Optional[torch.Tensor] = None, prompt_attention_mask: typing.Optional[torch.Tensor] = None, negative_prompt_embeds: typing.Optional[torch.Tensor] = None, negative_pooled_prompt_embeds: typing.Optional[torch.Tensor] = None, negative_prompt_attention_mask: typing.Optional[torch.Tensor] = None, max_sequence_length: int = 1024, device: typing.Optional[torch.device] = None, dtype: typing.Optional[torch.dtype] = None)

Kaynak

Parametreler:

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

negative_prompt (str veya list[str], isteğe bağlı) : Üretimi yönlendirmemek için kullanılan istem. do_classifier_free_guidance False olduğunda yok sayılır.

do_classifier_free_guidance (bool, varsayılan True) : Negatif istemin de kodlanıp kodlanmayacağı.

num_videos_per_prompt (int, varsayılan 1) : Her istem için üretilen video sayısı; gömceler buna göre tekrarlanır.

prompt_embeds (torch.Tensor, isteğe bağlı) : Önceden oluşturulmuş Qwen2.5-VL metin gömme değerleri. prompt kodlamasını atlar.

pooled_prompt_embeds (torch.Tensor, isteğe bağlı) : Önceden oluşturulmuş CLIP havuzlanmış metin gömme değerleri. prompt_embeds ile birlikte verilmelidir.

prompt_attention_mask (torch.Tensor, isteğe bağlı) : prompt_embeds için Boolean dolgu maskesi.

negative_prompt_embeds (torch.Tensor, isteğe bağlı) : Önceden oluşturulmuş negatif Qwen2.5-VL metin gömme değerleri.

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

negative_prompt_attention_mask (torch.Tensor, isteğe bağlı) : negative_prompt_embeds için Boolean dolgu maskesi.

max_sequence_length (int, varsayılan 1024) : Sohbet şablonundan sonraki maksimum istem belirteç sayısı.

device (torch.device, isteğe bağlı) : Metin kodlayıcıların çalıştırılacağı cihaz.

dtype (torch.dtype, isteğe bağlı) : Dönen gömme (embedding) vektörlerinin veri tipi.

İsteği metin kodlayıcı gizli durumlarına kodlar.

expand_prompts[[diffusers.Kandinsky6TI2VAPipeline.expand_prompts]]

expand_prompts(prompt: str | list[str], tokenizer, text_encoder, device: device, image: PIL.Image.Image | list[PIL.Image.Image] | None = None, max_sequence_length: int = 1024, generator: typing.Union[torch.Generator, list[torch.Generator], NoneType] = None)

Kaynak

Parametreler:

prompt (str veya list[str]) : Genişletilecek istem veya istemler.

tokenizer : Qwen2.5-VL işlemcisi, örn. pipe.tokenizer.

text_encoder : Örneğin pipe.text_encoder gibi Qwen2.5-VL modeli.

device (torch.device) : Metin kodlayıcısının çalıştırılacağı cihaz.

image (PIL.Image.Image veya list[PIL.Image.Image], isteğe bağlı) : Bir görüntüden videoya çağrısının referans görüntü(ler)i.

max_sequence_length (int, varsayılan 1024) : Her istem için üretilen en fazla jeton sayısı.

generator (torch.Generator veya list[torch.Generator], isteğe bağlı) : Örneklenen genişlemeyi tohumlar; bir liste, prompt'un uzunluğuyla eşleşmeli ve her öğe için bir üreteç içermelidir. generate, küresel RNG'den çizer, bu nedenle küresel RNG bu üretecin tohumundan tohumlanır; sonraki randn_tensor çağrıları generator'ı doğrudan kullanmaya devam eder.

Dönüş: str veya list[str]

Genişletilmiş istem(ler).

Kısa istekleri, bir referans görsel verildiğinde bu görsel üzerinden temellendirerek Qwen2.5-VL metin kodlayıcısıyla ayrıntılı video+ses isteklerine dönüştürür. staticmethod olduğu için, pipeline çalıştırılmadan önce bağımsız olarak kullanılabilir.

prepare_audio_latents[[diffusers.Kandinsky6TI2VAPipeline.prepare_audio_latents]]

prepare_audio_latents(batch_size: int, num_channels_latents: int, audio_length: int, dtype: dtype, device: device, generator: typing.Union[torch.Generator, list[torch.Generator], NoneType], audio_latents: typing.Optional[torch.Tensor] = None)

Kaynak

Dönüştürücünün (batch_size, audio_length, channels) yerleşimindeki ses latentlerini döndürür. Kullanıcı tarafından sağlanan audio_latents tensörünün (batch_size, channels, audio_length) yerleşiminde olması beklenir.

prepare_latents[[diffusers.Kandinsky6TI2VAPipeline.prepare_latents]]

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

Kaynak

Dönüştürücünün (batch_size, num_frames, height, width, channels) yerleşimindeki video latentlerini döndürür. Kullanıcı tarafından sağlanan latents tensörünün (batch_size, channels, num_frames, height, width) yerleşiminde olması beklenir.

Kandinsky6SRPipeline[[diffusers.Kandinsky6SRPipeline]]

diffusers.Kandinsky6SRPipeline[[diffusers.Kandinsky6SRPipeline]]

diffusers.Kandinsky6SRPipeline(transformer: Kandinsky6SRTransformer3DModel, vae: Kandinsky6SRVAE, scheduler: diffusers.schedulers.scheduling_flow_match_euler_discrete.FlowMatchEulerDiscreteScheduler | diffusers.schedulers.scheduling_piflow.PiflowScheduler, latent_upscaler: diffusers.models.latent_upscaler.latent_upscaler_kandinsky6_sr.Kandinsky6SRLatentUpscalerBank | None = None)

Kaynak

Parametreler:

transformer (Kandinsky6SRTransformer3DModel) : Gizli karoları (latent tiles) iyileştiren Transformer.

vae (Kandinsky6SRVAE) : Girdi videosunu kodlamak ve rafine edilmiş karoları çözmek için kullanılan nedensel video K-VAE.

scheduler (FlowMatchEulerDiscreteScheduler veya PiflowScheduler): transformer ile birlikte karoları gürültüden arındırmak için kullanılan zamanlayıcı. Distilled checkpoint'ler bir PiflowScheduler ile birlikte gelir.

latent_upscaler (Kandinsky6SRLatentUpscalerBank, isteğe bağlı) : Desteklenen ölçekler için latent upscaler'lar.

Kandinsky 6 ile video süper çözünürlüğü için Pipeline.

Video, üst üste binen mekânsal karolara bölünür; her karo, modelin eğitim gördüğü karo boyutlarından (transformer.config.tile_sizes) birinde SR dönüştürücüsü tarafından iyileştirilir ve iyileştirilen karolar Hann pencereleriyle geri birleştirilir. Hattın bir latent_upscaler bileşeni varsa karolar, tüm videonun K-VAE gizli temsillerinden kesilir ve gizli uzayda büyütülür; aksi halde piksel karoları iki doğrusal (bilinear) yöntemle büyütülür ve kodlanır.

Bu model 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.Kandinsky6SRPipeline.call]]

__call__(video: typing.Union[list[PIL.Image.Image], list[list[PIL.Image.Image]], numpy.ndarray, torch.Tensor], resolution_scale: float = 2.25, num_inference_steps: int = 4, timesteps: list[int] | None = None, sigmas: list[float] | None = None, lq_noise_scale: float = 0.7, min_overlap: float = 0.2, tiles_batch_size: int = 1, generator: typing.Union[torch.Generator, list[torch.Generator], NoneType] = None, output_type: str = 'pil', return_dict: bool = True)

Kaynak

Parametreler:

video (list[PIL.Image.Image], np.ndarray veya torch.Tensor) : preprocess_video() tarafından kabul edilen herhangi bir biçimde, 1 + k * 4 kare içeren düşük çözünürlüklü video(lar). Boyutlar, VAE uzamsal çarpanının katına yuvarlanır.

resolution_scale (float, varsayılan 2.25) : Toplam uzamsal büyütme: 2, 4 veya 2.25 (1.125x ikili doğrusal ön büyütme ardından 2x yolu).

num_inference_steps (int, varsayılan 4) : Her karo için gürültü azaltma adım sayısı. Distilled checkpoint'ler ile 2 kullanın.

timesteps (list[int], isteğe bağlı) : Bunları destekleyen zamanlayıcılar için özel zaman adımları.

sigmas (list[float], isteğe bağlı) : Bunları destekleyen zamanlayıcılar için özel sigmalar.

lq_noise_scale (float, varsayılan 0.7) : Gürültü giderme işleminden önce düşük çözünürlüklü latentlere karıştırılan Gauss gürültüsü miktarı (variyans koruyucu).

min_overlap (float, varsayılan 0.2) : Karo boyutunun bir kesri olarak komşu karolar arasındaki minimum örtüşme.

tiles_batch_size (int, varsayılan 1) : Her transformer çağrısında gürültüsü giderilen karoların sayısı.

generator (torch.Generator veya list[torch.Generator], isteğe bağlı) : Karoların içine karıştırılan gürültü için kullanılan üreteç(ler).

output_type (str, varsayılan "pil") : Üretilen videonun çıktı biçimi: "pil", "np" veya "pt".

return_dict (bool, varsayılan True) : Düz bir tuple yerine Kandinsky6SRPipelineOutput döndürülüp döndürülmediğini belirtir.

Dönüş: Kandinsky6SRPipelineOutput veya tuple

Süper çözünürlüklü video; return_dict=False olduğunda tek elemanlı bir demet.

Süper çözünürlük için pipeline'ın çağrı fonksiyonu.

Örnekler:

>>> import torch
>>> from diffusers import Kandinsky6SRPipeline, Kandinsky6TI2VAPipeline
>>> from diffusers.utils import export_to_video

>>> pipe = Kandinsky6TI2VAPipeline.from_pretrained(
...     "kandinskylab/Kandinsky-6.0-Pro-distill-5s-Diffusers", torch_dtype=torch.bfloat16
... )
>>> pipe.enable_model_cpu_offload()
>>> video = pipe(
...     prompt="A cat and a dog baking a cake together in a kitchen.",
...     height=480,
...     width=864,
...     num_inference_steps=16,
...     guidance_scale=1.0,
...     sample_audio=False,
... ).frames[0]

>>> sr_pipe = Kandinsky6SRPipeline.from_pretrained(
...     "kandinskylab/Kandinsky-6.0-VSR-distilled2steps-5s-Diffusers", torch_dtype=torch.bfloat16
... )
>>> # The transformer always runs attention through the `flex` backend; compiling avoids the eager
>>> # fallback's much higher memory use at video resolutions.
>>> sr_pipe.transformer.compile_repeated_blocks(fullgraph=True)
>>> sr_pipe.enable_model_cpu_offload()
>>> output = sr_pipe(video=video, resolution_scale=2.25, num_inference_steps=2)
>>> export_to_video(output.frames[0], "output_sr.mp4", fps=24)

decode_latents[[diffusers.Kandinsky6SRPipeline.decode_latents]]

decode_latents(latents: Tensor)

Kaynak

Ölçeklendirilmiş K-VAE latentlerini [-1, 1] aralığında (batch_size, channels, num_frames, height, width) boyutlu bir videoya çözer.

encode_video[[diffusers.Kandinsky6SRPipeline.encode_video]]

encode_video(video: Tensor)

Kaynak

(batch_size, channels, num_frames, height, width) boyutundaki, [-1, 1] aralığındaki bir videoyu, VAE scaling_factor ile ölçeklenmiş K-VAE latentlerine kodlar.

Kandinsky6SRLatentUpscalerBank[[diffusers.Kandinsky6SRLatentUpscalerBank]]

diffusers.Kandinsky6SRLatentUpscalerBank[[diffusers.Kandinsky6SRLatentUpscalerBank]]

diffusers.Kandinsky6SRLatentUpscalerBank(in_channels: int = 64, stage_channels: tuple[int, int, int] = (2048, 1024, 512), num_pre_blocks: int = 5, num_mid_blocks: int = 3, num_post_blocks: int = 3, num_x2_adapter_blocks: int = 2, scales: tuple[int, ...] = (2, 4), scaling_factor: float = 0.910344004631042)

Kaynak

Parametreler:

in_channels (int, varsayılan 64) : Gizli kanal sayısı.

stage_channels (tuple[int, int, int], varsayılan (2048, 1024, 512)) : Kaskadın üç aşamasının özellik genişlikleri.

num_pre_blocks (int, varsayılan 5) : x4 modelinin ilk yukarı örneklemesinden önceki artımsal bloklar.

num_mid_blocks (int, varsayılan 3) : İki upsampling arasında kalan residual bloklar.

num_post_blocks (int, varsayılan 3) : Son upsample'den sonraki residual bloklar.

num_x2_adapter_blocks (int, varsayılan 2) : x2 modelinin adaptörünün artımsal blokları.

scales (tuple[int, ...], varsayılan (2, 4)) : Bank'ın bir upscaler sağladığı uzamsal ölçekler.

scaling_factor (float, varsayılan 0.910344) : Girdi latentlerinin taşıması beklenen ölçek (K-VAE scaling_factor).

Kandinsky6SRPipeline tarafından kullanılan gizli yükselticiler bankı: desteklenen her uzamsal ölçek için bir Kandinsky6SRLatentUpscaler, K-VAE gizli değişkenleri üzerinde çalışır.

forward[[diffusers.Kandinsky6SRLatentUpscalerBank.forward]]

forward(latents: Tensor, scale: int, return_dict: bool = True)

Kaynak

Parametreler:

latents (torch.Tensor, şekli (batch_size, in_channels, num_frames, height, width)) : scaling_factor ile ölçeklendirilmiş K-VAE latantları.

scale (int) : Uzamsal ölçeklendirme faktörü; scales değerlerinden biri.

return_dict (bool, varsayılan True) : Düz bir tuple yerine ~models.autoencoder_kl.DecoderOutput döndürülüp döndürülmemesi.

Dönüş:

(batch_size, in_channels, num_frames, height * scale, width * scale) biçiminde ölçeklendirilmiş latentler.

Kandinsky6TI2VAPipelineOutput[[diffusers.Kandinsky6TI2VAPipelineOutput]]

diffusers.Kandinsky6TI2VAPipelineOutput[[diffusers.Kandinsky6TI2VAPipelineOutput]]

diffusers.Kandinsky6TI2VAPipelineOutput(frames: typing.Union[torch.Tensor, numpy.ndarray, list[list[PIL.Image.Image]]], audio: typing.Union[torch.Tensor, numpy.ndarray, NoneType] = None)

Kaynak

Parametreler:

frames (torch.Tensor, np.ndarray veya list[list[PIL.Image.Image]]) : Üretilen video. Her biri num_frames adet PIL görüntüsü içeren, uzunluğu batch_size olan iç içe geçmiş bir liste veya (batch_size, num_frames, height, width, channels) / (batch_size, num_frames, channels, height, width) biçiminde bir NumPy dizi veya torch tensörü. output_type="latent" ile (batch_size, channels, num_latent_frames, latent_height, latent_width) biçimindeki video latentleri.

audio (torch.Tensor veya np.ndarray, isteğe bağlı) : Ses VAE'sinin örnek hızında, [-1, 1] aralığında (batch_size, num_samples) biçiminde üretilen dalga formları veya ses örneklenmediğinde None. output_type="latent" ile (batch_size, channels, audio_length) biçiminde ses latentleri.

Kandinsky6TI2VAPipeline için çıktı sınıfı.

Kandinsky6SRPipelineOutput[[diffusers.Kandinsky6SRPipelineOutput]]

diffusers.Kandinsky6SRPipelineOutput[[diffusers.Kandinsky6SRPipelineOutput]]

diffusers.Kandinsky6SRPipelineOutput(frames: typing.Union[torch.Tensor, numpy.ndarray, list[list[PIL.Image.Image]]])

Kaynak

Parametreler:

frames (torch.Tensor, np.ndarray veya list[list[PIL.Image.Image]]) : Süper çözünürlüklü video. Her biri num_frames adet PIL görüntüsü içeren, uzunluğu batch_size olan iç içe geçmiş bir liste veya (batch_size, num_frames, height, width, channels) / (batch_size, num_frames, channels, height, width) biçiminde bir NumPy dizi veya torch tensörü.

Kandinsky6SRPipeline için çıktı sınıfı.

Xet Storage Details

Size:
37.2 kB
·
Xet hash:
3be06bb0b1e39c24d52f7c932540761aa36b20dfcef91356ae46c747826b7024

Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.