ComfyUI的视频角色替换 (MoCha) 工作流
此工作流提供端到端的视频角色替换 (MoCha):在保留运动、灯光、相机视角和场景连续性的情况下,将真实视频中的表演者替换为新角色。基于Wan 2.1 MoCha 14B预览版本,它将参考身份与源表演对齐,然后合成一个连贯的编辑片段和一个可选的并排比较。它专为需要精确、高质量角色替换且手动清理最少的电影制作人、VFX艺术家和AI创作者设计。
该流程结合了强大的首帧遮罩、Segment Anything 2 (SAM 2)、MoCha的运动感知图像嵌入、WanVideo采样/解码,以及可选的肖像辅助以提高面部保真度。您提供一个源视频和一到两张参考图像;工作流生成一个完成的替换视频加上一个A/B比较,使视频角色替换 (MoCha) 的迭代评估快速且实用。
Comfyui视频角色替换 (MoCha) 工作流中的关键模型
- Wan 2.1 MoCha 14B 预览。核心视频生成器用于角色替换;从MoCha图像嵌入和文本提示中驱动时间一致的合成。模型权重以Kijai的WanVideo Comfy格式分发,包括为了效率的fp8缩放变体。Hugging Face: Kijai/WanVideo_comfy, Kijai/WanVideo_comfy_fp8_scaled
- MoCha (Orange‑3DV‑Team)。身份/运动调节方法和参考实现,启发了此处使用的嵌入阶段;有助于理解参考选择和姿态对齐用于视频角色替换 (MoCha)。GitHub, Hugging Face
- Segment Anything 2 (SAM 2)。高质量的点引导分割,以隔离首帧中的演员;干净的遮罩对于稳定、无伪影的替换至关重要。GitHub: facebookresearch/segment-anything-2
- Qwen‑Image‑Edit 2509 + Lightning LoRA。可选的单图像辅助,生成一个干净的特写肖像以用作第二参考,改善困难镜头中的面部身份保留。Hugging Face: Comfy‑Org/Qwen‑Image‑Edit_ComfyUI, lightx2v/Qwen‑Image‑Lightning
- Wan 2.1 VAE。用于Wan采样器/解码器阶段的视频VAE,以实现高效的潜在处理。Hugging Face: Kijai/WanVideo_comfy
如何使用Comfyui视频角色替换 (MoCha) 工作流
总体逻辑
- 该工作流获取源剪辑,准备首帧遮罩,并将您的角色参考编码为MoCha图像嵌入。然后Wan 2.1采样编辑帧并将其解码为视频。同时,一个小的图像编辑分支可以生成一个肖像作为面部细节的可选第二参考。图表还渲染一个并排比较,以快速评估您的视频角色替换 (MoCha) 结果。
输入视频
- 在“输入视频”中加载视频。工作流自动规范化帧(默认1280×720裁剪)并保留剪辑的帧速率以进行最终导出。首帧暴露以供检查和下游遮罩。预览节点显示原始输入帧,以便在继续之前确认裁剪和曝光。
首帧遮罩
- 使用交互式点编辑器在演员上点击正点,在背景上点击负点;SAM 2将这些点击转换为精确的遮罩。一个小的增长和模糊步骤扩展了遮罩,以防止帧之间的边缘光晕和运动。生成的遮罩被预览,并将相同的遮罩发送到MoCha嵌入阶段。此组中的良好遮罩显著提高了视频角色替换 (MoCha) 的稳定性。
ref1
- “ref1”是您的主要角色身份图像。工作流移除背景,居中裁剪并调整大小以匹配视频的工作分辨率。为了获得最佳效果,请使用干净背景的参考,其姿势大致匹配首帧中的源演员;MoCha编码器受益于相似的视角和照明。
ref2(可选)
- “ref2”是可选的,但推荐用于面部。您可以直接提供肖像,或让工作流在下方采样分支中生成一个。图像与ref1一样,去除背景并调整大小。存在时,ref2增强面部特征,以便在运动、遮挡和透视变化中保持身份。
步骤1 - 加载模型
- 此组加载Wan 2.1 VAE和Wan 2.1 MoCha 14B预览模型,以及可选的WanVideo LoRA用于蒸馏。这些资产驱动主要视频采样阶段。此处设置的模型非常VRAM密集;稍后包括一个块交换助手以适应较小GPU上的大序列。
步骤2 - 上传图像进行编辑
- 如果您希望从自己的静态图像构建ref2,请将其放在此处。该分支缩放图像并将其路由到Qwen编码器进行调节。如果您已经有好的面部肖像,可以跳过整个分支。
步骤4 - 提示
- 提供一个简短的文本提示,描述预期的特写肖像(例如,“下一个场景:相机特写面部镜头,角色肖像”)。Qwen‑Image‑Edit使用此提示来完善或合成一个干净的面部图像,成为ref2。保持描述简单;这是一个辅助,而不是完全重塑。
场景2 - 采样
- Qwen分支运行一个快速采样器,在Lightning LoRA下生成单一肖像图像。该图像被解码、预览,并在轻微去除背景后,转发为ref2。此步骤通常在不改变核心视频角色替换 (MoCha) 外观的情况下提升面部保真度。
Mocha
MochaEmbeds阶段将源视频、首帧遮罩和您的参考图像编码为MoCha图像嵌入。嵌入捕捉身份、纹理和局部外观线索,同时尊重原始运动路径。如果存在ref2,它用于增强面部细节;否则,仅ref1承载身份。
Wan模型
- Wan模型加载器将Wan 2.1 MoCha 14B预览加载到内存中,并(可选)应用LoRA。一个块交换工具已连接,以便在需要时可以交换速度与内存。此模型选择决定了视频角色替换 (MoCha) 的整体容量和一致性。
Wan采样
- 采样器消耗Wan模型、MoCha图像嵌入和任何文本嵌入以生成编辑潜在帧,然后将其解码回图像。生成两个输出:最终交换视频和与原始帧的并排比较。帧速率从加载器传递,以便动作节奏自动匹配源。
Comfyui视频角色替换 (MoCha) 工作流中的关键节点
MochaEmbeds(#302)。将源剪辑、首帧遮罩和参考图像编码为MoCha图像嵌入,指导身份和外观。选择与首帧匹配的ref1姿势,并在看到漂移时包括ref2以获得干净的面部。如果边缘闪烁,请在嵌入前略微扩展遮罩以避免背景渗漏。Sam2Segmentation(#326)。将您的正/负点击转换为首帧遮罩。优先考虑头发和肩膀周围的干净边缘;添加一些负点以排除附近的道具。分割后略微扩展遮罩有助于在演员移动时的稳定性。WanVideoSampler(#314)。通过将潜在图像去噪为帧来承担视频角色替换 (MoCha) 的重任。更多步骤可以提高细节和时间稳定性;较少步骤可以加快迭代。比较参考或遮罩更改时,保持调度器一致。WanVideoSetBlockSwap(#344)。当VRAM紧张时,启用更深的块交换以适应较小GPU上的Wan 2.1 MoCha 14B路径。期望一些速度损失;作为回报,您可以保持分辨率和序列长度。VHS_VideoCombine(#355)。写入最终MP4并嵌入工作流元数据。使用与源相同的帧速率(已连接)和yuv420p输出以实现广泛的播放器兼容性。
可选附加项
- 干净替换的提示
- 使用背景简单且姿势接近首帧的ref1。
- 保持ref2为清晰的正面肖像以稳定身份。
- 如果看到边缘光晕,请扩展并轻微模糊首帧遮罩,然后重新嵌入。
- 重场景受益于块交换助手;否则保持关闭以提高速度。
- 工作流渲染一段A/B比较视频;使用它快速判断更改。
- 有用的参考
- MoCha由Orange‑3DV‑Team: GitHub, Hugging Face
- Wan 2.1 MoCha 14B (Comfy格式): Kijai/WanVideo_comfy, Kijai/WanVideo_comfy_fp8_scaled
- Segment Anything 2: facebookresearch/segment-anything-2
- Qwen Image Edit + Lightning LoRA: Comfy‑Org/Qwen‑Image‑Edit_ComfyUI, lightx2v/Qwen‑Image‑Lightning
致谢
此工作流实现并基于以下作品和资源构建。我们感谢“视频角色替换 (MoCha)”的Benji’s AI Playground为视频角色替换 (MoCha) 的贡献和维护。有关权威细节,请参考下列原始文档和存储库。
资源
- “视频角色替换 (MoCha)”/视频角色替换 (MoCha) 的作者
- 文档/发布说明 @Benji’s AI Playground: YouTube视频
注意:使用参考的模型、数据集和代码需遵循其作者和维护者提供的各自许可和条款。
