Wan2.2 Animate, 角色動畫與替換

此 ComfyUI 工作流程示範如何使用 Wan 2.2 Animate 影片 diffusion 模型,以統一流程完成角色動畫與替換。它會從輸入影片擷取動作、分割目標主體,並合成一個新的角色(或重塑原角色風格),同時維持相同的動作。核心元件包含:UNETLoader 載入 Wan2_2-Animate-14B_fp8_e4m3fn_scaled_KJ.safetensors checkpoint、VAELoader 用於解碼影格、CLIPLoader 與 CLIPTextEncode 用於正/負提示詞,以及 SaveVideo 產出最終影片。動作線索由 comfyui_controlnet_aux 的 DWPreprocessor(人體姿勢/全身關鍵點)產生,而主體隔離則透過 ComfyUI-segment-anything-2 的 DownloadAndLoadSAM2Model 與 Sam2Segmentation 完成。若你想從圖片鎖定身分或風格,CLIPVisionLoader + CLIPVisionEncode 可提供額外的參考條件,而 LoraLoaderModelOnly 讓你注入角色 LoRA。

在技術上,工作流程把 LoadVideo 接到 GetVideoComponents,然後對背景與主體做前處理:Sam2Segmentation(由使用者「綠點」引導)建立角色遮罩,DWPreprocessor 從每個影格萃取姿勢。PixelPerfectResolution 確保工作尺寸符合你的 GPU 並滿足 WanAnimateToVideo 限制(寬與高必須是 16 的倍數)。ModelSamplingSD3 用於控制 Wan UNet 的取樣器與排程,而 comfyui-kjnodes 工具則協助處理最佳化的 FP8-scaled 模型。最終得到一條可彈性調整的管線:使用單張參考圖、一個 LoRA 與提示詞來引導身分與外觀,同時保留原始動作的一致性。

API

從程式碼使用此工作流

每個 Comfy 工作流都是一個 JSON 圖。下方的 payload 就是此工作流,與 ComfyUI 執行時完全相同 — 你可以從此 URL 取得、放入版本控制,或在 ComfyUI 載入並逐節點執行。

video_wan2_2_14B_animate.json
正在取得工作流 JSON…

使用 Comfy SDK 以 TypeScript 或 Python 執行。相同程式碼可用於 Comfy Cloud 或你自架的 ComfyUI — 只需更改 base URL。

// Install (beta)
npm i @comfyorg/sdk

// Run "Wan2.2 Animate, 角色動畫與替換" (TypeScript)
import { Comfy } from "@comfyorg/sdk";

const client = new Comfy({ apiKey: "comfyui-..." });

// This workflow, exported in API format (see note below)
const wf = await client.workflows.fromFile("video_wan2_2_14B_animate_api.json");

const asset = client.assets.fromFile("input.png");
wf.setInput("10", "image", asset); // LoadImage

wf.setInput("21", "text", "The character is dancing in the room"); // CLIPTextEncode

const job = await client.run(wf);
await job.getOutputs("277")[0].toFile("output.png"); // SaveVideo

SDK 需使用 API 格式的工作流:請在 ComfyUI 開啟此工作流,並使用 檔案 → 匯出工作流(API)。

Comfy Cloud API 存取需有 API 金鑰的方案。

常見問題

常見問題

查看所有工作流
Showing 30 of 30 templates