Friedrich-M/UniMate
UniMate 是一个被 SIGGRAPH Asia 2026 接收的统一文本驱动骨骼动画模型,能以单一模型为双足、四足、鸟类、水生、昆虫、蛇形及铰接刚体等多样的骨骼拓扑生成动作,无需逐骨架重训练或测试时优化,并附带大规模数据集 UniML3D(13,006 条文本配对运动序列)。
Friedrich-M/UniMate 是一个被 SIGGRAPH Asia 2026 接收的统一文本驱动骨骼动画模型(Python,1017 Stars 今日 +225,MIT License,基于 AnyTop 代码库构建),论文《UniMate: One Unified Model to Animate Diverse Skeletons》arXiv 2609.05415,作者 Linzhan Mou、Jiahui Lei、Zhiyang Dou、Chenyue Cai、Chaoyue Song、Adam Finkelstein、Szymon Rusinkiewicz,隶属 Princeton、UC Berkeley、MIT、NTU,项目页、交互式 Demo、HuggingFace 数据集与检查点均已公开;能以单一模型为双足、四足、鸟类、水生、昆虫、蛇形及铰接刚体等多样骨骼拓扑生成动作,无需逐骨架重训练或测试时优化;附大规模数据集 UniML3D(13,006 条文本配对运动序列,覆盖上述骨骼类型并统一到规范化表示,原始资产来自 Mixamo-Animations-Characters、Objaverse-XL-Rigged-Animated、Truebones-ZOO-Annotations,仅提示词/元数据/渲染,其中 Truebones ZOO 动物动作为商业资产需另行购买、许可不允许再分发),数据流水线阶段为下载→导出→渲染→字幕生成→关节标注→特征提取→动画;训练数据读取自 dataset/features/<dataset>/ 下规范化片段,配置文件命名 {dataset}_{frames}frames_{attention}_{text_cond}.json,共 8 个配置(4 种数据组合 uniml3d/truebones/mixamo/objaverse × 2 种模型变体),均为 60 帧;两种注意力/条件方案为 graph + adaln(注意力分解为空间逐帧与时间逐关节两路,带图距离、边类型与深度偏置,字幕经 adaLN 调制注入)与 full + cross_attn(在展平关节×时间 token 上做单一注意力,字幕作交叉注意力 key/value 进入每个块),两轴独立且四种组合均已实现;每数据组合独立调参 batch_size、num_steps、num_layers(单源 6 层,Objaverse 8 层,全量混合 10 层)、max_joints(truebones/mixamo 100,objaverse/uniml3d 60),min_joints 统一为 5;训练为流匹配(training.diff_model = "flow",预测噪声与数据线性插值的速度场,损失为掩码 L2 + 测地旋转损失 lambda_geo + 速度平滑损失 lambda_smooth),条件以 model.cond_mask_prob 概率丢弃使同一权重服务条件与无条件分支、采样时用 classifier-free guidance 插值,优化器 AdamW + 余弦调度 + warmup、梯度裁剪 training.max_grad_norm、使用 EMA 权重(推理默认加载);采样器为幂律平衡(类型含 n 条片段时采样概率正比 n^(1-sampler_alpha),默认 sampler_alpha=0.5);在线增强含关节添加、叶子移除、链池化、逐骨长度扰动(dataset.use_*_aug);文本编码器默认 google/flan-t5-base,可预计算 caption_emb_cache.npz 与 joint_emb_cache.npz,关节名按清理后的共享词表缓存使不同骨架相同解剖关节嵌入一致;训练使用 HuggingFace Accelerate 启动,支持单 GPU 与单节点多 GPU(如 8 卡),scripts/run_train.sh 封装单 GPU 命令并自动激活 conda 环境与选择空闲显存最多的 GPU,输出目录 outputs/<experiment name>/ 含 config.json、dataset_stats.npy、checkpoints/、debug/、logs/(TensorBoard);推理命令 python -m unimate.inference.sample --exp_dir ... --test_cases_json ... --num_repetitions 3,关键参数含 --cfg_scale、--model_path、--output_dir、--num_repetitions、--batch_size、--seed、--only_save_motion、--save_ric,输出 motions/<case_id>-rep_<r>-<i>.npy(T, J, 12)、animations 下 FK/可选 RIC 的 MP4、T-pose PNG、captions.json,生成动作可通过流水线第 5 阶段驱动原始网格并导出动画 GLB + FBX;三大免训练应用为运动中间帧(--keep_frames 支持带符号索引如 "0,-1")、文本引导运动编辑(--keep_joints 大小写不敏感匹配骨骼名或清理词表,保持指定关节并按新提示重新生成其余部分)、运动扩展(将多个提示链成长动作,后续段首帧对齐前段尾帧,--expand_overlap 设置重叠帧数),三者均为替换式采样、已知信号被固定、流 ODE 仅对剩余部分去噪、约束精确成立,需 --cfg_scale > 1.0 且互斥,各自写入独立子目录并附带约束 JSON;已知限制与数据质量问题:部分 Objaverse-XL 骨架与片段存在缺陷(静止姿态平躺/旋转/倒置、片段混合无关动作)可能导致训练不稳定或崩溃,排查方法是先仅用 Mixamo + Truebones 训练,若健康则问题在 Objaverse,可将问题骨架与片段加入 stage-4 跳过列表;官方提示 UniMate 仍是早期步骤、许多动作与骨架仍会失败,建议通过从智能体蒸馏或从视频生成来扩大训练数据;UniML3D 发布版字幕已重新处理,与项目页/论文中的提示词不完全一致,新提示以 "An object" 开头以跨对象泛化;许可方面仓库代码为 MIT,数据受各自原始来源许可约束(Mixamo 适用 Adobe Mixamo 使用条款,Objaverse-XL 适用各原始对象所附许可,Truebones ZOO 适用 Truebones 商业许可)。
UniMate 是一个被 SIGGRAPH Asia 2026 接收的统一文本驱动骨骼动画模型,能以单一模型为双足、四足、鸟类、水生、昆虫、蛇形及铰接刚体等多样的骨骼拓扑生成动作,无需逐骨架重训练或测试时优化,并附带大规模数据集 UniML3D(13,006 条文本配对运动序列)。