视频换脸一直是 AI 后期里"看起来简单、做好很难"的方向。多数一键工具做的是像素级贴脸替换,人物一动就破绽百出。而一套来自 VFX 艺术家的 ComfyUI 工作流给出了另一种思路:把换脸做成一条时序生成管线——先让模型理解"谁的脸、什么动作、什么光照",再按原始表演逐帧生成,而不是直接覆盖贴图。

一、这不是传统"贴脸"换脸

这套工作流的核心区别在于:它不是简单地把 A 的脸贴到 B 的身体上,而是组合了目标检测、分割、姿态驱动和视频生成四类能力:

  • 用目标检测锁定头部区域,自动生成包围盒,不需要手动框选;
  • 用分割模型产出精准的头部蒙版,头发丝、轮廓边缘都能被正确区分;
  • 从原始视频提取姿态与人脸信息,驱动生成过程,让"表演"完全来自原片;
  • 用参考图 + 自动生成的提示词建立"替换身份"的语义理解,再交给视频模型做时序一致的采样。

最终效果是:动作、光影、节奏全部保留原片,替换的只是身份本身。可用于去龄化、身份替换、角色试镜等场景。

二、管线全景:六个核心节点

  1. Florence 2 —— 目标检测:负责在画面中找到人脸/头部位置并生成边界框,是整条管线的"眼睛";
  2. SAM2 —— 精准分割:基于检测框生成逐帧分割蒙版,把头部从背景中干净地剥离;
  3. Grow Mask —— 蒙版扩张调参:决定蒙版向外扩张多少,直接影响换脸边缘是否穿帮,是"成也萧何败也萧何"的关键参数;
  4. 姿态与人脸检测 —— 动作驱动:提取原始表演的运动信息,让生成结果跟着原片动作走;
  5. 参考图 + QWEN 自动提示词 —— 身份迁移:用一张参考图锁定新身份的面部特征,并由视觉语言模型自动生成描述提示词;
  6. WAN Video 采样 —— 时序生成:视频模型按帧生成,保证相邻帧之间身份、光影、动作连续不闪烁。

三、制作步骤

  1. 在 ComfyUI 中加载工作流,准备两样输入:一段目标视频(提供表演)和一张身份参考图;
  2. 运行 Florence 2 节点,确认人脸检测框正确覆盖每一帧的头部区域;
  3. 检查 SAM2 分割蒙版,边缘是否贴合发丝与轮廓;
  4. 调节 Grow Mask 扩张值——蒙版太小边缘生硬,太大则会把背景一起带走,建议从小往大逐步试;
  5. 确认姿态/人脸检测正常输出关键点,驱动源选择原始视频;
  6. 放入参考图,让 QWEN 自动生成身份描述提示词,可手动补充发型、肤色等细节;
  7. 运行 WAN Video 采样,逐段预览,重点观察交接帧与遮挡场景是否稳定。

四、关键参数:Grow Mask 为什么决定成败

换脸翻车最常见的原因不是模型不行,而是蒙版边界处理不当。Grow Mask 控制分割蒙版的向外扩张量:扩张不足,替换区域边缘会露出原始脸的痕迹;扩张过度,会把额头、发际线之外的背景一起替换,导致轮廓"糊成一团"。建议先固定其他参数,单独扫描该参数的 3-5 档取值,找到既不露边又不溢出的区间,再进入正式生成。

五、实操建议

  • 从短片段开始:先跑 3-5 秒的测试段确认身份锁定和边缘质量,再整段生成,避免浪费算力;
  • 遮挡与转身是难点:手部遮挡、大幅转头等镜头容易闪变,优先用侧面/半身素材做验证;
  • 不想碰节点图也能用:工作流提供 App Mode,把整条管线封装成"丢素材、出结果"的界面,适合不熟悉节点图的创作者;
  • 身份参考图要"素":参考图光线越中性、表情越平静,跨场景迁移越稳定;花哨的参考图会把妆容和光影一起带过去。

工作流演示视频(时长约 4 分 14 秒)