Diffusers documentation
Kandinsky 6
Kandinsky 6
Kandinsky 6, Kandinsky Lab tarafından geliştirilen bir video üretim modeli ailesidir. Ana model, tek bir çok modlu difüzyon dönüştürücüsü aracılığıyla metinden veya bir referans görüntüden video ve senkronize ses üretir: video ve ses latentleri, iki modalite arasında çapraz dikkat (cross-attention) uygulayan füzyon blokları üzerinden 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.0ile ç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 pencereleri kullanılarak 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
heightvewidth, 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ğer16’dır (8sıkıştırma oranına sahipAutoencoderKLHunyuanVideo,patch_size=(1, 2, 2)). Yukarıdaki örnekte kullanılan480x864bu koşulu sağlar.- Kandinsky6SRPipeline girdisi
video, bazı tam sayıkiçin1 + k * vae_scale_factor_temporalkareye sahip olmalıdır (varsayılan K-VAE yapılandırmasında4zamansal sıkıştırma oranı, bu nedenle121kare çalışır ancak120kare ç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 işleminden önce 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.- Tekrarlanan transformer bloklarını daha hızlı tekrarlı çıkarım için derleyin:
pipe.transformer.compile_repeated_blocks(fullgraph=True)
Kandinsky6TI2VAPipeline
sınıf diffusers.Kandinsky6TI2VAPipeline
< source >( transformer: Kandinsky6Transformer3DModelvae: AutoencoderKLHunyuanVideotext_encoder: Qwen2_5_VLForConditionalGenerationtokenizer: Qwen2_5_VLProcessortext_encoder_2: CLIPTextModeltokenizer_2: CLIPTokenizerscheduler: diffusers.schedulers.scheduling_flow_match_euler_discrete.FlowMatchEulerDiscreteScheduler | diffusers.schedulers.scheduling_piflow.PiflowScheduleraudio_vae: diffusers.models.autoencoders.autoencoder_mmaudio.MMAudioVAE | None = Nonevocoder: diffusers.models.autoencoders.mmaudio_vocoder.MMAudioVocoder | None = None )
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) — token düzeyinde metin gömlemlerini ve isteğe bağlı olarak prompt genişletmesini sağlayan Qwen2.5-VL modeli.
- tokenizer (Qwen2_5_VLProcessor) —
text_encoderişleyicisi. - text_encoder_2 (CLIPTextModel) — Pooled metin gömümünü sağlayan CLIP metin kodlayıcısı.
- tokenizer_2 (CLIPTokenizer) —
text_encoder_2'nin tokenizer'ı. - scheduler (FlowMatchEulerDiscreteScheduler veya PiflowScheduler) —
transformerile birlikte latentleri gürültüden arındırmak için kullanılan zamanlayıcı. Distilled checkpoint'ler bir PiflowScheduler ile birlikte gelir veguidance_scale=1.0ile ç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=Trueolduğunda gereklidir. - vocoder (MMAudioVocoder, isteğe bağlı) —
audio_vae'in çözdüğü mel spektrogramı bir dalga formuna dönüştürmek için kullanılan vokoder. Yalnızcasample_audio=Trueolduğ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 dönüştürücü 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ı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] | None = Noneimage: typing.Union[PIL.Image.Image, numpy.ndarray, torch.Tensor, list[PIL.Image.Image], list[numpy.ndarray], list[torch.Tensor], NoneType] = Nonenegative_prompt: str | list[str] | None = Noneheight: int = 512width: int = 768num_frames: int = 121frame_rate: float = 24.0num_inference_steps: int = 50timesteps: list[int] | None = Nonesigmas: list[float] | None = Noneguidance_scale: float = 5.0num_videos_per_prompt: int = 1generator: typing.Union[torch.Generator, list[torch.Generator], NoneType] = Nonelatents: typing.Optional[torch.Tensor] = Noneaudio_latents: typing.Optional[torch.Tensor] = Noneprompt_embeds: typing.Optional[torch.Tensor] = Nonepooled_prompt_embeds: typing.Optional[torch.Tensor] = Nonenegative_prompt_embeds: typing.Optional[torch.Tensor] = Nonenegative_pooled_prompt_embeds: typing.Optional[torch.Tensor] = Nonesample_audio: bool = Trueexpand_prompts: bool = Falsemax_sequence_length: int = 1024output_type: str = 'pil'return_dict: bool = Truecallback_on_step_end: collections.abc.Callable[[int, int, dict], None] | None = Nonecallback_on_step_end_tensor_inputs: list = ['latents'] ) → Kandinsky6TI2VAPipelineOutput or tuple
Parametreler
- prompt (
strveyalist[str], isteğe bağlı) — Üretimi yönlendirmek için istem veya istemler.prompt_embedsverilmediğ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 (
strveyalist[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ı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 kare sayısı. - frame_rate (
float, varsayılan24.0) — Videonun oluşturulduğu kare hızı; senkronize sesin uzunluğunu belirler. - num_inference_steps (
int, varsayılan50) — Gürültü azaltma adım sayısı. Distilled checkpoint'ler için16kullanı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ılan5.0) — Sınıflandırıcı-ücretsiz yönlendirme ölçeği. PiflowScheduler ile1.0olmalıdır. - num_videos_per_prompt (
int, varsayılan1) — Her istem için üretilecek video sayısı. - generator (
torch.Generatorveyalist[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ömümleri. - pooled_prompt_embeds (
torch.Tensor, isteğe bağlı) — Önceden oluşturulmuş CLIP birleştirilmiş metin gömme değerleri. - negative_prompt_embeds (
torch.Tensor, isteğe bağlı) — Önceden oluşturulmuş negatif Qwen2.5-VL metin gömümleri. - 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ılanTrue) — Senkronize ses üretilecek mi. Boru hattının biraudio_vaeve birvocoderiçermesi gerekir. - expand_prompts (
bool, varsayılanFalse) — Kodlamadan önce istemlerin expand_prompts() ile yeniden yazılıp yazılmayacağı. - max_sequence_length (
int, varsayılan1024) — Sohbet şablonundan sonraki istem belirteçlerinin (prompt token) maksimum sayısı. - output_type (
str, varsayılan"pil") — Oluşturulan videonun çıktı biçimi:"pil","np","pt"veya"latent". - return_dict (
bool, varsayılanTrue) — Düz bir tuple yerine Kandinsky6TI2VAPipelineOutput döndürülüp döndürülmemesi. - callback_on_step_end (
Callable, isteğe bağlı) — Her gürültü azaltma adımının sonundacallback_on_step_end(self, step, timestep, callback_kwargs)ile ç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üş değeri
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
< source >( image: typing.Union[PIL.Image.Image, numpy.ndarray, torch.Tensor, list[PIL.Image.Image], list[numpy.ndarray], list[torch.Tensor]]height: intwidth: intdevice: devicedtype: dtypenum_videos_per_prompt: int = 1generator: typing.Optional[torch.Generator] = None )
Referans görüntülerini, VAE scaling_factor ile ölçeklenmiş, (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
< source >( prompt: str | list[str]negative_prompt: str | list[str] | None = Nonedo_classifier_free_guidance: bool = Truenum_videos_per_prompt: int = 1prompt_embeds: typing.Optional[torch.Tensor] = Nonepooled_prompt_embeds: typing.Optional[torch.Tensor] = Noneprompt_attention_mask: typing.Optional[torch.Tensor] = Nonenegative_prompt_embeds: typing.Optional[torch.Tensor] = Nonenegative_pooled_prompt_embeds: typing.Optional[torch.Tensor] = Nonenegative_prompt_attention_mask: typing.Optional[torch.Tensor] = Nonemax_sequence_length: int = 1024device: typing.Optional[torch.device] = Nonedtype: typing.Optional[torch.dtype] = None )
Parametreler
- prompt (
strveyalist[str]) — Kodlanacak istem. - negative_prompt (
strveyalist[str], isteğe bağlı) — Üretimi yönlendirmemek için kullanılan istem.do_classifier_free_guidanceFalseolduğunda yok sayılır. - do_classifier_free_guidance (
bool, varsayılanTrue) — Negatif istemin de kodlanıp kodlanmayacağı. - num_videos_per_prompt (
int, varsayılan1) — İstek başına ü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ömümleri.promptkodlamasını atlar. - pooled_prompt_embeds (
torch.Tensor, isteğe bağlı) — Önceden oluşturulmuş CLIP birleştirilmiş metin gömme değerleri.prompt_embedsile birlikte verilmelidir. - prompt_attention_mask (
torch.Tensor, isteğe bağlı) —prompt_embedsiçin Boole dolgu maskesi. - negative_prompt_embeds (
torch.Tensor, isteğe bağlı) — Önceden oluşturulmuş negatif Qwen2.5-VL metin gömümleri. - 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_embedsiçin Boole dolgu maskesi. - max_sequence_length (
int, varsayılan1024) — Sohbet şablonundan sonraki istem belirteçlerinin (prompt token) maksimum 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önütlenen gömme vektörlerinin veri türü.
İsteği metin kodlayıcı gizli durumlarına kodlar.
expand_prompts
< source >( prompt: str | list[str]tokenizertext_encoderdevice: deviceimage: PIL.Image.Image | list[PIL.Image.Image] | None = Nonemax_sequence_length: int = 1024generator: typing.Union[torch.Generator, list[torch.Generator], NoneType] = None ) → str or list[str]
Parametreler
- prompt (
strveyalist[str]) — Genişletilecek istem veya istemler. - tokenizer —
Örneğin
pipe.tokenizerolan Qwen2.5-VL işlemcisi. - text_encoder —
Örneğin
pipe.text_encoderolan Qwen2.5-VL modeli. - device (
torch.device) — Metin kodlayıcısının çalıştırılacağı cihaz. - image (
PIL.Image.Imageveyalist[PIL.Image.Image], isteğe bağlı) — Görüntüden videoya çağrısının referans görüntü(ler)i. - max_sequence_length (
int, varsayılan1024) — İstek başına üretilen en fazla jeton sayısı. - generator (
torch.Generatorveyalist[torch.Generator], isteğe bağlı) — Örnekleme genişlemesini tohumlar; bir liste,prompt'un uzunluğuyla eşleşmeli, her öğe için bir üreteç olmalıdır.generateküresel RNG'den çizer, bu nedenle küresel RNG bu üretecin tohumundan tohumlanır; sonrakirandn_tensorçağrılarıgenerator'ı doğrudan kullanmaya devam eder.
Dönüş değeri
str veya list[str]
Genişletilmiş istem(ler).
Kısa istekleri, bir referans görsel verildiğinde bu görseli temel alarak, 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
< source >( batch_size: intnum_channels_latents: intaudio_length: intdtype: dtypedevice: devicegenerator: typing.Union[torch.Generator, list[torch.Generator], NoneType]audio_latents: typing.Optional[torch.Tensor] = None )
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
< source >( batch_size: intnum_channels_latents: intheight: intwidth: intnum_frames: intdtype: dtypedevice: devicegenerator: typing.Union[torch.Generator, list[torch.Generator], NoneType]latents: typing.Optional[torch.Tensor] = None )
Video latentlerini dönüştürücünün (batch_size, num_frames, height, width, channels) yerleşiminde 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
sınıf diffusers.Kandinsky6SRPipeline
< source >( transformer: Kandinsky6SRTransformer3DModelvae: Kandinsky6SRVAEscheduler: diffusers.schedulers.scheduling_flow_match_euler_discrete.FlowMatchEulerDiscreteScheduler | diffusers.schedulers.scheduling_piflow.PiflowSchedulerlatent_upscaler: diffusers.models.latent_upscaler.latent_upscaler_kandinsky6_sr.Kandinsky6SRLatentUpscalerBank | None = None )
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) —
transformerile 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 olarak büyütülür ve kodlanır.
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 >( video: typing.Union[list[PIL.Image.Image], list[list[PIL.Image.Image]], numpy.ndarray, torch.Tensor]resolution_scale: float = 2.25num_inference_steps: int = 4timesteps: list[int] | None = Nonesigmas: list[float] | None = Nonelq_noise_scale: float = 0.7min_overlap: float = 0.2tiles_batch_size: int = 1generator: typing.Union[torch.Generator, list[torch.Generator], NoneType] = Noneoutput_type: str = 'pil'return_dict: bool = True ) → Kandinsky6SRPipelineOutput or tuple
Parametreler
- video (
list[PIL.Image.Image],np.ndarrayveyatorch.Tensor) — preprocess_video() tarafından kabul edilen herhangi bir biçimde,1 + k * 4kare içeren düşük çözünürlüklü video(lar). Boyutlar, VAE uzamsal çarpanının katına yuvarlanır. - resolution_scale (
float, varsayılan2.25) — Toplam uzamsal büyütme:2,4veya2.25(1.125x ikili doğrusal ön büyütme ardından 2x yolu). - num_inference_steps (
int, varsayılan4) — Her karot için gürültü azaltma adım sayısı. Distilled checkpoint'lerle2kullanı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ılan0.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ılan0.2) — Yan yana karolar arasındaki minimum örtüşme, karo boyutunun bir kesri olarak. - tiles_batch_size (
int, varsayılan1) — Her transformer çağrısında gürültüsü giderilen karoların sayısı. - generator (
torch.Generatorveyalist[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") — Oluşturulan videonun çıktı biçimi:"pil","np"veya"pt". - return_dict (
bool, varsayılanTrue) — Düz bir tuple yerine Kandinsky6SRPipelineOutput döndürülüp döndürülmemesi.
Dönüş değeri
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)Ölçeklendirilmiş K-VAE latentlerini [-1, 1] aralığında (batch_size, channels, num_frames, height, width) boyutlu bir videoya çözer.
(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
sınıf diffusers.Kandinsky6SRLatentUpscalerBank
< source >( in_channels: int = 64stage_channels: tuple[int, int, int] = (2048, 1024, 512)num_pre_blocks: int = 5num_mid_blocks: int = 3num_post_blocks: int = 3num_x2_adapter_blocks: int = 2scales: tuple[int, ...] = (2, 4)scaling_factor: float = 0.910344004631042 )
Parametreler
- in_channels (
int, varsayılan64) — 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ılan5) — x4 modelinin ilk yukarı örneklemesinden önceki artımsal bloklar. - num_mid_blocks (
int, varsayılan3) — İki upsampling arasında kalan artımsal bloklar. - num_post_blocks (
int, varsayılan3) — Son upsample sonrası kalan bloklar. - num_x2_adapter_blocks (
int, varsayılan2) — x2 modelinin adaptörünün artımsal blokları. - scales (
tuple[int, ...], varsayılan(2, 4)) — Bankın upscaler sağladığı uzamsal ölçekler. - scaling_factor (
float, varsayılan0.910344) — Giriş latentlerinin taşıması beklenen ölçek (K-VAEscaling_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
< source >( latents: Tensorscale: intreturn_dict: bool = True )
Parametreler
- latents (
torch.Tensor, şekli(batch_size, in_channels, num_frames, height, width)) —scaling_factorile ölçeklenmiş K-VAE latentsleri. - scale (
int) — Uzamsal ölçeklendirme faktörü;scalesdeğerlerinden biri. - return_dict (
bool, varsayılanTrue) — Düz bir tuple yerine~models.autoencoder_kl.DecoderOutputdöndürülüp döndürülmemesi.
Kandinsky6TI2VAPipelineOutput
sınıf diffusers.Kandinsky6TI2VAPipelineOutput
< source >( frames: typing.Union[torch.Tensor, numpy.ndarray, list[list[PIL.Image.Image]]]audio: typing.Union[torch.Tensor, numpy.ndarray, NoneType] = None )
Parametreler
- frames (
torch.Tensor,np.ndarrayveyalist[list[PIL.Image.Image]]) — Oluşturulan video. Her birinum_framesadet PIL görüntüsü içeren, uzunluğubatch_sizeolan 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 dizisi veya torch tensörü.output_type="latent"kullanıldığında,(batch_size, channels, num_latent_frames, latent_height, latent_width)biçimindeki video latentleri. - audio (
torch.Tensorveyanp.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ğindeNone.output_type="latent"kullanıldığında,(batch_size, channels, audio_length)biçiminde ses latentleri.
Kandinsky6TI2VAPipeline için çıktı sınıfı.
Kandinsky6SRPipelineOutput
sınıf diffusers.Kandinsky6SRPipelineOutput
< source >( frames: typing.Union[torch.Tensor, numpy.ndarray, list[list[PIL.Image.Image]]] )
Parametreler
- frames (
torch.Tensor,np.ndarrayveyalist[list[PIL.Image.Image]]) — Süper çözünürlüklü video. Her birinum_framesadet PIL görüntüsü içeren, uzunluğubatch_sizeolan 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 dizisi veya torch tensörü.
Kandinsky6SRPipeline için çıktı sınıfı.