Wan Animate 2:动作迁移
在 ComfyUI 中使用 Wan Animate 2 让静态角色动起来:直接从驱动视频迁移动作,无需姿态提取或骨骼预处理。
Wan Animate 2:动作迁移
在 ComfyUI 中使用 Wan Animate 2 让静态角色动起来:直接从驱动视频迁移动作,无需姿态提取或骨骼预处理。
Wan Animate 2 是 WAN 团队推出的端到端角色动画框架,可直接在重新设计的 Diffusion Transformer 中处理驱动视频。通过消除中间动作提取器,该模型实现了高保真动作生成和强大的身份保持能力:无需姿态提取或骨骼预处理。
该模型还新增了文本驱动的视角控制,将输出相机透视与驱动视频解耦。这样,你就可以使用驱动视频为静态角色制作动画,同时独立控制相机,甚至可以根据文本提示词生成全新背景。
[!TIP] > [tab] 本地用户 > > 请确保你的 ComfyUI 已经更新。 > > ComfyUI 下载 > ComfyUI 更新教程 > > 本指南里的工作流可以在工作流模板中找到。如果找不到,可能是 ComfyUI 没有更新。 > > 如果加载工作流时有节点缺失,可能原因有: > > 1. 你用的不是最新版(每夜版)。 > 2. 启动时有些节点导入失败。 > [tab] 云端用户 > > * Cloud 会在 ComfyUI 稳定版本发布后更新。 > > 所以,如果你发现本文档中有任何核心节点缺失,可能是因为新核心节点尚未在最新稳定版中发布。请等待下一个稳定版发布。
模型亮点
- 直接运动迁移:无需姿态提取或骨骼预处理,即可根据驱动视频让静态角色动起来
- 身份保持:完整保留参考角色的身份、外观和细节
- 文本驱动的相机控制:将输出相机透视与驱动视频解耦
- 全新背景:根据你的文本提示生成全新背景,而非复制驱动视频中的背景
- 高保真运动:精准复刻驱动视频中的复杂运动和表情
Wan Animate 2 工作流
使用驱动视频让静态角色动起来,直接将视频帧中的动作迁移过来。输出会保留参考角色的身份特征,同时根据你的文本提示生成全新的背景和相机运动。
<video controls src="https://raw.githubusercontent.com/Comfy-Org/workflow_templates/main/output/video_wan_animate2.mp4" />
[card] 在 Comfy Cloud 上运行 在 Comfy Cloud 中打开
[card] 下载工作流 下载 JSON,或在模板库中搜索“Wan Animate 2”
输入素材
将以下文件上传到对应的节点:
[card] 参考图像 LoadImage 节点:pink\_hair\_mech\_arms\_ref.png(要制作动画的角色)
[card] 驱动视频 LoadVideo 节点:street\_dance\_drive.mp4(动作来源)
模型下载
此工作流使用 wan_animate_2_int8_convrot.safetensors diffusion 模型。仓库中还提供了 BF16 和蒸馏变体;如果你想使用这些变体,请在 UNETLoader 节点中更改模型选择。所有文件均可在 Comfy-Org/Wan-Animate-2 仓库中找到:
[card] Diffusion 模型(INT8,必填) wan\_animate\_2\_int8\_convrot.safetensors:本工作流使用的 INT8 convrot 量化 diffusion 模型
[card] Diffusion 模型(BF16,可选) wan\_animate\_2\_bf16.safetensors:全精度基础模型。需要更改 UNETLoader 模型选择。
[card] Diffusion 模型(蒸馏 INT8,可选) wan\_animate\_2\_distill\_int8\_convrot.safetensors:蒸馏 INT8 变体。需要更改 UNETLoader 模型选择。
[card] Diffusion 模型(蒸馏 BF16,可选) wan\_animate\_2\_distill\_bf16.safetensors:蒸馏 BF16 变体。需要更改 UNETLoader 模型选择。
[card] LoRA lightx2v\_I2V\_14B\_480p\_cfg\_step\_distill\_rank64\_bf16.safetensors:LightX2V 加速 LoRA
[card] 文本编码器 umt5\_xxl\_fp8\_e4m3fn\_scaled.safetensors:UMT5-XXL FP8 文本编码器
[card] CLIP 视觉 clip\_vision\_h.safetensors:CLIP 视觉编码器
[card] VAE Wan2\_1\_VAE\_bf16.safetensors:用于编码和解码的 Wan2.1 VAE
将文件放入以下目录:
📂 ComfyUI/
├── 📂 models/
│ ├── 📂 diffusion_models/
│ │ ├── wan_animate_2_bf16.safetensors
│ │ ├── wan_animate_2_distill_bf16.safetensors
│ │ ├── wan_animate_2_distill_int8_convrot.safetensors
│ │ └── wan_animate_2_int8_convrot.safetensors
│ ├── 📂 loras/
│ │ └── lightx2v_I2V_14B_480p_cfg_step_distill_rank64_bf16.safetensors
│ ├── 📂 text_encoders/
│ │ └── umt5_xxl_fp8_e4m3fn_scaled.safetensors
│ ├── 📂 clip_vision/
│ │ └── clip_vision_h.safetensors
│ └── 📂 vae/
│ └── Wan2_1_VAE_bf16.safetensors
工作流说明
- 确保所有模型都正确加载。
- 上传参考图像:该图像中的角色就是要制作动画的目标角色。
- 上传驱动视频:其动作会被转移到参考角色上。
- 更新提示词,描述你想要的场景、背景和相机运动。
- 点击
Run,或使用快捷键Ctrl(cmd) + Enter生成视频。
生成更长的视频
更长的视频由工作流内部处理:Motion Transfer (Wan Animate 2) 子图会循环执行(StartLoop / EndLoop),持续生成直到覆盖整段驱动视频,因此只需要一个子图,无需复制或重新连线。
每次循环生成 81 帧,在 24 fps 下约为 3.4 秒,这就是子图内 Int (fragment_length) 的取值。可以调大,但必须保持为合法的 Wan 长度:81、85、89 等,即 4n + 1。
循环算式会读取驱动视频的帧数,据此计算需要多少次续接,并把尾部裁掉,使输出帧数与驱动视频完全一致。每次续接都会重复上一段的最后一帧,而这一重复帧会被移除,因此每增加一段实际新增 fragment_length - 1 帧。
循环依赖核心的循环节点,因此该工作流需要 ComfyUI 0.36.0 或更高版本。
Video Stitch 子图用于对比预览:它把生成的视频与驱动视频并排显示,不属于延长视频的路径。