Buckets:
| # | |
| # Sous licence Apache License, Version 2.0 (la « Licence ») ; | |
| # vous ne pouvez utiliser ce fichier que conformément à la Licence. | |
| # Vous pouvez obtenir un exemplaire de la Licence à | |
| # | |
| # http://www.apache.org/licenses/LICENSE-2.0 | |
| # | |
| # Sauf exigence légale ou accord écrit | |
| # distribué sous la Licence est distribué sur une base « EN L'ÉTAT », | |
| # SANS AUCUNE GARANTIE NI CONDITION, explicite ou implicite. | |
| # Voir la Licence pour le langage spécifique régissant les autorisations et | |
| # limitations under the License. --> | |
| # Wan-Animate-2 | |
| [Wan-Animate-2](https://github.com/Wan-Video/Wan2.2) de l'équipe Alibaba Wan anime une image de personnage de référence avec le mouvement d'une vidéo pilote. La vidéo pilote est traitée par segments de longueur fixe : chaque segment exécute un passage d'extraction de référence qui met en cache les K/V du segment pilote dans chaque couche du transformer, effectue le débruitage par rapport à ce cache et est décodé dans la boucle, car le segment suivant est conditionné par les trames de fin décodées du segment précédent. | |
| Deux préréglages sont disponibles : le point de contrôle de base effectue l'échantillonnage avec un guidage sans classifieur, tandis que le point de contrôle distillé effectue l'échantillonnage en quelques étapes sans celui-ci (son guideur est fixé à `guidance_scale=1.0`). | |
| ```python | |
| import torch | |
| from diffusers import ModularPipeline | |
| from diffusers.utils import export_to_video, load_image, load_video | |
| pipe = ModularPipeline.from_pretrained("Wan-AI/Wan2.2-Animate-2-14B-Diffusers") | |
| pipe.load_components(dtype=torch.bfloat16) | |
| # The transformer weights and the per-segment reference KV cache do not co-reside on one 80 GB | |
| # card at the default resolution, so stream the transformer's blocks. Compiling the blocks is | |
| # required as the in-context attention runs on the flex backend | |
| pipe.transformer.enable_group_offload( | |
| onload_device=torch.device("cuda"), | |
| offload_device=torch.device("cpu"), | |
| offload_type="block_level", | |
| use_stream=True, | |
| ) | |
| pipe.text_encoder.to("cuda") # or "mps", "xpu", "cpu" | |
| pipe.image_encoder.to("cuda") | |
| pipe.vae.to("cuda") | |
| pipe.transformer.compile_repeated_blocks(fullgraph=False) | |
| # The first demo from the official repository: https://github.com/Wan-Video/Wan-Animate-2 | |
| demo = "https://raw.githubusercontent.com/Wan-Video/Wan-Animate-2/main/examples/demo1" | |
| image = load_image(f"{demo}/reference.png") | |
| driving_video, driving_video_fps = load_video(f"{demo}/template.mp4", return_fps=True) | |
| prompt = "人物外观描述:一只银灰色虎斑纹的小猫,拥有圆润的脸庞、竖立的耳朵和巨大的圆形眼睛。它身穿一套深蓝色的制服套装,包括一件带有金色纽扣的西装外套和一条百褶裙。外套里面搭配着白色衬衫,领口处系着一个红色的蝴蝶结,袖口露出白色的衬衫边缘。背景描述:背景为纯白色,光线均匀明亮,无其他杂物或装饰。" | |
| videos = pipe( | |
| image=image, | |
| driving_video=driving_video, | |
| driving_video_fps=driving_video_fps, | |
| prompt=prompt, | |
| output="videos", | |
| ) | |
| export_to_video(videos[0], "output.mp4", fps=24) | |
| ``` | |
| Pour le point de contrôle distillé, chargez `Wan-AI/Wan2.2-Animate-2-14B-Distilled-Diffusers` de la même manière — rien d'autre ne change. Chaque préréglage porte ses propres valeurs par défaut d'échantillonnage (40 étapes pour le point de contrôle de base, 10 pour le distillé), et aucun argument `guidance_scale` n'existe nulle part : le guidage est géré par le composant guider du pipeline (guidage sans classifieur à 3.0 pour le préréglage de base, désactivé pour le distillé). | |
| `height` et `width` (valeurs par défaut 800 et 640) définissent la *surface* cible de la vidéo générée ; la taille réelle des images conserve le ratio d’aspect de l’image de référence, et les images de pilotage sont encadrées (letterbox) en conséquence. Les entrées qui correspondent déjà à la taille de letterbox cible passent à travers la prétraitement sans modification, ce qui permet également d’effectuer la prétraitement entièrement en dehors du pipeline. | |
| ## WanAnimate2ModularPipeline[[diffusers.WanAnimate2ModularPipeline]] | |
| #### diffusers.WanAnimate2ModularPipeline[[diffusers.WanAnimate2ModularPipeline]] | |
| ```python | |
| diffusers.WanAnimate2ModularPipeline(blocks: diffusers.modular_pipelines.modular_pipeline.ModularPipelineBlocks | None = None, pretrained_model_name_or_path: str | os.PathLike | None = None, components_manager: diffusers.modular_pipelines.components_manager.ComponentsManager | None = None, collection: str | None = None, workflow: str | None = None, modular_config_dict: dict[str, typing.Any] | None = None, config_dict: dict[str, typing.Any] | None = None, **kwargs) | |
| ``` | |
| [Source](https://github.com/huggingface/diffusers/blob/main/src/diffusers/modular_pipelines/wan_animate_2/modular_pipeline.py#L23) | |
| Un ModularPipeline pour l'animation de personnages Wan-Animate-2. | |
| ## WanAnimate2DistilledModularPipeline[[diffusers.WanAnimate2DistilledModularPipeline]] | |
| #### diffusers.WanAnimate2DistilledModularPipeline[[diffusers.WanAnimate2DistilledModularPipeline]] | |
| ```python | |
| diffusers.WanAnimate2DistilledModularPipeline(blocks: diffusers.modular_pipelines.modular_pipeline.ModularPipelineBlocks | None = None, pretrained_model_name_or_path: str | os.PathLike | None = None, components_manager: diffusers.modular_pipelines.components_manager.ComponentsManager | None = None, collection: str | None = None, workflow: str | None = None, modular_config_dict: dict[str, typing.Any] | None = None, config_dict: dict[str, typing.Any] | None = None, **kwargs) | |
| ``` | |
| [Source](https://github.com/huggingface/diffusers/blob/main/src/diffusers/modular_pipelines/wan_animate_2/modular_pipeline.py#L62) | |
| Un ModularPipeline pour le modèle distillé Wan-Animate-2, qui effectue l'échantillonnage en peu d'étapes sans guidage sans classifieur. | |
| ## WanAnimate2Blocks[[diffusers.WanAnimate2Blocks]] | |
| #### diffusers.WanAnimate2Blocks[[diffusers.WanAnimate2Blocks]] | |
| ```python | |
| diffusers.WanAnimate2Blocks() | |
| ``` | |
| [Source](https://github.com/huggingface/diffusers/blob/main/src/diffusers/modular_pipelines/wan_animate_2/modular_blocks_wan_animate_2.py#L252) | |
| Blocs de pipeline modulaires pour l'animation de personnages Wan-Animate-2 : une image de référence du personnage et une vidéo de pilotage génèrent une vidéo du personnage suivant le mouvement de pilotage. | |
| Composants : text_encoder (`UMT5EncoderModel`) tokenizer (`AutoTokenizer`) image_processor (`WanAnimate2VideoProcessor`) image_encoder (`CLIPVisionModel`) video_processor (`WanAnimate2VideoProcessor`) vae (`AutoencoderKLWan`) transformer (`WanAnimate2Transformer3DModel`) scheduler (`SchedulerMixin`) guider (`ClassifierFreeGuidance`) | |
| Entrées : prompt (`str`) : Le prompt ou les prompts pour guider la génération d'image. negative_prompt (`str`, *facultatif*) : Le prompt ou les prompts à ne pas utiliser pour guider la génération d'image. prompt_ref (`str`, *facultatif*, par défaut 人物动作的参考视频) : Le prompt de référence pour le contexte de la vidéo de pilotage max_sequence_length (`int`, *facultatif*, par défaut 512) : Longueur de séquence maximale pour l'encodage du prompt. image (`Image | list`) : L'image de référence contenant le personnage à animer. height (`int`, *facultatif*, par défaut 800) : Avec `width`, la *surface* cible de la vidéo générée ; le ratio d'aspect provient de `image`. Remplacé par la hauteur de frame résolue. width (`int`, *facultatif*, par défaut 640) : Voir `height`. Remplacé par la largeur de frame résolue. driving_video (`list`) : La vidéo de pilotage qui fournit le mouvement, dans n'importe quel format accepté par `VideoProcessor.preprocess_video`. driving_video_fps (`float`, *facultatif*) : Le taux de frames auquel `driving_video` a été capturé — `load_video(..., return_fps=True)` le signale. S'il est défini, les frames de pilotage sont rééchantillonnées à partir de celui-ci vers `fps` ; s'il est `None`, elles sont utilisées telles quelles. fps (`int`, *facultatif*, par défaut 24) : Le taux de frames auquel le modèle génère segment_frame_length (`int`, *facultatif*, par défaut 81) : Le nombre de frames dans chaque segment d'inférence prev_segment_conditioning_frames (`int`, *facultatif*, par défaut 1) : Le nombre de frames de conditionnement reprises du segment précédent generator (`Generator`, *facultatif*) : Générateur Torch pour une génération déterministe. num_inference_steps (`int`, *facultatif*, par défaut 40) : Le nombre d'étapes de débruitage. **denoiser_input_fields (`None`, *facultatif*) : entrées conditionnelles du modèle pour le débruiteur : par ex. prompt_embeds, negative_prompt_embeds, etc. output_type (`str`, *facultatif*, par défaut np) : Le type de sortie des vidéos décodées | |
| Sorties : vidéos (`list`) : Les vidéos générées. | |
| ## WanAnimate2DistilledBlocks[[diffusers.WanAnimate2DistilledBlocks]] | |
| #### diffusers.WanAnimate2DistilledBlocks[[diffusers.WanAnimate2DistilledBlocks]] | |
| ```python | |
| diffusers.WanAnimate2DistilledBlocks() | |
| ``` | |
| [Source](https://github.com/huggingface/diffusers/blob/main/src/diffusers/modular_pipelines/wan_animate_2/modular_blocks_wan_animate_2_distilled.py#L254) | |
| Blocs de pipeline modulaires pour l'animation de personnages Wan-Animate-2 distillés, avec un échantillonnage en peu d'étapes sans guidage sans classifieur. | |
| Composants : text_encoder (`UMT5EncoderModel`) tokenizer (`AutoTokenizer`) image_processor (`WanAnimate2VideoProcessor`) image_encoder (`CLIPVisionModel`) video_processor (`WanAnimate2VideoProcessor`) vae (`AutoencoderKLWan`) transformer (`WanAnimate2Transformer3DModel`) scheduler (`SchedulerMixin`) guider (`ClassifierFreeGuidance`) | |
| Entrées : prompt (`str`) : Le prompt ou les prompts pour guider la génération d'image. negative_prompt (`str`, *facultatif*) : Le prompt ou les prompts à ne pas utiliser pour guider la génération d'image. prompt_ref (`str`, *facultatif*, par défaut 人物动作的参考视频) : Le prompt de référence pour le contexte de la vidéo de pilotage max_sequence_length (`int`, *facultatif*, par défaut 512) : Longueur de séquence maximale pour l'encodage du prompt. image (`Image | list`) : L'image de référence contenant le personnage à animer. height (`int`, *facultatif*, par défaut 800) : Avec `width`, la *surface* cible de la vidéo générée ; le ratio d'aspect provient de `image`. Remplacé par la hauteur de frame résolue. width (`int`, *facultatif*, par défaut 640) : Voir `height`. Remplacé par la largeur de frame résolue. driving_video (`list`) : La vidéo de pilotage qui fournit le mouvement, dans n'importe quel format accepté par `VideoProcessor.preprocess_video`. driving_video_fps (`float`, *facultatif*) : Le taux de frames auquel `driving_video` a été capturé — `load_video(..., return_fps=True)` le signale. S'il est défini, les frames de pilotage sont rééchantillonnées à partir de celui-ci vers `fps` ; s'il est `None`, elles sont utilisées telles quelles. fps (`int`, *facultatif*, par défaut 24) : Le taux de frames auquel le modèle génère segment_frame_length (`int`, *facultatif*, par défaut 81) : Le nombre de frames dans chaque segment d'inférence prev_segment_conditioning_frames (`int`, *facultatif*, par défaut 1) : Le nombre de frames de conditionnement reprises du segment précédent generator (`Generator`, *facultatif*) : Générateur Torch pour une génération déterministe. num_inference_steps (`int`, *facultatif*, par défaut 10) : Le nombre d'étapes de débruitage. **denoiser_input_fields (`None`, *facultatif*) : entrées conditionnelles du modèle pour le débruiteur : par ex. prompt_embeds, negative_prompt_embeds, etc. output_type (`str`, *facultatif*, par défaut np) : Le type de sortie des vidéos décodées | |
| Sorties : vidéos (`list`) : Les vidéos générées. | |
Xet Storage Details
- Size:
- 12 kB
- Xet hash:
- c7c94b7f0ef250bd9ca138505f8df1afd4a80c658b35ea2cf6afa996d2ab071d
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.