English

AI 视频动作捕捉又进一步:猫斯卡开源的 ReShot 升级了,参考片一键抽成骨架视频,跳舞武打照着跟,Seedance 和 MiniMax H3 都认,Mac 上 90 秒一条

猫斯卡编辑部 | 最后更新日期

深度图之外多了骨架和线稿两种参考;为什么骨架不闪是件难事、我们怎么做的;三条演示片用同一套提示词在 MiniMax H3 上重出了一遍,结果如实贴出来

猫斯卡(www.maosika.com)上个月开源的 ReShot,今天发 0.5.0。

参考片不只能抽成深度图了,还能抽成骨架视频线稿视频

一段片丢进去,黑底彩色火柴人出来,交给 Seedance 或 MiniMax H3 当参考,动作一根肢体一根肢体地照着来,人换成你的。

还是先验验货。

上排:参考片和它的骨架。下排:MiniMax H3 用这段骨架出的三段片

参考片还是那场走廊打戏。

上排右边是 ReShot 抽出来的骨架:每个人一副彩色火柴人,手指头都有,脸没有。

下排三条片,铠甲女战士、旗袍女、卡通兔子拳手,提示词和定妆图跟上次深度图那篇一个字没改,只把挂上去的参考视频从灰片换成了这段骨架。

蹬墙、被抱起来反摔、撞控制台、走出门,六个节拍三条片全在。

摔人那一下,骨架版比深度图版看得更清楚,人是真的被甩到半空的,有点东西。

骨架和深度图各管什么,什么时候选哪个

上次那篇我讲过深度图:把画面压成近白远黑的灰影,只剩「谁站在哪、谁大谁小、怎么动、镜头怎么走」,脸和衣服想抄也没得抄。

骨架是另一条路。

它连灰影都不要,只留关节点和连线。

深度图骨架
带走什么站位、体量、动作、运镜、场景的形状每一根肢体、每一只手,分毫不差
扔掉什么脸、衣服、光线、画风其余全部,连体型和场景一起扔
适合什么都行,人和非人跳舞、武打,凡是靠肢体的

说人话:跳舞和打戏选骨架,其余选深度图,拿不准就两个都出。

--control depth,pose 一次出两份,喂给模型看它跟哪个跟得好。

为什么跳舞和打戏要选骨架,我说一下我的理由。

深度图里一个人是一团灰影,胳膊贴着身体的时候,影子是连在一起的,模型分不清那只手在身前还是身后。

骨架把这只手单独画出来,连五根手指的朝向都在,跳舞的手势、打戏的抓握,模型一眼看清。

反过来,深度图带着整个房间的形状,人从走廊深处走到镜头前、镜头推进拉远,灰影的大小和明暗都在变,骨架里这些一概没有。

所以走位和运镜为主的戏,深度图更全;肢体细节为主的戏,骨架更准。

线稿是第三种,黑底白线,不用模型,一秒出来。

不过它会把衣服和脸的轮廓也带过去,「只复制走位」对它只成立一半,想要整个画面布局的时候再用。

同一帧的参考、深度图、骨架,四个时刻
同一帧的参考、深度图、骨架,四个时刻

有一种情况骨架不合适,得先说:大特写。

人只露一张脸,肩和髋都在画面外,估计器照样会猜,把它们画到画面边上,一堆乱线。

特写老老实实用深度图。

骨架不闪,是件难事

抽骨架的模型市面上很多,逐帧跑一遍谁都会。

难的是跑出来能不能用。

逐帧跑有三种闪:两个人隔一帧换个位;关节点每帧抖一两个像素;一根胳膊在阈值附近忽有忽无。

视频模型把这三样全读成动作,生成出来的人就跟着抽。

我们做了三件事。

跨帧给每个人配一个固定身份,用身体框的重叠度来配。

关节一旦画上,要分数掉到远低于阈值才撤,不在阈值边上来回跳。

每个关节各过一个 One-Euro 滤波,静止时稳,出拳时跟得上。

这套和深度图那边「整段只用一把尺子」是同一个道理:决定要在时间轴上做一次,不是每帧各做各的。

模型选的是 DWPose,检人加全身 133 个点,代码和权重都是 Apache-2.0。

选它有个更要紧的原因:ComfyUI 里给 ControlNet 出 pose 图的就是它,画法也是 OpenPose 那套,所以我们出的骨架和视频模型训练时见过的长得一样。

默认画手、不画脸。

手是抓握和手势,得留;脸型正是咱要扔掉的东西。

速度

检人是大头。

Mac 的 CPU 上检人一帧 368 毫秒,估点只要 75 毫秒。

所以检人每三帧跑一次,中间两帧用上一帧的骨架推出人框;片子里出现剪切、或者哪个骨架分数掉到不可信,检人立刻回来。

289 帧的走廊片,这样跑和逐帧检人比:280 帧人数完全一样,八成关节误差在 2 个像素以内,快 35%。

差的那 9 帧是有人进画面时骨架晚了一两帧出现,不放心可以关掉,--pose-detect-every 1

M2 Max 的 Mac 上,12 秒的片 90 秒出骨架,N 卡装 onnxruntime-gpu 会更快。

怎么用

装:

pip install "reshot[pose]"
reshot

浏览器弹出页面,右上多了「出什么」三选一:深度图、骨架、线稿。

选骨架,把片子丢进去,点一下。

参考片和骨架并排预览,下载按钮旁边多一个「下载关键点 JSON」——每帧每个人 134 个点带分数,每个人一个固定编号,想改、想重定向到别的骨架、想做分析都能拿去用。

ReShot 网页,选骨架
ReShot 网页,选骨架

命令行:reshot 参考片.mp4 -o 骨架.mp4 --control pose --target h3

ComfyUI:节点包 ComfyUI-ReShot 升到 0.2.0,加了 Pose 和 Canny 各两个节点,跟原来的 Depth 一样,一个吃视频吐视频,一个吃帧吐帧,MiniMax H3 Fun ControlNet 的 pose 口直接接。

第一次用会下载两个模型文件,约 340 MB,中国大陆先设一下镜像 export HF_ENDPOINT=https://hf-mirror.com

真机验证,如实说

上面三条片是在 MiniMax H3 上出的,提示词、定妆图、参考片尺寸都和深度图那次一样,只改了描述参考片的两句话:「这是一段灰色深度图」改成「这是一段 OpenPose 骨架视频」,「灰色外观不要抄」改成「火柴人的样子不要抄」。

三条的完整提示词和 seed 都在仓库 docs/prompts/ 里,大伙儿可以自己去对。

江雪那条:第一行参考片,第二行深度图版,第三行骨架版,六个镜头
江雪那条:第一行参考片,第二行深度图版,第三行骨架版,六个镜头

六个节拍都复现了,和深度图版一个水平。

每种条件我只出了一条,seed 也不同,所以只能说「骨架当参考视频也行」,不能说「骨架更好」。

挑一根刺:参考片第二镜是蹬墙扯管子,两种参考都直接进了群殴,虽然后面五镜全对上了,这一镜谁都没做到。

这是模型对那一镜的理解问题,不是参考片的锅。。。

GitHub 搜 maosika-ai/reshot,或者 pip install "reshot[pose]"

用骨架做了跳舞的片,去仓库的 Discussions 贴一条,打戏我测够了,舞蹈还想看。

猫斯卡(www.maosika.com)站内锁的是「谁」,ReShot 锁的是「怎么动」,两样凑齐,一场戏剩下交给模型的只有光线和画风。

链接

关于猫斯卡 | 猫斯卡 · 专业AI视频自动生产系统。把创意评估、剧本写作、人物场景道具定妆、镜头提示词与出片串成一条可审、可改、可回退的生产链。官网:www.maosika.com