三亩地 三亩地SAN MU DI · CODE DIARY
ARTICLE DETAIL

日记详情

真实记录编程学习的某一天,欢迎挑你感兴趣的翻一翻。

如何让静态图片复刻任意视频动作?视频动作迁移新手实战教程(ComfyUI-MimicMotionWrapper)

如何让静态图片复刻任意视频动作?视频动作迁移新手实战教程(ComfyUI-MimicMotionWrapper)

如何让静态图片复刻任意视频动作?视频动作迁移新手实战教程(ComfyUI-MimicMotionWrapper)

【免费下载链接】ComfyUI-MimicMotionWrapper项目地址: https://gitcode.com/gh_mirrors/co/ComfyUI-MimicMotionWrapper

如果你手头只有一张人物照片,却想让它做出另一段视频里的舞蹈、挥手或行走动作,那么这个工具就是为你准备的。本篇视频动作迁移教程会带你从零开始,用命令行人机两套方式,跑出第一支"照片会动"的视频,再教你调参数、避坑、玩出进阶效果。全程不需要写复杂代码,跟着做即可。

先弄明白:这个工具到底能帮你做什么

视频动作迁移听起来像黑科技,其实拆开看只有一句话:把源视频里人物的动作"复制"到另一张目标人物图片上。ComfyUI-MimicMotionWrapper 正是围绕这一件事做成的轻量封装,它把腾讯开源的 MimicMotion 算法、DWPose 姿态检测、SVD 视频扩散模型整合在了一起,让你不用研究底层原理,就能直接用。

它典型的输入输出是这样的:

输入说明输出
参考图一张人物清晰、姿态完整的目标图片目标人物做出一模一样动作的视频
动作视频一段包含清晰动作的源视频分辨率、帧率、时长均可配置的 MP4

你可以把它想象成一个"动作搬运工":它先看懂源视频里每一帧的骨架姿态,再把骨架逐帧映射到目标人物身上,最后用视频生成模型把画面"画"出来。整个过程自动完成,你只需准备素材、点一下运行。

这个项目同时提供了命令行ComfyUI 图形界面两条使用路径:想快速验证效果就用命令行;想可视化调参、把节点插进自己工作流里,就用 ComfyUI 节点版。下面我们两条路都走一遍。

备齐三样东西:环境、依赖、素材

开始之前,先确认三件事都到位,避免中途卡壳。

第一,一台有 NVIDIA GPU 的电脑(推荐)。虽然代码里写了"没有 GPU 就自动用 CPU",但视频生成在 CPU 上会慢到让你怀疑人生。4GB 显存可以跑低分辨率小试牛刀,8GB 以上体验顺畅得多。

第二,Python 环境和项目代码。把仓库克隆到本地并安装依赖:

git clone https://gitcode.com/gh_mirrors/co/ComfyUI-MimicMotionWrapper cd ComfyUI-MimicMotionWrapper pip install -r requirements.txt

依赖很少,只有 diffusers、transformers、accelerate 这几个核心包。如果你用的是 ComfyUI 官方便携版,需要打开其安装目录,用自带的 Python 解释器执行同样的安装命令(README 里有详细说明)。

第三,模型和素材。项目仓库里已经自带了演示用的目标人物图(assets/example_data/images/demo1.jpg)和动作视频(assets/example_data/videos/pose1.mp4),你可以先拿它们练手。大模型方面,命令行模式需要你按configs/test.yaml里的路径,把 SVD 基础模型和 MimicMotion 权重放到对应目录;ComfyUI 节点模式则会自动下载缺失的模型到ComfyUI/models/下,非常省心。

跑通第一个效果:改一行配置,出一条视频

命令行模式的核心思想是"改配置 → 跑命令"。项目把一次生成任务的所有参数都收敛在configs/test.yaml这一个文件里,我们只需要把素材路径指对就行。

打开配置文件,你会看到类似这样的内容:

base_model_path: models/SVD/stable-video-diffusion-img2vid-xt-1-1 ckpt_path: models/MimicMotion.pth test_case: - ref_video_path: assets/example_data/videos/pose1.mp4 ref_image_path: assets/example_data/images/demo1.jpg num_frames: 16 resolution: 576 frames_overlap: 6 num_inference_steps: 25 noise_aug_strength: 0 guidance_scale: 2.0 sample_stride: 2 fps: 15 seed: 42

第一版我们什么都不用改,直接用默认素材跑:

python inference.py --inference_config configs/test.yaml --output_dir outputs/

跑完后,去outputs/目录找一个以视频名开头、带时间戳的 MP4 文件,打开它就是你的第一支动作迁移作品。整体流程如下:

阶段在做什么大概耗时
预处理读取参考图、按 9:16 缩放裁剪、逐帧抽姿态30 秒左右
生成姿态驱动视频扩散模型逐段合成画面1 分钟起,看帧数和步数
保存拼接帧序列导出 MP4秒级

其中resolution: 576指的是输出画面的短边,由于项目按 9:16 处理竖版素材,默认会生成 576×1024 左右的竖屏视频。

上面这张就是项目自带的演示参考图,一位穿着休闲运动装的女生,姿态自然、人物完整,很适合做目标人物。把图换成你自己的人物照片,源视频换成任意动作视频,就能开始自定义创作。

想用图形界面?把工作流拖进 ComfyUI

如果你更习惯在 ComfyUI 里拖节点,那这条路你会觉得更顺手。操作分三步:

  1. 把整个项目文件夹放进 ComfyUI 的custom_nodes/目录;
  2. 安装依赖后重启 ComfyUI
  3. 打开 ComfyUI,你会看到一个名为 "MimicMotionWrapper" 的新节点分类,里面一共有五个节点。
节点名称主要职责常用参数
(Down)Load MimicMotionModel加载(或自动下载)动作迁移模型模型版本 1.0/1.1、精度 fp16/bf16/fp32
MimicMotion GetPoses对参考图和视频帧做姿态提取是否包含身体、手部、脸部关键点
MimicMotion Sampler姿态 + 参考图 → 视频帧(核心采样)steps、cfg、seed、fps、context_size
MimicMotion Decode把采样结果解码成图像序列解码块大小
Diffusers Scheduler可选:切换 Euler / AnimateLCM 采样器sigma 范围、是否对齐步数

项目在examples/mimic_motion_example_02.json里准备了一个完整可加载的工作流模板,加载后你会看到一条清晰的链路:VHS_LoadVideo 读取动作视频 → 缩放 → MimicMotionGetPoses 提取姿态 → MimicMotionSampler 采样 → MimicMotionDecode 解码 → VHS_VideoCombine 输出视频

一个小提醒:这个模板里还用到 VideoHelperSuite(VHS)和 KJNodes(缩放、拼接类节点)这两个常用节点包,如果加载时提示找不到节点,先安装它们再回来加载。第一次运行DownloadAndLoadMimicMotionModel时,模型会自动下载到ComfyUI/models/对应目录,耐心等进度条走完即可。

把效果调得更自然:参数与性能的平衡

跑通之后,你多半会想:"能不能再自然一点?再清晰一点?"这就是参数调优的乐趣所在。核心参数就那几个,掌握它们的变化规律即可:

  • num_inference_steps(采样步数):默认 25。感觉动作僵硬或画面粗糙,可以试着加到 30~40;出片太慢就降到 15~20 快速验证。
  • guidance_scale(引导强度):默认 2.0。这个值调太高会让画面过度饱和、失真,一般保持在 1.5~3.0 之间微调。
  • resolution(分辨率):显存吃紧时从 576 降到 384,画质损失换速度,值得。
  • num_frames/frames_overlap:控制单段生成帧数和长视频分块时的衔接重叠。注意如果你选了 1.1 版模型,官方建议把上下文帧数设为 72。
  • sample_stride(抽帧步长):源视频动作太快、骨架跳变明显时,可以调小这个值让姿态更连续。
  • seed(随机种子):固定 seed 就能复现同样的结果,调参时建议锁定,方便对比。

性能上有一个基本盘:显存决定分辨率上限,时间由步数、帧数决定。预算紧张时的降级顺序是:分辨率 → 帧数 → 步数,这样对观感的影响最小。另外,采样器换用 AnimateLCM 风格也能明显提速,这正是DiffusersScheduler节点的用途。

四类人最常用的玩法,拿去即用

玩法一:给静态照片加动态,做短视频素材。你拍的旅行照、人像照,配上随手录的一段手势或走路视频,就能变成一条"照片里的人在动"的短视频,发朋友圈、做封面都很有话题感。

玩法二:虚拟形象动起来。录一段自己的动作,把目标图换成你的虚拟形象插画,几分钟就能得到一段"数字分身"表演视频,很适合直播暖场和社交内容。

玩法三:批量生成教学示范。同一个教练动作,配上不同体型的模特图,就能批量产出风格统一的示范素材。命令行模式天然支持批处理——只要在test_case下面追加多条任务即可:

test_case: - ref_video_path: assets/example_data/videos/pose1.mp4 ref_image_path: assets/example_data/images/demo1.jpg num_frames: 16 resolution: 576 num_inference_steps: 25 guidance_scale: 2.0 fps: 15 seed: 42 - ref_video_path: assets/example_data/videos/dance2.mp4 ref_image_path: assets/example_data/images/person2.jpg num_frames: 24 resolution: 512 num_inference_steps: 30 guidance_scale: 2.5 fps: 24 seed: 7

一次运行,自动按顺序处理全部任务并分别输出文件,省去重复敲命令的麻烦。

玩法四:影视分镜与广告预览。在正式拍摄前,用替身演员的动作视频和角色定妆照,快速生成一段预览,让团队提前看到成片效果,减少实际拍摄风险。

新手最容易踩的六个坑,提前帮你排掉

现象原因解决思路
报错"显存不足"参数超过了显卡承受力降分辨率/帧数/步数,改用 fp16,关闭其他占显存的程序
人物动作僵硬、不自然采样步数偏低或源视频动作模糊步数提到 30+,换清晰的动作视频,保证参考图人物完整
生成特别慢可能在用 CPU 或参数过大确认日志里设备是 CUDA,按"分辨率→帧数→步数"顺序降配
工作流加载报"缺节点"辅助节点包没装补装 VideoHelperSuite 与 KJNodes,装完重启 ComfyUI
模型下载失败或卡住网络问题换网络环境重试,或手动下载模型放进ComfyUI/models/对应目录
动作和人物对不上源视频人物与目标图体型差异过大优先选体型接近的参考图;骨骼缩放会自动校正,但差异太大会失真

除了技术问题,还有一句话要记在心里:动作迁移涉及真人肖像,商用前请务必取得当事人授权,尊重肖像权与版权。玩得开心,也当个负责任的创作者。

想深入原理?从这几个文件开始读

如果你不满足于"会用",想看看背后发生了什么,这几个文件的路径都给你指好了,按顺序读能快速建立认知:

  • 核心生成流程:mimicmotion/pipelines/pipeline_mimicmotion.py,姿态如何驱动扩散模型逐帧出图都在这里;
  • 姿态检测模块:mimicmotion/dwpose/,负责从视频里"看懂"骨架;
  • 命令行入口:inference.py,从读配置到出视频的完整逻辑链;
  • ComfyUI 节点定义:nodes.py,每个节点的参数和内部实现一览无余;
  • 全部可调参数:configs/test.yaml,调参党必看。

现在就去试试:从第一支动作迁移视频开始

看再多攻略,都不如亲手跑通一次。现在就打开终端,用项目自带的演示素材跑出你的第一支视频——从"图是静的"到"人在动",这个瞬间会很有成就感。

跑通之后,试着换成你自己的照片和喜欢的动作视频,调一调步数与分辨率,感受参数对成片的影响。遇到有趣的成片,欢迎分享给身边的朋友,一起交流最佳参数配置。别忘了:你的下一个创意,可能就差这一条命令的距离。

【免费下载链接】ComfyUI-MimicMotionWrapper项目地址: https://gitcode.com/gh_mirrors/co/ComfyUI-MimicMotionWrapper

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

← 返回列表