管线的三段
判断问题出在哪,前提是知道这三段各自在做什么。
- 抽取。 姿态估计模型读驱动视频,产出逐帧的序列:二维关键点、骨架、稠密人体图,或者面部关键点。驱动者的外观完全不往下传,只传几何。
- 重定向。 把这条序列映射到你的目标身材比例上。一个高个子驱动者的肩部坐标,落在矮个子角色身上含义完全不同,肉眼可见的损伤大多出在这一段。
- 生成。 以重定向后的姿态加上你的身份参考为条件生成帧,角色保持自己的设计,同时采用这套运动。
驱动视频怎么挑
驱动素材比模型更重要。实操上:
- 单人、全程整体入画。 一条离开画框的胳膊,出来就是一条消失或者乱甩的胳膊。
- 固定机位。 驱动视频里的运镜会变成输出里的主体运动,因为管线分不清这两者。
- 不要有剪辑点。 每个剪辑点都是姿态序列上的一处断裂,看上去就是一下猛跳。
- 速度适中、剪影清楚。 动作太快意味着运动模糊,模糊意味着姿态估计不可靠。
- 自遮挡尽量少。 胳膊横过躯干、手背到身后、整个人转过去,都是估计模型开始猜的地方。
- 取景和目标图匹配。 全身角色配全身驱动,肖像配上半身。
为什么比例比什么都重要
面条腿、脚在地上滑、关节反着弯,几乎都是重定向的产物,而不是生成的产物。姿态序列本质上是一串坐标,如果这串坐标出自一具和你的角色形状不同的身体,提示词写得再好也补不上这个错配。
有两个具体习惯很管用。一是让参考图的姿态贴近驱动视频的第一帧,序列从「一致」开始,而不是从一次跳跃开始。二是挑一个身材接近你角色的驱动者,这件事比动作本身够不够精彩重要得多。
什么能迁过来,什么迁不过来
身体运动、节奏、重心转移迁得很好,这也正是这项技术的意义。手是标准伤亡,因为手指占的像素少、对应的姿态点也稀疏。细腻的面部表演基本留不住,所以角色要说话时,得再配一次单独的嘴部处理。布料和头发是生成出来的、不是模拟出来的,所以它们只是松散地跟着身体走,会滞后也会穿模。
另外值得把三件相邻的事分清:动作迁移用驱动视频驱动主体的表演;口型同步只用音频驱动嘴;运镜控制指定的是相机怎么动,而不是主体做什么。三者里挑错一个,是把大量额度花在错误问题上的常见方式。