如何利用 ComfyUI 的 AnimateDiff 插件实现视频人物的精准换脸?
我的实战配置方案是:AnimateDiff + Reactor + ControlNet FaceID + IP-Adapter-FaceID。
具体操作逻辑是这样的:先用 AnimateDiff 生成基础动作视频,然后将该视频作为 ControlNet 的输入,利用 FaceID 强行锁定面部特征,最后用 Reactor 做一次精细的像素级替换。
关键配置技巧:
1. 权重控制:ControlNet FaceID 的权重不要开到 1.0,建议在 0.6 - 0.8 之间。过高会导致脸部僵硬,像贴了张照片;过低则会导致换脸后的特征在运动中丢失。
2. 掩码局部重绘:不要对全图进行采样。在 Reactor 之后接一个 VAE Encode (for Inpainting),只给脸部区域打掩码,把重绘强度(Denoising strength)控制在 0.4 左右,这样能把 AI 生成的脸与原视频的光影融合在一起。
推荐的 Prompt 结构:
为了防止脸部崩坏,正向提示词里必须包含具体的面部细节描述,而不是只写个名字。
(high detail face:1.2), sharp focus, detailed skin pores, realistic eyes, [人物特征描述], cinematic lighting踩过的坑:
最容易翻车的地方是 VAE 的选择。如果用的是 SD1.5 的模型,务必检查 VAE 是否匹配,否则换脸后的皮肤会出现奇怪的色块或灰色阴影。另外,如果视频帧率较高,建议在 Reactor 节点中开启 Face Restoration(面部修复),推荐用 CodeFormer 且权重设为 0.5,否则远景镜头下的脸会糊成一片。
一个高效的节点连接顺序:
Load Checkpoint → AnimateDiff Loader → ControlNet (FaceID) → K Sampler → Reactor (Face Swap) → Face Detailer (局部增强) → VAE Decode。
这种链路比单纯用 Reactor 快且稳,尤其是处理大角度侧脸时,FaceID 提供的结构引导能极大减少脸部“漂移”现象。
全部回复 (0)
还没有回复,来发第一条吧!
