Diffusers documentation
Kandinsky 6
Kandinsky 6
Kandinsky 6 est une famille de modèles de génération vidéo de Kandinsky Lab. Le modèle principal génère une vidéo et un audio synchronisés à partir d'un texte ou d'une image de référence au moyen d'un unique transformeur de diffusion multimodal : les latents vidéo et audio sont débruités ensemble à travers des blocs fusionnés qui effectuent une attention croisée entre les deux modalités, chacun étant conditionné par sa propre branche de texte Qwen2.5-VL et par un embedding CLIP agrégé. Un modèle de super-résolution distinct agrandit la vidéo générée tuile par tuile dans l'espace latent d'un K-VAE causal 3D.
Consultez l’organisation Kandinsky Lab sur le Hub pour l’ensemble des points de contrôle officiels, y compris les variantes flow-matching et distillées des modèles de base et de super-résolution.
Les points de contrôle distillés sont livrés avec le PiflowScheduler à étapes réduites et doivent être exécutés avec
guidance_scale=1.0.
Modèles disponibles
| Modèle | Pipeline | Notes |
|---|---|---|
kandinskylab/Kandinsky-6.0-Pro-5s-Diffusers | Kandinsky6TI2VAPipeline | Flow matching, guidance_scale=5.0, 50 étapes |
kandinskylab/Kandinsky-6.0-Pro-distill-5s-Diffusers | Kandinsky6TI2VAPipeline | Distillé, guidance_scale=1.0, 10 étapes |
kandinskylab/Kandinsky-6.0-Lite-5s-Diffusers | Kandinsky6TI2VAPipeline | Flow matching, guidance_scale=5.0, 50 étapes |
kandinskylab/Kandinsky-6.0-Lite-distill-5s-Diffusers | Kandinsky6TI2VAPipeline | Distillé, guidance_scale=1.0, 10 étapes |
kandinskylab/Kandinsky-6.0-Pro-pretrain-5s-Diffusers | Kandinsky6TI2VAPipeline | Flow matching, guidance_scale=5.0, 50 étapes |
kandinskylab/Kandinsky-6.0-Lite-pretrain-5s-Diffusers | Kandinsky6TI2VAPipeline | Flow matching, guidance_scale=5.0, 50 étapes |
kandinskylab/Kandinsky-6.0-VSR-5s-Diffusers | Kandinsky6SRPipeline | Super-résolution par correspondance de flux |
kandinskylab/Kandinsky-6.0-VSR-distilled2steps-5s-Diffusers | Kandinsky6SRPipeline | Super-résolution distillée, 2 étapes |
Texte/image-vers-vidéo-et-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,
)Passez image= pour conditionner la première image sur une image de référence, sample_audio=False pour générer uniquement la vidéo, et expand_prompts=True pour laisser l’encodeur de texte Qwen2.5-VL réécrire d’abord les prompts courts en prompts détaillés.
Super-résolution vidéo
Kandinsky6SRPipeline prend les images produites par Kandinsky6TI2VAPipeline et les agrandit par un facteur de 2, 4 ou 2.25 (un pré-agrandissement bilinéaire de 1,125x suivi du chemin 2x). La vidéo est découpée en tuiles chevauchantes, chaque tuile est affinée à l'une des tailles de tuiles sur lesquelles le transformeur SR a été entraîné, et les tuiles sont recombinées à l'aide de fenêtres de 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]Optimisation de la mémoire
Reportez-vous au guide Réduire l’utilisation de la mémoire pour l’ensemble général des techniques. Les pipelines Kandinsky6TI2VAPipeline et Kandinsky6SRPipeline prennent en charge le model offloading (utilisé ci-dessus) et, pour une empreinte plus réduite au détriment de la vitesse, le sequential CPU offloading :
pipe.enable_sequential_cpu_offload()
Le VAE vidéo de Kandinsky6TI2VAPipeline prend également en charge le décodage par tuiles pour les hautes résolutions ou les vidéos longues :
pipe.vae.enable_tiling()
Notes
heightetwidthdoivent être divisibles par le ratio de compression spatiale du VAE vidéo multiplié par la taille de patch du transformer —16avec la configuration par défaut de Kandinsky6TI2VAPipeline (AutoencoderKLHunyuanVideoavec un ratio de compression de8,patch_size=(1, 2, 2)).480x864, utilisé dans l’exemple ci-dessus, satisfait cette condition.- L’entrée
videode Kandinsky6SRPipeline doit contenir1 + k * vae_scale_factor_temporalimages pour un entierkdonné (un ratio de compression temporelle de4avec la configuration K-VAE par défaut, donc121images fonctionne mais120non) — rogner ou compléter une vidéo qui ne satisfait pas déjà à cette condition avant de l’augmenter. expand_prompts=Trueréutilise l’encodeur de texte Qwen2.5-VL déjà chargé pour un passage de génération supplémentaire avant le débruitage, ce qui ajoute de la latence mais aucun poids de modèle supplémentaire.- Compilez les blocs de transformer répétés pour une inférence répétée plus rapide :
pipe.transformer.compile_repeated_blocks(fullgraph=True)
Kandinsky6TI2VAPipeline
classe 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 )
Paramètres
- transformer (Kandinsky6Transformer3DModel) — Transformeur multimodal qui débruite les latents vidéo et audio.
- vae (AutoencoderKLHunyuanVideo) — VAE vidéo utilisé pour encoder l'image de référence et décoder la vidéo générée.
- text_encoder (Qwen2_5_VLForConditionalGeneration) — Modèle Qwen2.5-VL fournissant les embeddings de texte au niveau des jetons et, en option, l’expansion du prompt.
- tokenizer (Qwen2_5_VLProcessor) —
Processeur de
text_encoder. - text_encoder_2 (CLIPTextModel) — encodeur de texte CLIP fournissant l'embedding de texte poolé.
- tokenizer_2 (CLIPTokenizer) —
Tokenizer de
text_encoder_2. - scheduler (FlowMatchEulerDiscreteScheduler ou PiflowScheduler) —
Planificateur utilisé avec
transformerpour débruisser les latents. Les points de contrôle distillés sont fournis avec un PiflowScheduler et doivent être exécutés avecguidance_scale=1.0. - audio_vae (MMAudioVAE, facultatif) —
VAE audio utilisé pour décoder les latents audio générés en spectrogramme de mel. Nécessaire uniquement lorsque
sample_audio=True. - vocoder (MMAudioVocoder, facultatif) —
Vocodeur utilisé pour convertir le spectrogramme mel décodé par
audio_vaeen forme d’onde. Nécessaire uniquement lorsquesample_audio=True.
Pipeline pour la génération de vidéo et d'audio à partir de texte/image avec Kandinsky 6.
Les latents vidéo et audio sont débruités ensemble par un unique transformeur multimodal, conditionné par des jetons de texte Qwen2.5-VL et un embedding agrégé CLIP. Une image de référence facultative conditionne la première image.
Ce modèle hérite de DiffusionPipeline. Consultez la documentation de la classe parente pour les méthodes génériques implémentées pour tous les pipelines (téléchargement, sauvegarde, exécution sur un appareil particulier, etc.).
__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[str] = ['latents'] ) → Kandinsky6TI2VAPipelineOutput or tuple
Paramètres
- prompt (
stroulist[str], facultatif) — Le prompt ou les prompts pour guider la génération. Obligatoire sauf siprompt_embedsest fourni. - image (
PipelineImageInput, facultatif) — Image(s) de référence conditionnant la première image (image-vers-vidéo-et-audio). - negative_prompt (
stroulist[str], facultatif) — Le ou les prompts à ne pas utiliser pour guider la génération. Par défaut, le prompt négatif de Kandinsky 6 est utilisé. - height (
int, par défaut512) — Hauteur de la vidéo générée, en pixels. - width (
int, par défaut768) — Largeur de la vidéo générée, en pixels. - num_frames (
int, par défaut121) — Nombre de frames générées. - frame_rate (
float, par défaut24.0) — Fréquence d’images à laquelle la vidéo est générée ; définit la durée de l’audio synchronisé. - num_inference_steps (
int, par défaut50) — Le nombre d'étapes de débruitage. Utilisez16avec les points de contrôle distillés. - timesteps (
list[int], facultatif) — Timesteps personnalisés pour les planificateurs qui les prennent en charge. - sigmas (
list[float], facultatif) — Sigmas personnalisés pour les planificateurs qui les prennent en charge. - guidance_scale (
float, par défaut5.0) — Échelle de guidage sans classifieur. Doit être1.0avec un PiflowScheduler. - num_videos_per_prompt (
int, par défaut1) — Le nombre de vidéos à générer par invite. - generator (
torch.Generatoroulist[torch.Generator], facultatif) — Générateur(s) utilisé(s) pour le bruit initial et l'encodage de l'image de référence. - latents (
torch.Tensor, facultatif) — Latents vidéo pré-générés de forme(batch_size, channels, num_latent_frames, latent_height, latent_width). - audio_latents (
torch.Tensor, facultatif) — Latents audio pré-générés de forme(batch_size, channels, audio_length). - prompt_embeds (
torch.Tensor, facultatif) — Embeddings de texte Qwen2.5-VL pré-générés. - pooled_prompt_embeds (
torch.Tensor, facultatif) — Embeddings de texte CLIP pré-générés. - negative_prompt_embeds (
torch.Tensor, facultatif) — Embeddings de texte négatifs Qwen2.5-VL pré-générés. - negative_pooled_prompt_embeds (
torch.Tensor, facultatif) — Embeddings de texte CLIP négatifs pré-générés. - sample_audio (
bool, par défautTrue) — Indique s'il faut générer un audio synchronisé. Nécessite que le pipeline dispose d'unaudio_vaeet d'unvocoder. - expand_prompts (
bool, par défautFalse) — Indique s'il faut réécrire les prompts avec expand_prompts() avant l'encodage. - max_sequence_length (
int, par défaut1024) — Nombre maximal de jetons de l'invite après le modèle de discussion. - output_type (
str, par défaut"pil") — Le format de sortie de la vidéo générée :"pil","np","pt"ou"latent". - return_dict (
bool, par défautTrue) — Indique s'il faut retourner un Kandinsky6TI2VAPipelineOutput plutôt qu'un simple tuple. - callback_on_step_end (
Callable, facultatif) — Une fonction appelée à la fin de chaque étape de débruitage aveccallback_on_step_end(self, step, timestep, callback_kwargs). Elle peut renvoyer un dictionnaire qui remplace les tenseurs listés. - callback_on_step_end_tensor_inputs (
list[str], par défaut["latents"]) — Entrées tensorielles passées àcallback_on_step_end; un sous-ensemble de_callback_tensor_inputs.
Retourne
Kandinsky6TI2VAPipelineOutput ou tuple
La vidéo et l'audio générés ; un tuple (frames, audio) lorsque return_dict=False.
La fonction d'appel du pipeline pour la génération.
Exemples :
>>> 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 )
Encode les image(s) de référence en latents de première image de forme (batch_size, latent_height, latent_width, latent_channels), mis à l'échelle par le scaling_factor du VAE. Les images PIL sont redimensionnées et recadrées au centre sur height x width ; les tenseurs et tableaux doivent déjà avoir cette taille. Les latents sont répétés num_videos_per_prompt fois
le long de la dimension de lot.
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 )
Paramètres
- prompt (
stroulist[str]) — Prompt à encoder. - negative_prompt (
stroulist[str], facultatif) — Le prompt à ne pas utiliser pour guider la génération. Ignoré lorsquedo_classifier_free_guidanceestFalse. - do_classifier_free_guidance (
bool, par défautTrue) — Indique s'il faut également encoder le prompt négatif. - num_videos_per_prompt (
int, par défaut1) — Nombre de vidéos générées par invite ; les embeddings sont répétés en conséquence. - prompt_embeds (
torch.Tensor, facultatif) — Embeddings de texte Qwen2.5-VL pré-générés. Permet de passer l’encodage deprompt. - pooled_prompt_embeds (
torch.Tensor, facultatif) — Embeddings de texte CLIP pré-générés. Doit être fourni avecprompt_embeds. - prompt_attention_mask (
torch.Tensor, facultatif) — Masque de bourrage booléen deprompt_embeds. - negative_prompt_embeds (
torch.Tensor, facultatif) — Embeddings de texte négatifs Qwen2.5-VL pré-générés. - negative_pooled_prompt_embeds (
torch.Tensor, facultatif) — Embeddings de texte CLIP négatifs pré-générés. - negative_prompt_attention_mask (
torch.Tensor, facultatif) — Masque de bourrage booléen denegative_prompt_embeds. - max_sequence_length (
int, par défaut1024) — Nombre maximal de jetons de l'invite après le modèle de discussion. - device (
torch.device, facultatif) — Appareil sur lequel exécuter les encodeurs de texte. - dtype (
torch.dtype, facultatif) — Dtype des embeddings renvoyés.
Encode le prompt dans les états cachés de l'encodeur de texte.
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]
Paramètres
- prompt (
stroulist[str]) — Prompt ou prompts à développer. - tokenizer —
Le processeur Qwen2.5-VL, par exemple
pipe.tokenizer. - text_encoder —
Le modèle Qwen2.5-VL, par exemple
pipe.text_encoder. - device (
torch.device) — Appareil sur lequel exécuter l'encodeur de texte. - image (
PIL.Image.Imageoulist[PIL.Image.Image], facultatif) — Image(s) de référence pour un appel image-vers-vidéo. - max_sequence_length (
int, par défaut1024) — Nombre maximal de jetons générés par invite. - generator (
torch.Generatoroulist[torch.Generator], facultatif) — Sème l’expansion échantillonnée ; une liste doit correspondre à la longueur deprompt, un générateur par élément.generatetire de la RNG globale, de sorte que la RNG globale est semée à partir de la graine de ce générateur ; les appels ultérieurs àrandn_tensorcontinuent d’utilisergeneratordirectement.
Retourne
str ou list[str]
Le(s) prompt(s) étendu(s).
Réécrit les prompts courts en prompts vidéo+audio détaillés avec l’encodeur de texte Qwen2.5-VL, en s’appuyant sur l’image de référence lorsqu’une est fournie. Il s’agit d’une staticmethod afin qu’elle puisse être utilisée de manière autonome, avant l’exécution du 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 )
Retourne les latents audio dans la disposition (batch_size, audio_length, channels) du transformer. Un tenseur audio_latents fourni par l’utilisateur est attendu dans la disposition (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 )
Retourne les latents vidéo dans la disposition (batch_size, num_frames, height, width, channels) du transformer.
Un tenseur latents fourni par l’utilisateur est attendu dans la disposition (batch_size, channels, num_frames, height, width).
Kandinsky6SRPipeline
classe 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 )
Paramètres
- transformer (Kandinsky6SRTransformer3DModel) — Transformer qui affine les tuiles latentes.
- vae (Kandinsky6SRVAE) — K-VAE vidéo causal utilisé pour encoder la vidéo d’entrée et décoder les tuiles affinées.
- scheduler (FlowMatchEulerDiscreteScheduler ou PiflowScheduler) —
Planificateur utilisé avec
transformerpour débruitiser les tuiles. Les points de contrôle distillés sont fournis avec un PiflowScheduler. - latent_upscaler (Kandinsky6SRLatentUpscalerBank, facultatif) — Upscaleurs latents pour les échelles prises en charge.
Pipeline de super-résolution vidéo avec Kandinsky 6.
La vidéo est découpée en tuiles spatiales chevauchantes, chaque tuile est affinée par le transformeur SR à l'une des tailles de tuiles sur lesquelles le modèle a été entraîné (transformer.config.tile_sizes), et les tuiles affinées sont recombinées à l'aide de fenêtres de Hann. Lorsque le pipeline dispose d'un latent_upscaler, les tuiles sont extraites des latents K-VAE de la vidéo entière et redimensionnées dans l'espace latent ; sinon, les tuiles en pixels sont redimensionnées par interpolation bilinéaire puis encodées.
Ce modèle hérite de DiffusionPipeline. Consultez la documentation de la classe parente pour les méthodes génériques implémentées pour tous les pipelines (téléchargement, sauvegarde, exécution sur un appareil particulier, etc.).
__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
Paramètres
- video (
list[PIL.Image.Image],np.ndarrayoutorch.Tensor) — La ou les vidéos basse résolution, dans n’importe quel format accepté par preprocess_video(), avec1 + k * 4images. Les dimensions sont arrondies à la valeur inférieure multiple du facteur spatial du VAE. - resolution_scale (
float, par défaut2.25) — Agrandissement spatial total :2,4ou2.25(un pré-agrandissement bilinéaire de 1,125x suivi du chemin 2x). - num_inference_steps (
int, par défaut4) — Le nombre d'étapes de débruitage par tuile. Utilisez2avec les points de contrôle distillés. - timesteps (
list[int], facultatif) — Timesteps personnalisés pour les planificateurs qui les prennent en charge. - sigmas (
list[float], facultatif) — Sigmas personnalisés pour les planificateurs qui les prennent en charge. - lq_noise_scale (
float, par défaut0.7) — Quantité de bruit gaussien mélangée aux latents basse résolution (préservant la variance) avant le débruitage. - min_overlap (
float, par défaut0.2) — Recouvrement minimal entre les tuiles voisines, exprimé en fraction de la taille de la tuile. - tiles_batch_size (
int, par défaut1) — Nombre de tuiles débruitées par appel au transformer. - generator (
torch.Generatoroulist[torch.Generator], facultatif) — Générateur(s) utilisé(s) pour le bruit mélangé aux tuiles. - output_type (
str, par défaut"pil") — Le format de sortie de la vidéo générée :"pil","np"ou"pt". - return_dict (
bool, par défautTrue) — Indique s'il faut retourner un Kandinsky6SRPipelineOutput plutôt qu'un simple tuple.
Retourne
Kandinsky6SRPipelineOutput ou tuple
La vidéo super-résolue ; un tuple à un élément lorsque return_dict=False.
La fonction d'appel du pipeline pour la super-résolution.
Exemples :
>>> 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)Décode les latents K-VAE mis à l'échelle en une vidéo de forme (batch_size, channels, num_frames, height, width) dans l'intervalle [-1, 1].
Encode une vidéo de forme (batch_size, channels, num_frames, height, width) dans [-1, 1] en latents K-VAE mis à l'échelle par le scaling_factor du VAE.
Kandinsky6SRLatentUpscalerBank
classe 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 )
Paramètres
- in_channels (
int, par défaut64) — Nombre de canaux latents. - stage_channels (
tuple[int, int, int], par défaut(2048, 1024, 512)) — Largeurs des caractéristiques des trois étapes de la cascade. - num_pre_blocks (
int, par défaut5) — Blocs résiduels avant le premier upsample du modèle x4. - num_mid_blocks (
int, par défaut3) — Blocs résiduels entre les deux opérations de suréchantillonnage. - num_post_blocks (
int, par défaut3) — Blocs résiduels après le dernier upsample. - num_x2_adapter_blocks (
int, par défaut2) — Blocs résiduels de l’adaptateur du modèle x2. - scales (
tuple[int, ...], par défaut(2, 4)) — Échelles spatiales pour lesquelles la banque fournit un upscaler. - scaling_factor (
float, par défaut0.910344) — Facteur d'échelle que les latents d'entrée sont censés porter (lescaling_factordu K-VAE).
Banque de redimensionneurs latents utilisés par Kandinsky6SRPipeline : un Kandinsky6SRLatentUpscaler par échelle spatiale prise en charge, opérant sur les latents K-VAE.
forward
< source >( latents: Tensorscale: intreturn_dict: bool = True )
Paramètres
- latents (
torch.Tensorde forme(batch_size, in_channels, num_frames, height, width)) — Latents K-VAE mis à l'échelle parscaling_factor. - scale (
int) — Facteur de mise à l'échelle spatiale ; l'un desscales. - return_dict (
bool, par défautTrue) — Indique s'il faut retourner un~models.autoencoder_kl.DecoderOutputplutôt qu'un simple tuple.
Kandinsky6TI2VAPipelineOutput
classe diffusers.Kandinsky6TI2VAPipelineOutput
< source >( frames: typing.Union[torch.Tensor, numpy.ndarray, list[list[PIL.Image.Image]]]audio: typing.Union[torch.Tensor, numpy.ndarray, NoneType] = None )
Paramètres
- frames (
torch.Tensor,np.ndarrayoulist[list[PIL.Image.Image]]) — La vidéo générée. Une liste imbriquée de longueurbatch_sizecontenantnum_framesimages PIL chacune, ou un tableau NumPy ou un tenseur torch de forme(batch_size, num_frames, height, width, channels)/(batch_size, num_frames, channels, height, width). Avecoutput_type="latent", les latents de la vidéo de forme(batch_size, channels, num_latent_frames, latent_height, latent_width). - audio (
torch.Tensorounp.ndarray, facultatif) — Les formes d’onde générées de forme(batch_size, num_samples)dans[-1, 1]à la fréquence d’échantillonnage du VAE audio, ouNonesi l’audio n’a pas été échantillonné. Avecoutput_type="latent", les latents audio de forme(batch_size, channels, audio_length).
Classe de sortie pour Kandinsky6TI2VAPipeline.
Kandinsky6SRPipelineOutput
classe diffusers.Kandinsky6SRPipelineOutput
< source >( frames: typing.Union[torch.Tensor, numpy.ndarray, list[list[PIL.Image.Image]]] )
Paramètres
- frames (
torch.Tensor,np.ndarrayoulist[list[PIL.Image.Image]]) — La vidéo super-résolue. Une liste imbriquée de longueurbatch_sizecontenantnum_framesimages PIL chacune, ou un tableau NumPy ou un tenseur torch de forme(batch_size, num_frames, height, width, channels)/(batch_size, num_frames, channels, height, width).
Classe de sortie pour Kandinsky6SRPipeline.