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 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).
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]]
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)
ModularPipeline untuk animasi karakter Wan-Animate-2.
WanAnimate2DistilledModularPipeline[[diffusers.WanAnimate2DistilledModularPipeline]]
diffusers.WanAnimate2DistilledModularPipeline[[diffusers.WanAnimate2DistilledModularPipeline]]
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)
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]]
diffusers.WanAnimate2Blocks()
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]]
diffusers.WanAnimate2DistilledBlocks()
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.