Wan2.2 中文文档 下载 App

Diffusers Pipeline 调用 Wan2.2:几行代码集成到你的项目

安装最新版 Diffusers

Diffusers 对 Wan2.2 的支持是在新版本里加的,先升级:

pip install diffusers --upgrade
pip install accelerate transformers safetensors sentencepiece

TI2V-5B 文生视频最简示例

TI2V-5B 是 Diffusers 里最容易上手的 Wan2.2 模型:

import torch
from diffusers import WanPipeline
from diffusers.utils.export_utils import export_to_video

device = "cuda"
dtype = torch.bfloat16

pipe = WanPipeline.from_pretrained(
    "Wan-AI/Wan2.2-TI2V-5B-Diffusers",
    torch_dtype=dtype
).to(device)

prompt = "Two anthropomorphic cats in boxing gear fight on a spotlighted stage."
video = pipe(prompt=prompt, num_inference_steps=50).frames[0]
export_to_video(video, "output.mp4", fps=24)

I2V 图像条件生成

同一个 Pipeline 也支持图生——只要传 image 参数:

from diffusers import WanImageToVideoPipeline
from diffusers.utils import load_image

pipe = WanImageToVideoPipeline.from_pretrained(
    "Wan-AI/Wan2.2-TI2V-5B-Diffusers",
    torch_dtype=torch.bfloat16
).to(device)

image = load_image("参考图.jpg")
video = pipe(
    prompt="A cat wearing sunglasses sits on a surfboard.",
    image=image,
    num_inference_steps=50
).frames[0]
export_to_video(video, "i2v_output.mp4", fps=24)

A14B MoE 模型的 Diffusers 版本

MoE 模型在 Diffusers 里同样需要加载两份专家权重,但 Pipeline 会自动处理切换逻辑——你只需要加载对的 Diffusers 后缀的权重仓库:

# 这是 MoE 版本
pipe = WanPipeline.from_pretrained(
    "Wan-AI/Wan2.2-T2V-A14B-Diffusers",  # 注意 A14B + Diffusers 后缀
    torch_dtype=torch.bfloat16
).to(device)

Pipeline 内部会自动处理高噪/低噪专家的加载和 SNR 切换。

Animate-14B 的 Diffusers Pipeline

Animate-14B 相对特殊,它的 Pipeline 是 WanAnimatePipeline,需要 mode 参数区分动画/替换:

from diffusers import WanAnimatePipeline
from diffusers.utils import load_image, load_video

pipe = WanAnimatePipeline.from_pretrained(
    "Wan-AI/Wan2.2-Animate-14B-Diffusers",
    torch_dtype=torch.bfloat16
).to(device)

# Animation 模式:角色图 + 动作参考视频 → 新角色复现动作
animate_video = pipe(
    image=load_image("角色.png"),
    pose_video=load_video("参考动作.mp4"),
    face_video=load_video("面部参考.mp4"),
    prompt="People in the video are doing actions.",
    mode="animate",
    segment_frame_length=77,
    prev_segment_conditioning_frames=1,
    guidance_scale=1.0,
    num_inference_steps=20,
).frames[0]
export_to_video(animate_video, "animate.mp4", fps=30)

显存管理小技巧

pipe.enable_model_cpu_offload()
pipe.enable_vae_slicing()