Buckets:
| # | |
| # Berlisensi di bawah Apache License, Versi 2.0 ("Lisensi"); | |
| # Anda mungkin tidak dapat menggunakan file ini kecuali sesuai dengan Lisensi. | |
| # Anda dapat memperoleh salinan Lisensi di | |
| # | |
| # http://www.apache.org/licenses/LICENSE-2.0 | |
| # | |
| # Kecuali diwajibkan oleh hukum yang berlaku atau disepakati secara tertulis, perangkat lunak | |
| # distribusikan di bawah Lisensi berdasarkan basis "SEBAGAIMANA ADANYA", | |
| # TANPA JAMINAN ATAU SYARAT DALAM BENTUK APAPUN, baik yang dinyatakan maupun yang tersirat. | |
| # Lihat Lisensi untuk bahasa tertentu yang mengatur izin dan | |
| # batasan di bawah Lisensi. --> | |
| # Wan-Animate-2 | |
| [Wan-Animate-2](https://github.com/Wan-Video/Wan2.2) dari Alibaba Wan Team menganimasikan gambar karakter referensi dengan gerakan dari video penggerak. Video penggerak diproses dalam segmen berpanjang tetap: setiap segmen menjalankan jalur ekstraksi referensi yang meng-cache K/V segmen penggerak di setiap lapisan transformer, melakukan denoising terhadap cache tersebut, dan didekode di dalam loop karena segmen berikutnya dikondisikan oleh frame ekor terdekode dari segmen sebelumnya. | |
| Dua preset tersedia: checkpoint dasar melakukan sampling dengan classifier-free guidance, dan checkpoint distilled melakukan sampling dalam beberapa langkah tanpa guidance (guider-nya dikunci pada `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) | |
| ``` | |
| Untuk checkpoint yang telah di-distil, muat `Wan-AI/Wan2.2-Animate-2-14B-Distilled-Diffusers` dengan cara yang sama — tidak ada perubahan lain. Setiap preset membawa nilai default sampling-nya sendiri (40 langkah untuk checkpoint dasar, 10 untuk yang di-distil), dan tidak ada argumen `guidance_scale` di mana pun: guidance dimiliki oleh komponen guider dari pipeline (classifier-free guidance pada 3.0 untuk preset dasar, dinonaktifkan untuk yang di-distil). | |
| `height` dan `width` (default 800 dan 640) mengatur *area* target dari video yang dihasilkan; ukuran frame aktual mempertahankan rasio aspek gambar referensi, dan frame penggerak di-letterbox ke ukuran tersebut. Input yang sudah berada pada ukuran letterbox target akan melewati pra-pemrosesan tanpa perubahan, sehingga pra-pemrosesan juga dapat dilakukan sepenuhnya di luar 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) | |
| ``` | |
| [Sumber](https://github.com/huggingface/diffusers/blob/main/src/diffusers/modular_pipelines/wan_animate_2/modular_pipeline.py#L23) | |
| ModularPipeline untuk animasi karakter 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) | |
| ``` | |
| [Sumber](https://github.com/huggingface/diffusers/blob/main/src/diffusers/modular_pipelines/wan_animate_2/modular_pipeline.py#L62) | |
| ModularPipeline untuk model Wan-Animate-2 yang telah di-distil, yang melakukan sampling dalam beberapa langkah tanpa classifier-free guidance. | |
| ## WanAnimate2Blocks[[diffusers.WanAnimate2Blocks]] | |
| #### diffusers.WanAnimate2Blocks[[diffusers.WanAnimate2Blocks]] | |
| ```python | |
| diffusers.WanAnimate2Blocks() | |
| ``` | |
| [Sumber](https://github.com/huggingface/diffusers/blob/main/src/diffusers/modular_pipelines/wan_animate_2/modular_blocks_wan_animate_2.py#L252) | |
| Blok pipeline modular untuk animasi karakter Wan-Animate-2: gambar karakter referensi dan video penggerak menghasilkan video karakter yang mengikuti gerakan penggerak. | |
| Komponen: text_encoder (`UMT5EncoderModel`) tokenizer (`AutoTokenizer`) image_processor (`WanAnimate2VideoProcessor`) image_encoder (`CLIPVisionModel`) video_processor (`WanAnimate2VideoProcessor`) vae (`AutoencoderKLWan`) transformer (`WanAnimate2Transformer3DModel`) scheduler (`SchedulerMixin`) guider (`ClassifierFreeGuidance`) | |
| Inputs: prompt (`str`): The prompt or prompts to guide image generation. negative_prompt (`str`, *optional*): The prompt or prompts not to guide the image generation. prompt_ref (`str`, *optional*, defaults to 人物动作的参考视频): The reference prompt for the driving video context max_sequence_length (`int`, *optional*, defaults to 512): Maximum sequence length for prompt encoding. image (`Image | list`): The reference image holding the character to animate. height (`int`, *optional*, defaults to 800): Together with `width`, the target *area* of the generated video; the aspect ratio comes from `image`. Overwritten with the resolved frame height. width (`int`, *optional*, defaults to 640): See `height`. Overwritten with the resolved frame width. driving_video (`list`): The driving video that provides the motion, in any format accepted by `VideoProcessor.preprocess_video`. driving_video_fps (`float`, *optional*): The frame rate `driving_video` was captured at — `load_video(..., return_fps=True)` reports it. When set, the driving frames are resampled from it to `fps`; when `None` they are used as-is. fps (`int`, *optional*, defaults to 24): The frame rate the model generates at segment_frame_length (`int`, *optional*, defaults to 81): The number of frames in each inference segment prev_segment_conditioning_frames (`int`, *optional*, defaults to 1): The number of conditioning frames carried over from the previous segment generator (`Generator`, *optional*): Torch generator for deterministic generation. num_inference_steps (`int`, *optional*, defaults to 40): The number of denoising steps. **denoiser_input_fields (`None`, *optional*): conditional model inputs for the denoiser: e.g. prompt_embeds, negative_prompt_embeds, etc. output_type (`str`, *optional*, defaults to np): The output type of the decoded videos | |
| Output: video (`list`): Video yang dihasilkan. | |
| ## WanAnimate2DistilledBlocks[[diffusers.WanAnimate2DistilledBlocks]] | |
| #### diffusers.WanAnimate2DistilledBlocks[[diffusers.WanAnimate2DistilledBlocks]] | |
| ```python | |
| diffusers.WanAnimate2DistilledBlocks() | |
| ``` | |
| [Sumber](https://github.com/huggingface/diffusers/blob/main/src/diffusers/modular_pipelines/wan_animate_2/modular_blocks_wan_animate_2_distilled.py#L254) | |
| Blok pipeline modular untuk animasi karakter Wan-Animate-2 yang telah di-distil, dengan sampling dalam beberapa langkah tanpa classifier-free guidance. | |
| Komponen: text_encoder (`UMT5EncoderModel`) tokenizer (`AutoTokenizer`) image_processor (`WanAnimate2VideoProcessor`) image_encoder (`CLIPVisionModel`) video_processor (`WanAnimate2VideoProcessor`) vae (`AutoencoderKLWan`) transformer (`WanAnimate2Transformer3DModel`) scheduler (`SchedulerMixin`) guider (`ClassifierFreeGuidance`) | |
| Input: prompt (`str`): Prompt atau prompt-prompt untuk memandu pembuatan gambar. negative_prompt (`str`, *opsional*): Prompt atau prompt-prompt yang tidak digunakan untuk memandu pembuatan gambar. prompt_ref (`str`, *opsional*, defaultnya 人物动作的参考视频): Prompt referensi untuk konteks video penggerak max_sequence_length (`int`, *opsional*, defaultnya 512): Panjang urutan maksimum untuk enkoding prompt. image (`Image | list`): Gambar referensi yang berisi karakter yang akan dianimasikan. height (`int`, *opsional*, defaultnya 800): Bersama dengan `width`, *area* target dari video yang dihasilkan; rasio aspek berasal dari `image`. Ditimpa dengan tinggi frame yang telah diselesaikan. width (`int`, *opsional*, defaultnya 640): Lihat `height`. Ditimpa dengan lebar frame yang telah diselesaikan. driving_video (`list`): Video penggerak yang menyediakan gerakan, dalam format apa pun yang diterima oleh `VideoProcessor.preprocess_video`. driving_video_fps (`float`, *opsional*): Laju frame `driving_video` saat direkam — `load_video(..., return_fps=True)` melaporkannya. Jika diatur, frame penggerak akan disampel ulang darinya ke `fps`; jika `None`, frame digunakan apa adanya. fps (`int`, *opsional*, defaultnya 24): Laju frame yang dihasilkan oleh model segment_frame_length (`int`, *opsional*, defaultnya 81): Jumlah frame dalam setiap segmen inferensi prev_segment_conditioning_frames (`int`, *opsional*, defaultnya 1): Jumlah frame kondisioning yang dibawa dari segmen sebelumnya generator (`Generator`, *opsional*): `Generator` Torch untuk pembuatan deterministik. num_inference_steps (`int`, *opsional*, defaultnya 10): Jumlah langkah denoising. **denoiser_input_fields (`None`, *opsional*): input model kondisional untuk denoiser: mis. prompt_embeds, negative_prompt_embeds, dll. output_type (`str`, *opsional*, defaultnya np): Jenis output dari video yang didekodekan | |
| Output: video (`list`): Video yang dihasilkan. | |
Xet Storage Details
- Size:
- 11.3 kB
- Xet hash:
- 03cdfd496a2a190d6c39b195ccd083b97bbaed5f757edc0bff8f6f21675a3291
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.