当角色动画扔掉"骨架":SCAIL-2 的端到端之路

论文链接:
https://arxiv.org/pdf/2606.10804
项目主页:
https://teal024.github.io/SCAIL-2/
代码地址:
https://github.com/zai-org/SCAIL-2
想让视频里一个人的舞蹈,原样"穿"到一只北极熊身上,这就是受控角色动画(controlled character animation)要做的事:把驱动视频的动作,迁移到参考角色上。SCAIL-2 这篇论文的主张很激进:别再用骨架了。
1
老路子的麻烦:中间表示
过去主流做法,是先从驱动视频里抽出一个"中间表示"再喂给视频扩散模型:用现成姿态估计器画出骨骼图,或把背景抠成遮罩。
问题是,骨骼在复杂场景下有歧义(两人重叠时分不清前后),遮罩又把身材锁死,没法把瘦子换成胖子;而且骨架根本画不了动物。

2
新思路:直接拼视频 + 反向驱动
SCAIL-2 干脆把驱动视频直接拼接进生成序列里,[参考图; 噪声视频; 驱动视频] 三段并排,让模型自己从画面里读全部信息,不丢遮挡和环境。
但端到端要"配对数据":同一套动作、同一环境下,得有不同角色各演一遍,现实中几乎不存在。作者的巧招是反向驱动:拿真实视频 y,用姿态驱动模型把里面的角色换成别人,生成合成视频 ỹ;训练时反过来,用合成的 ỹ 当驱动输入,用原始真实 y 当生成目标。
这样监督信号始终是真实、物理合理的画面,模型反而能超过用来造数据的生成器。
3
数据:MotionPair-60K
为低成本造出多样配对,作者搭了一条智能体合成流水线:候选选择器挑角色 → 提示编织器规划画面 → 用 Nano Banana Pro(Google 基于 Gemini 3 Pro 的图像编辑模型)编辑出参考图 → 质量检查器把关。最终得到约 5.9 万对端到端数据。


4
统一的"软提示"接口
光有原始画面还不够清楚,作者加了两层软引导:
In-Context 掩码条件:1 个"环境开关"通道决定背景取自参考图还是驱动视频;再加 K 个"绑定槽"通道,规定哪段动作流向哪个角色(掩码由 SAM 3 抽取,Meta 2025 年 11 月发布的分割模型,能按概念一次框出所有同类实例)。
模式专属位移 RoPE:用时间/空间偏移区分"动画模式"与"替换模式",防止两种任务打架。


5
Bias-Aware DPO
合成数据在手指等细节最容易出错。作者让画面再过一轮姿态估计的"误差传播",造出更差的负样本,与好样本组成偏好对,用 DPO 只在手部区域做后训练,纠正细节。
6
效果
模型基于 Wan2.1-14B-I2V 主干训练。在 Studio-Bench、X-Dance 等基准上,人类评测里 SCAIL-2 在单角色、多角色动画和角色替换上都胜过 SCAIL、Wan-Animate、MoCha 等开源方法,并逼近闭源的 Kling 3.0;多角色结果还是零样本的。



