Diffusers documentation
Kandinsky 6
Kandinsky 6
Kandinsky 6 adalah keluarga model generasi video dari Kandinsky Lab. Model utama menghasilkan video dan audio yang tersinkronisasi dari teks atau gambar referensi dengan satu transformer difusi multimodal: latens video dan audio didenoise bersama melalui blok-blok yang terfusi, yang melakukan cross-attention di antara kedua modalitas, masing-masing dikondisikan pada cabang teks Qwen2.5-VL-nya sendiri dan embedding CLIP yang dipool. Model super-resolusi yang terpisah memperbesar video yang dihasilkan secara per-tile di ruang latens dari K-VAE 3D kausal.
Lihat organisasi Kandinsky Lab di Hub untuk kumpulan lengkap checkpoint resmi, termasuk varian flow-matching dan distilled dari model base dan super-resolution.
Checkpoint yang telah di-distil dikirimkan bersama PiflowScheduler beberapa langkah dan harus dijalankan dengan
guidance_scale=1.0.
Model yang tersedia
| Model | Pipeline | Catatan |
|---|---|---|
kandinskylab/Kandinsky-6.0-Pro-5s-Diffusers | Kandinsky6TI2VAPipeline | Flow matching, guidance_scale=5.0, 50 langkah |
kandinskylab/Kandinsky-6.0-Pro-distill-5s-Diffusers | Kandinsky6TI2VAPipeline | Distil, guidance_scale=1.0, 10 langkah |
kandinskylab/Kandinsky-6.0-Lite-5s-Diffusers | Kandinsky6TI2VAPipeline | Flow matching, guidance_scale=5.0, 50 langkah |
kandinskylab/Kandinsky-6.0-Lite-distill-5s-Diffusers | Kandinsky6TI2VAPipeline | Distil, guidance_scale=1.0, 10 langkah |
kandinskylab/Kandinsky-6.0-Pro-pretrain-5s-Diffusers | Kandinsky6TI2VAPipeline | Flow matching, guidance_scale=5.0, 50 langkah |
kandinskylab/Kandinsky-6.0-Lite-pretrain-5s-Diffusers | Kandinsky6TI2VAPipeline | Flow matching, guidance_scale=5.0, 50 langkah |
kandinskylab/Kandinsky-6.0-VSR-5s-Diffusers | Kandinsky6SRPipeline | Super-resolusi pencocokan aliran |
kandinskylab/Kandinsky-6.0-VSR-distilled2steps-5s-Diffusers | Kandinsky6SRPipeline | Super-resolusi terdistil, 2 langkah |
Teks/gambar-ke-video-dan-audio
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,
)Lewati image= untuk mengondisikan bingkai pertama pada gambar referensi, sample_audio=False untuk hanya menghasilkan video, dan expand_prompts=True agar pengkode teks Qwen2.5-VL menulis ulang prompt pendek menjadi prompt yang lebih detail terlebih dahulu.
Super-resolusi video
Kandinsky6SRPipeline mengambil frame yang dihasilkan oleh Kandinsky6TI2VAPipeline dan memperbesarnya sebesar 2, 4, atau 2.25 (pre-upscale bilinear 1.125x diikuti jalur 2x). Video dipecah menjadi tile yang saling tumpang tindih, setiap tile disempurnakan pada salah satu ukuran tile yang digunakan saat pelatihan transformer SR, dan tile digabungkan kembali dengan jendela Hann.
# 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]Optimasi memori
Lihat panduan Reduce memory usage untuk kumpulan teknik umum. Baik Kandinsky6TI2VAPipeline maupun Kandinsky6SRPipeline mendukung model offloading (digunakan di atas) dan, untuk footprint yang lebih kecil dengan mengorbankan kecepatan, sequential CPU offloading:
pipe.enable_sequential_cpu_offload()
Video VAE dari Kandinsky6TI2VAPipeline juga mendukung tiled decoding untuk resolusi tinggi atau video panjang:
pipe.vae.enable_tiling()
Catatan
heightdanwidthharus dapat dibagi habis oleh rasio kompresi spasial VAE video dikalikan ukuran patch transformer —16dengan konfigurasi Kandinsky6TI2VAPipeline bawaan (AutoencoderKLHunyuanVideodengan rasio kompresi8,patch_size=(1, 2, 2)).480x864, yang digunakan dalam contoh di atas, memenuhi syarat ini.- Input
videodari Kandinsky6SRPipeline harus memiliki1 + k * vae_scale_factor_temporalframe untuk beberapa bilangan bulatk(rasio kompresi temporal4dengan konfigurasi K-VAE default, sehingga121frame berfungsi tetapi120tidak) — pangkas atau tambahkan padding pada video yang belum memenuhi syarat ini sebelum melakukan upscaling. expand_prompts=Truemenggunakan ulang pengkode teks Qwen2.5-VL yang sudah dimuat untuk satu langkah generasi tambahan sebelum denoising, sehingga menambah latensi tetapi tidak menambah bobot model.- Compile blok transformer yang berulang untuk inferensi berulang yang lebih cepat:
pipe.transformer.compile_repeated_blocks(fullgraph=True)
Kandinsky6TI2VAPipeline
kelas 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 )
Parameter
- transformer (Kandinsky6Transformer3DModel) — Transformer multimodal yang melakukan denoising pada latens video dan audio.
- vae (AutoencoderKLHunyuanVideo) — VAE video yang digunakan untuk mengodekan gambar referensi dan mendekodekan video yang dihasilkan.
- text_encoder (Qwen2_5_VLForConditionalGeneration) — Model Qwen2.5-VL yang menyediakan embedding teks tingkat token dan, secara opsional, ekspansi prompt.
- tokenizer (Qwen2_5_VLProcessor) —
Processor dari
text_encoder. - text_encoder_2 (CLIPTextModel) — Encoder teks CLIP yang menyediakan embedding teks yang dipool.
- tokenizer_2 (CLIPTokenizer) —
Tokenizer dari
text_encoder_2. - scheduler (FlowMatchEulerDiscreteScheduler atau PiflowScheduler) —
Scheduler yang digunakan bersama
transformeruntuk menghilangkan noise pada latents. Checkpoint yang telah didistilkan dilengkapi dengan PiflowScheduler dan harus dijalankan denganguidance_scale=1.0. - audio_vae (MMAudioVAE, opsional) —
Audio VAE yang digunakan untuk mendekode latens audio yang dihasilkan menjadi spektrogram mel. Hanya diperlukan ketika
sample_audio=True. - vocoder (MMAudioVocoder, opsional) —
Vocoder yang digunakan untuk mengubah mel spectrogram yang didekode oleh
audio_vaemenjadi waveform. Hanya diperlukan ketikasample_audio=True.
Pipeline untuk generasi teks/gambar-ke-video-dan-audio dengan Kandinsky 6.
Latent video dan audio didenois bersama oleh satu transformer multimodal, dikondisikan oleh token teks Qwen2.5-VL dan embedding CLIP yang dipool. Gambar referensi opsional mengondisikan frame pertama.
Model ini mewarisi dari DiffusionPipeline. Periksa dokumentasi kelas induk untuk metode generik yang diimplementasikan untuk semua pipeline (mengunduh, menyimpan, menjalankan pada perangkat tertentu, dll.).
__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
Parameter
- prompt (
strataulist[str], opsional) — Prompt atau prompt-prompt untuk mengarahkan generasi. Wajib diisi kecualiprompt_embedsdiberikan. - image (
PipelineImageInput, optional) — Reference image(s) conditioning the first frame (image-to-video-and-audio). - negative_prompt (
strataulist[str], opsional) — Prompt atau prompt-prompt yang tidak digunakan untuk mengarahkan generasi. Secara default menggunakan negative prompt dari Kandinsky 6. - height (
int, defaultnya512) — Tinggi video yang dihasilkan dalam piksel. - width (
int, defaultnya768) — Lebar video yang dihasilkan dalam piksel. - num_frames (
int, defaultnya121) — Jumlah frame yang dihasilkan. - frame_rate (
float, defaultnya24.0) — Frame rate yang digunakan untuk menghasilkan video; mengatur panjang audio yang disinkronkan. - num_inference_steps (
int, defaultnya50) — Jumlah langkah denoising. Gunakan16dengan checkpoint yang telah didistilasi. - timesteps (
list[int], opsional) — Timesteps kustom untuk scheduler yang mendukungnya. - sigmas (
list[float], opsional) — Sigmas kustom untuk scheduler yang mendukungnya. - guidance_scale (
float, defaultnya5.0) — Skala panduan bebas klasifikator. Harus1.0dengan PiflowScheduler. - num_videos_per_prompt (
int, defaultnya1) — Jumlah video yang akan dihasilkan per prompt. - generator (
torch.Generatorataulist[torch.Generator], opsional) — Generator yang digunakan untuk noise awal dan encoding gambar referensi. - latents (
torch.Tensor, opsional) — Latens video yang telah dibuat sebelumnya dengan bentuk(batch_size, channels, num_latent_frames, latent_height, latent_width). - audio_latents (
torch.Tensor, opsional) — Latens audio yang telah dibuat sebelumnya dengan bentuk(batch_size, channels, audio_length). - prompt_embeds (
torch.Tensor, opsional) — Embedding teks Qwen2.5-VL yang telah dibuat sebelumnya. - pooled_prompt_embeds (
torch.Tensor, opsional) — Embedding teks CLIP yang sudah digenerate sebelumnya. - negative_prompt_embeds (
torch.Tensor, opsional) — Embedding teks Qwen2.5-VL negatif yang telah dibuat sebelumnya. - negative_pooled_prompt_embeds (
torch.Tensor, opsional) — Embedding teks CLIP negatif yang sudah dibuat sebelumnya. - sample_audio (
bool, defaultnyaTrue) — Apakah akan menghasilkan audio yang tersinkronisasi. Memerlukan pipeline yang memilikiaudio_vaedanvocoder. - expand_prompts (
bool, defaultnyaFalse) — Apakah akan menulis ulang prompt dengan expand_prompts() sebelum encoding. - max_sequence_length (
int, defaultnya1024) — Jumlah maksimum token prompt setelah template chat. - output_type (
str, defaultnya"pil") — Format output dari video yang dihasilkan:"pil","np","pt"atau"latent". - return_dict (
bool, defaultnyaTrue) — Apakah akan mengembalikan Kandinsky6TI2VAPipelineOutput alih-alih tuple biasa. - callback_on_step_end (
Callable, opsional) — Fungsi yang dipanggil di akhir setiap langkah denoising dengancallback_on_step_end(self, step, timestep, callback_kwargs). Fungsi ini dapat mengembalikan dict yang menimpa tensor yang terdaftar. - callback_on_step_end_tensor_inputs (
list[str], defaultnya["latents"]) — Input tensor yang diteruskan kecallback_on_step_end; subset dari_callback_tensor_inputs.
Mengembalikan
Kandinsky6TI2VAPipelineOutput atau tuple
Video dan audio yang dihasilkan; tuple (frames, audio) ketika return_dict=False.
Fungsi panggilan untuk pipeline pada generasi.
Contoh:
>>> 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 )
Mengode gambar referensi menjadi latens bingkai pertama dengan bentuk (batch_size, latent_height, latent_width, latent_channels), yang diskalakan oleh scaling_factor VAE. Gambar PIL di-resize dan di-crop di tengah menjadi height x width; tensor dan array harus sudah memiliki ukuran tersebut. Latens diulang sebanyak num_videos_per_prompt kali
sepanjang dimensi batch.
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 )
Parameter
- prompt (
strataulist[str]) — Prompt yang akan dienkod. - negative_prompt (
strataulist[str], opsional) — Prompt yang tidak digunakan untuk mengarahkan generasi. Diabaikan ketikado_classifier_free_guidanceadalahFalse. - do_classifier_free_guidance (
bool, defaultnyaTrue) — Apakah prompt negatif juga akan di-encode. - num_videos_per_prompt (
int, defaultnya1) — Jumlah video yang dihasilkan per prompt; embedding diulang sesuai dengan jumlah tersebut. - prompt_embeds (
torch.Tensor, opsional) — Embedding teks Qwen2.5-VL yang telah dibuat sebelumnya. Melewati pengkodeanprompt. - pooled_prompt_embeds (
torch.Tensor, opsional) — Embedding teks CLIP yang sudah digenerate sebelumnya. Harus diberikan bersama denganprompt_embeds. - prompt_attention_mask (
torch.Tensor, opsional) — Mask padding boolean untukprompt_embeds. - negative_prompt_embeds (
torch.Tensor, opsional) — Embedding teks Qwen2.5-VL negatif yang telah dibuat sebelumnya. - negative_pooled_prompt_embeds (
torch.Tensor, opsional) — Embedding teks CLIP negatif yang sudah dibuat sebelumnya. - negative_prompt_attention_mask (
torch.Tensor, opsional) — Mask padding boolean untuknegative_prompt_embeds. - max_sequence_length (
int, defaultnya1024) — Jumlah maksimum token prompt setelah template chat. - device (
torch.device, opsional) — Perangkat untuk menjalankan text encoder. - dtype (
torch.dtype, opsional) — Dtype dari embedding yang dikembalikan.
Mengkodekan prompt menjadi hidden states dari text encoder.
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]
Parameter
- prompt (
strataulist[str]) — Prompt atau kumpulan prompt yang akan diperluas. - tokenizer —
Prosesor Qwen2.5-VL, misalnya
pipe.tokenizer. - text_encoder —
Model Qwen2.5-VL, misalnya
pipe.text_encoder. - device (
torch.device) — Perangkat untuk menjalankan text encoder. - image (
PIL.Image.Imageataulist[PIL.Image.Image], opsional) — Gambar referensi untuk panggilan image-to-video. - max_sequence_length (
int, defaultnya1024) — Jumlah maksimum token yang dihasilkan per prompt. - generator (
torch.Generatorataulist[torch.Generator], opsional) — Menetapkan benih (seed) untuk ekspansi yang disampelkan; sebuah daftar harus sesuai dengan panjangprompt, satu generator per item.generatemengambil dari RNG global, sehingga RNG global diberi benih dari benih generator ini; pemanggilanrandn_tensorselanjutnya tetap menggunakangeneratorsecara langsung.
Mengembalikan
str atau list[str]
Prompt yang diperluas.
Menulis ulang prompt pendek menjadi prompt video+audio yang detail dengan encoder teks Qwen2.5-VL, dengan mengaitkannya pada gambar referensi jika diberikan. Sebuah staticmethod sehingga dapat digunakan secara mandiri, sebelum menjalankan pipeline.
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 )
Mengembalikan latens audio dalam tata letak (batch_size, audio_length, channels) dari transformer. Tensor audio_latents yang disediakan pengguna diharapkan dalam tata letak (batch_size, channels, audio_length).
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 )
Mengembalikan video latents dalam tata letak (batch_size, num_frames, height, width, channels) dari transformer.
Tensor latents yang disediakan pengguna diharapkan dalam tata letak (batch_size, channels, num_frames, height, width).
Kandinsky6SRPipeline
kelas 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 )
Parameter
- transformer (Kandinsky6SRTransformer3DModel) — Transformer yang menyempurnakan ubin laten.
- vae (Kandinsky6SRVAE) — K-VAE video kausal yang digunakan untuk mengkodekan video input dan mendekodekan tile yang telah disempurnakan.
- scheduler (FlowMatchEulerDiscreteScheduler atau PiflowScheduler) —
Scheduler yang digunakan bersama
transformeruntuk menghilangkan noise pada tile. Checkpoint yang telah didistilkan dilengkapi dengan PiflowScheduler. - latent_upscaler (Kandinsky6SRLatentUpscalerBank, opsional) — Latent upscaler untuk skala yang didukung.
Pipeline untuk super-resolusi video dengan Kandinsky 6.
Video dipecah menjadi ubin spasial yang saling tumpang tindih, setiap ubin disempurnakan oleh transformer SR pada salah satu ukuran ubin yang digunakan saat pelatihan model (transformer.config.tile_sizes), dan ubin yang telah disempurnakan tersebut dicampur kembali menggunakan jendela Hann. Ketika pipeline memiliki latent_upscaler, ubin dipotong dari latens K-VAE dari seluruh video dan di-upscale di ruang latens; jika tidak, ubin piksel di-upscale secara bilinear dan kemudian di-encode.
Model ini mewarisi dari DiffusionPipeline. Periksa dokumentasi kelas induk untuk metode generik yang diimplementasikan untuk semua pipeline (mengunduh, menyimpan, menjalankan pada perangkat tertentu, dll.).
__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
Parameter
- video (
list[PIL.Image.Image],np.ndarrayatautorch.Tensor) — Video beresolusi rendah, dalam format apa pun yang diterima oleh preprocess_video(), dengan1 + k * 4frame. Ukuran dibulatkan ke bawah menjadi kelipatan dari faktor spasial VAE. - resolution_scale (
float, defaultnya2.25) — Upscale spasial total:2,4, atau2.25(pre-upscale bilinear 1.125x diikuti jalur 2x). - num_inference_steps (
int, defaultnya4) — Jumlah langkah denoising per tile. Gunakan2dengan checkpoint yang telah didistilasi. - timesteps (
list[int], opsional) — Timesteps kustom untuk scheduler yang mendukungnya. - sigmas (
list[float], opsional) — Sigmas kustom untuk scheduler yang mendukungnya. - lq_noise_scale (
float, defaultnya0.7) — Jumlah noise Gaussian yang dicampurkan ke dalam latents resolusi rendah (variance preserving) sebelum denoising. - min_overlap (
float, defaultnya0.2) — Tumpang tindih minimum antara ubin yang bersebelahan sebagai fraksi dari ukuran ubin. - tiles_batch_size (
int, defaultnya1) — Jumlah tile yang didenois per panggilan transformer. - generator (
torch.Generatorataulist[torch.Generator], opsional) — Generator yang digunakan untuk noise yang dicampurkan ke dalam tile. - output_type (
str, defaultnya"pil") — Format output dari video yang dihasilkan:"pil","np"atau"pt". - return_dict (
bool, defaultnyaTrue) — Apakah akan mengembalikan Kandinsky6SRPipelineOutput alih-alih tuple biasa.
Mengembalikan
Kandinsky6SRPipelineOutput atau tuple
Video super-resolved; tuple satu elemen ketika return_dict=False.
Fungsi panggilan untuk pipeline super-resolution.
Contoh:
>>> 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)Mendekode latens K-VAE yang diskalakan menjadi video (batch_size, channels, num_frames, height, width) dalam [-1, 1].
Mengkodekan video (batch_size, channels, num_frames, height, width) dalam [-1, 1] menjadi latents K-VAE yang diskalakan oleh scaling_factor VAE.
Kandinsky6SRLatentUpscalerBank
kelas 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 )
Parameter
- in_channels (
int, defaultnya64) — Jumlah saluran laten. - stage_channels (
tuple[int, int, int], defaultnya(2048, 1024, 512)) — Lebar fitur dari tiga tahap kaskade. - num_pre_blocks (
int, defaultnya5) — Blok residual sebelum upsample pertama pada model x4. - num_mid_blocks (
int, defaultnya3) — Blok residual di antara dua upsamples. - num_post_blocks (
int, defaultnya3) — Blok residual setelah upsample terakhir. - num_x2_adapter_blocks (
int, defaultnya2) — Blok residual dari adapter model x2. - scales (
tuple[int, ...], defaultnya(2, 4)) — Skala spasial yang bank tersebut sediakan upscaler-nya. - scaling_factor (
float, defaultnya0.910344) — Skala yang diharapkan dibawa oleh latents input (yaituscaling_factordari K-VAE).
Bank upscaler laten yang digunakan oleh Kandinsky6SRPipeline: satu Kandinsky6SRLatentUpscaler untuk setiap skala spasial yang didukung, beroperasi pada laten K-VAE.
forward
< source >( latents: Tensorscale: intreturn_dict: bool = True )
Parameter
- latents (
torch.Tensordengan bentuk(batch_size, in_channels, num_frames, height, width)) — Latents K-VAE yang diskalakan denganscaling_factor. - scale (
int) — Faktor upscale spasial; salah satu dariscales. - return_dict (
bool, defaultnyaTrue) — Apakah akan mengembalikan~models.autoencoder_kl.DecoderOutputalih-alih tuple biasa.
Kandinsky6TI2VAPipelineOutput
kelas diffusers.Kandinsky6TI2VAPipelineOutput
< source >( frames: typing.Union[torch.Tensor, numpy.ndarray, list[list[PIL.Image.Image]]]audio: typing.Union[torch.Tensor, numpy.ndarray, NoneType] = None )
Parameter
- frames (
torch.Tensor,np.ndarray, ataulist[list[PIL.Image.Image]]) — Video yang dihasilkan. Daftar bersarang dengan panjangbatch_sizeyang berisinum_framesgambar PIL masing-masing, atau array NumPy atau tensor torch dengan bentuk(batch_size, num_frames, height, width, channels)/(batch_size, num_frames, channels, height, width). Denganoutput_type="latent", latens video dengan bentuk(batch_size, channels, num_latent_frames, latent_height, latent_width). - audio (
torch.Tensorataunp.ndarray, opsional) — Bentuk gelombang yang dihasilkan dengan bentuk(batch_size, num_samples)dalam[-1, 1]pada laju sampel VAE audio, atauNoneketika audio tidak disampelkan. Denganoutput_type="latent", latens audio dengan bentuk(batch_size, channels, audio_length).
Kelas output untuk Kandinsky6TI2VAPipeline.
Kandinsky6SRPipelineOutput
kelas diffusers.Kandinsky6SRPipelineOutput
< source >( frames: typing.Union[torch.Tensor, numpy.ndarray, list[list[PIL.Image.Image]]] )
Parameter
- frames (
torch.Tensor,np.ndarray, ataulist[list[PIL.Image.Image]]) — Video yang telah di-super-resolve. Daftar bersarang dengan panjangbatch_sizeyang masing-masing berisinum_framesgambar PIL, atau array NumPy atau tensor torch dengan bentuk(batch_size, num_frames, height, width, channels)/(batch_size, num_frames, channels, height, width).
Kelas output untuk Kandinsky6SRPipeline.