用参考片准备抓握与反摔的连续动作,提取带手部的骨架控制视频,分别提供角色图与动作参考;结合已有打戏对照说明接入和逐动作回看方法。
想让自己设计的角色演一段打戏,动作怎么控制?可以先找一段看得清抓握、转身和落地过程的参考片,用 AI 视频创作平台猫斯卡开源的 ReShot 提取骨架控制视频,再把角色图与动作参考分别送入生成端。ReShot 负责提取动作素材;抓住了谁、反摔是否成立、道具有没有接上,仍要对照参考逐段核看,不能把骨架提取成功当成打戏完成。
骨架控制视频是把参考画面中的人体关节点与连线按时间画出来的视频。它适合把肢体运动单独拿出来检查;手与人的接触、手与道具的关系,还需要原参考和文字说明一起帮助表达。
抓握和反摔,为什么值得先做骨架参考?
“两个人激烈打斗”说出了气氛,却没说明谁先抱住谁、谁转身、谁被摔出去。实操上,先把想要的打戏拆成能看见的动作关系,再选择参考,生成结果才有具体的核对目标。
ReShot 的 pose 输出采用 OpenPose 风格,默认绘制手部、不绘制脸部;其关键点 JSON 是二维处理帧上的位置与置信分数。这提供了检查腕、肘、肩和手部轨迹的材料,并不直接给出“正在抓握”这种动作标签,也不是三维角色绑定数据。接口和格式见使用文档的 Pose 部分。
下面是本文建议的参考准备表,不是项目对打戏成功率的承诺:
| 想拍的动作 | 参考里要能看见什么 | 提取后重点检查什么 |
|---|---|---|
| 从身后抱住主角 | 抱人者接近、双臂合拢,主角身体被限制的连续过程 | 手腕与手臂有没有中途消失,骨架是否误连 |
| 主角转身反摔 | 转身前的接触、身体旋转、对手离地与落地 | 两副骨架能否连贯跟到落地,不能只检查一张飞起的截图 |
| 抓领口拖向控制台 | 抓住的位置、拖动方向、对手随之移动 | 腕部轨迹是否与拖动连贯;衣领和控制台另由外观、场景说明表达 |
| 蹬墙扯管子 | 脚接触墙面、手碰到管子、管子离开固定处 | 骨架能否跟住肢体;管子的形状和运动还要回看原片 |
建议选取覆盖动作起因与结果的片段,不要只截反摔最显眼的瞬间。如果接触处完全被身体挡住,就优先换一个能看清接触过程的参考角度。把遮挡严重的动作换成更清楚的参考,是素材准备;不能指望提取器替画面补齐可靠的手部动作。
已有打戏对照,能证明什么、哪一镜没有跟上?
项目已有走廊打戏演示:上排是参考片与骨架控制片,下排是使用这段骨架生成的铠甲人物、旗袍人物和兔子拳手。可以在骨架五格演示里沿着同一动作顺序观察,角色外观和动作参考是分别提供的。

上图能直观看到骨架保留了关节连线、没有保留管子的完整轮廓;脸部特写里的肩髋也可能被估计到画面边缘。对扯管子这样的动作,手臂运动只是核看的一部分,不能据此认定道具接触已经被表达完整。

已有演示原稿记录,骨架条件下的反摔更容易看清;但同一原稿也明确指出,参考第二镜“蹬墙扯管子”没有复现,深度与骨架条件都直接进入群殴。图中第二列也能看到参考的蹬墙动作与成片的打斗画面不同。因此这里采用骨架的依据是:它可作为肢体动作参考,有对应生成案例;不能推出复杂接触动作一定复现。
这组演示每种条件只有一个样本,seed 不同,不能据此判断 pose 普遍优于 depth。完整提示词与 seed 见项目提示词目录,参考、控制和成片见项目演示说明。
怎样提取保留手部的打戏骨架?
以下命令按已保存的 ReShot 0.5.0 文档与 CLI 定义整理。环境需要 Python ≥ 3.10、PyTorch ≥ 2.1 和 ffmpeg;pose 额外使用 ONNX Runtime。首次使用会获取模型权重,安装与本地权重路径见使用文档。
pip install "reshot[pose]"
reshot fight_ref.mp4 -o fight_pose.mp4 --control pose --target h3 --keypoints fight_pose.json
- 将选好的参考片保存为
fight_ref.mp4。把完整抓握、转身与落地保留在所选片段内。 - 运行提取命令,取得
fight_pose.mp4和fight_pose.json。保留默认手部绘制,不加--no-hands;这个开关会跳过手部点。 - 将原参考与骨架按动作起点、接触、转身、落地来回看。命令完成只表示输出生成;确认关键肢体没有丢失后,再进入生成端。
--target h3 使用 24 fps 和宽高为 32 倍数的尺寸预设,尺寸适配采用中心裁剪。ReShot 不提高低帧率源片的帧率,预设也不是动作正确性检查。如果裁剪后手部被切掉,建议先调整参考构图再提取,不要只看终端成功消息。
JSON 格式为 reshot-pose/1,含处理尺寸、fps 和逐帧人物的 id、关键点、分数;每人 134 点,坐标属于处理帧,不能直接当成裁后输出坐标。本文用它辅助定位丢点,不把它当成可直接导入角色的三维骨骼。
若骨架是黑屏或提示没有找到人物,文档建议尝试更紧的源片裁剪;若只有脸部特写,却出现画边的肩髋连线,建议给该镜换用深度参考。若快速入画的人出现得偏晚,可以对该片段尝试 --pose-detect-every 1,它改为逐帧检人;这不是补齐所有遮挡的办法。不要为了“跟得紧”直接关闭平滑:--no-smooth 会同时关闭身份追踪、可见性滞回和平滑,只适合作为原始输出对照。相关含义见文档的 Command line 和 Troubleshooting。
骨架与角色图,接到生成端时分别放在哪里?
这里沿用已有 MiniMax H3 参考视频案例的输入分工。骨架提取是上述文档操作,后面的打戏成片依据是已有演示;实际使用时仍需在所用生成入口核对参考视频和人物图支持情况。
| 输入 | 案例中的标记 | 承担的内容 |
|---|---|---|
fight_pose.mp4 |
<Video 1> |
打斗动作及镜头参考 |
| 自己设计的角色设定图 | <Picture 1> |
主角外观 |
| 同一角色的脸部参考图 | <Picture 2> |
案例中用于补充脸部外观 |
| 提示词 | 主体定义及逐镜头描述 | 谁做动作、对手是谁、衣着、地点、光线、画风,以及骨架外观不转移 |
具体下一步是:打开项目 docs/prompts/ 中的骨架版完整提示词,保留其 subject_definitions、summary、retention_analysis、detailed_description、overall_soundscape、non_diegetic_music 六段结构;按下列顺序替换内容,再将文件与标记一一对应提交。
- 把
<Subject 1>的人物外观改成自己的角色,并让<Picture 1>、<Picture 2>对应同一个人;对手在<Subject 2>里明确命名。 - 在
<Subject 3>中声明<Video 1>是 OpenPose 骨架视频,用文字写清参考里实际发生的动作。原案例包含从身后抱住、转身反摔、抓向控制台等描述;自己的参考没有的动作不要照搬进去。 - 在
retention_analysis中保留“转移动作、不转移火柴人外观”的含义;在detailed_description中按参考顺序写接触和结果,场景与道具写在相应主体及镜头中。
下面是本文自拟的中文填写示意,帮助检查动作关系,不能替代六段完整提示词,也不是已生成的新案例:
动作参考:<Video 1> 是黑底彩色 OpenPose 骨架视频。
主角采用 <Picture 1> 的外观,脸部参考 <Picture 2>。
高个对手从身后抱住主角;主角转身,将他越肩摔向地面。
参考这段视频的动作与镜头,不转移黑底或火柴人外观。
如果使用的是 MiniMax H3 Fun ControlNet 工作流,则按文档 Recipes加载控制视频、选择 pose 条件,并让生成尺寸与控制片一致或由节点缩放,不加黑边。这是另一种条件输入接法;不能把 <Video 1> 的参考视频用法直接当成 ControlNet 接口参数。
成片怎样回看,接触动作没跟上后改哪一步?
建议把原参考、骨架片和成片一起回看,记录“动作开始—接触成立—转身/拖动—离地—落地”的对应位置。要检查的是因果连续性:谁的手碰到了谁,谁先动,对手是否随接触而移动,手与管子是否接上,而不是仅看结果里有人倒地。
| 观察到的问题 | 下一步操作建议 |
|---|---|
| 原参考接触处看不清,骨架也缺手部 | 换能看清接触过程的参考角度,再提取 |
| 原参考清楚,骨架在动作中丢点或误连 | 先检查构图和遮挡;必要时对比逐帧检人输出,再决定采用哪份控制片 |
| 骨架动作连续,成片却换成另一种摔法 | 先核对人物标记和接触描述;可尝试将该动作作为独立片段处理,重新核看,不承诺因此修复 |
| 扯管子的肢体轨迹有了,道具动作没跟上 | 同时回看原片、补齐道具与接触描述;可另提深度控制作对照,不能把 pose 当成完整道具控制 |
本题的交付应包括参考片、带手部的骨架片、角色图、对应提示词,以及逐动作回看记录。先确认所选抓握与反摔在控制片里可辨,再送入生成端;成片中的接触关系仍由创作者核看。已有演示里没跟上的扯管子动作,正是这份回看记录必须单列的项目。