在 Node Video 中,若想让角色精准复刻参考视频里的舞蹈动作,同时保持面部表情自然同步,仅靠单个节点堆叠参数远远不够,必须让动作迁移与表情追踪两个模块协同配合,才能实现理想效果。

下面直接进入正题,开始详细讲解具体操作流程。
安装 MimicMotion 与 Reactor Node 双扩展
首先打开 ComfyUI 的 Manager 插件,点击“Install Custom Nodes”,粘贴以下两个扩展的地址:第一个是 https://gitcode.com/gh_mirrors/co/ComfyUI-MimicMotionWrapper,等待自动下载模型;第二个是 https://github.com/Gourieff/comfyui-reactor-node,按相同步骤完成安装。
安装完成后重启 ComfyUI,在左侧节点栏中应能看到“MimicMotion”和“Reactor”这两个新分类。如果未出现,通常是因为 models/mimic_motion_pose_net.safetensors 文件未能成功下载到 ComfyUI/custom_nodes/ComfyUI-MimicMotionWrapper/models/ 目录下,手动补充该文件即可解决问题。
准备源视频与目标视频素材
源视频有明确要求:必须全身入镜、无遮挡、动作节奏清晰,时长建议控制在 8 至 25 秒之间。目标视频则要求人物正面站立、脸部完整可见、背景尽量简洁,分辨率严格设置为 720p(1280×720)。
⚠️ 注意:如果目标视频中的人物佩戴眼镜、刘海遮挡眉毛,或者侧脸角度超过 30 度,DWPose 关键点检测很可能失败,后续所有动作迁移都会随之偏移失真,这一点需要提前规避。
将这两段视频统一放入 ComfyUI/input/ 文件夹中,文件名避免包含中文和空格,例如 source_dance.mp4、target_lihua.mp4,这样更为稳妥。
构建双轨驱动工作流
方法一:主动作+辅表情嵌套法
先从节点库中拖出“MimicMotion Video to Video”节点,将 source_path 设为源视频路径,target_path 设为目标视频路径。接着,将该节点输出的“video_tensor”连接到“Reactor Face Swap”节点的“image”输入口。在 Reactor 节点中,启用“Face Restore”,并勾选“Use Face Embedding from Source”——系统会自动从源视频的首帧提取表情基线特征。最后,连接“Save Video”节点,输出格式选择 mp4 (H.264),码率设为 12000kbps,这样可以保留表情微动的细节。
方法二:分帧注入法(适合长视频精修)
先用“Video Load”节点加载目标视频,接上“Frame Batch”节点将其切片成单帧。然后对每一帧使用“Reactor Face Swap”做表情强化,再将增强后的帧序列送入“MimicMotion Image Sequence to Video”节点,合成带有动作的新视频。
此方法耗时大约增加 40%,但能避免长视频中因头部晃动导致的表情错位问题,是为提升效果付出的必要代价。
关键参数调试与避坑
打开 configs/test.yaml,重点修改以下三项参数:
frame_smooth:设为 15。低于 10 会使动作显得生硬,高于 25 则容易模糊关节轨迹。
pose_strength:设为 0.72。数值过高会导致肩膀扭曲,过低则动作不明显。
expression_preserve:设为 true,此项必须开启,否则 Reactor 会覆盖 MimicMotion 已经计算好的微表情。
运行之前,务必确认 GPU 显存剩余是否 ≥6GB。如果使用的是 RTX 4060(8GB 显存),需要在 ComfyUI 启动脚本中加入 --gpu-only --lowvram 参数,否则运行中途报错中断将前功尽弃。
