UniMate多重复采样与随机种子完整指南:快速生成并对比3个动作变体
【免费下载链接】UniMate[SIGGRAPH Asia 2026] UniMate: One Unified Model to Animate Diverse Skeletons项目地址: https://gitcode.com/GitHub_Trending/un/UniMate
UniMate 是一个"一个模型动画化任意骨骼"的统一动作生成模型(SIGGRAPH Asia 2026),只需一句文本提示,就能为任意 rigged 的 3D 资产生成连贯动作。由于生成过程本质上是随机的,多重复采样(multi-repetition sampling)+ 随机种子(random seed)是最实用的技巧:一次性生成 3 个动作变体,从中挑选最自然的一个,还能用固定种子复现满意的结果。
为什么一次生成 3 个动作变体?
UniMate 基于 flow matching 训练,采样时从随机高斯噪声出发逐步去噪。同一句提示词、同一个骨骼,每次生成的初始噪声不同,结果就会不同:
- 某个变体可能动作僵硬,另一个更自然
- 有的变体对提示词的遵循度更高,有的更平滑
- 项目官方建议"生成多个样本,多试几种措辞"(
--num_repetitions)
所以标准工作流是:同一条件采样 3 次 → 肉眼对比 3 段视频 → 选优。这正是重复采样的价值。
一键生成 3 个变体:使用 num_repetitions
推理入口是 unimate/inference/sample.py,核心参数是--num_repetitions(每个测试用例的采样次数):
# 对自定义资产 eagle 生成 3 个"拍翅膀"动作变体 python -m unimate.inference.sample \ --exp_dir outputs/unimate_uniml3d_f60_v3_preview \ --asset assets/examples/eagle \ --prompt "An object flaps its wings." \ --num_repetitions 3 \ --output_dir outputs/samples/eagle或者用官方封装脚本 scripts/run_sample_motion_text.sh,它默认REPLICATE=3,开箱即用:
ASSETS=assets/examples/eagle \ PROMPT="An object flaps its wings." \ bash scripts/run_sample_motion_text.sh outputs/unimate_uniml3d_f60_v3_preview想生成更多候选?改一个变量即可:
REPLICATE=5 SEED=7 bash scripts/run_sample_motion_text.sh outputs/unimate_uniml3d_f60_v3_preview用随机种子让采样可复现
不指定种子时,每次运行结果都不同。想稳定复现某个满意的变体(比如发给队友、写论文),传入--seed:
python -m unimate.inference.sample --exp_dir <exp_dir> \ --asset assets/examples/eagle --prompt "An object flaps its wings." \ --num_repetitions 3 --seed 42 --output_dir outputs/samples/eagle- 指定
--seed 42后,随机数生成器被固定(内部调用set_seed,见 sample.py),3 个变体各自确定、可完全重放 - 换一个种子(如
--seed 2026)= 换一批候选变体 - 推荐组合拳:
REPLICATE=3 + 固定 SEED先跑一轮,喜欢哪个变体就记下"种子 + rep 编号",之后随时可精确再生成它
3 个变体如何命名、如何对比?
采样器会为每次重复写入带rep_<编号>前缀的文件(见 unimate/utils/visualization.py),互不覆盖:
| 输出 | 路径 | 内容 |
|---|---|---|
| 动作特征 | motions/eagle-flaps_its_wings-rep_0-0.npy | 3 个变体各一个.npy |
| 骨架动画视频 | animations/...-rep_0-0_fk.mp4 | 每个变体一段可播放的 mp4 |
| 清单 | manifest.json+captions.json | 记录资产、提示词、生成配置 |
对比流程很简单:打开animations/目录,把rep_0、rep_1、rep_2三段视频并排看,从自然度、提示词遵循度、是否抽搐三个维度打分,选最好的那个。
选中后,用 scripts/run_animate_motion.sh 一键把 3 个变体烘焙到 3D 网格上,导出 GLB/FBX 供 Blender 等软件审阅:
bash scripts/run_animate_motion.sh outputs/samples/eagle # 输出:outputs/samples/eagle/animated/<变体名>.glb / .fbx挑选最佳变体的实用技巧
- 提示词写短、写"动作":以 "An object" 开头,只描述一个动作("An object rears up on its hind legs."),效果远好于长句。好提示词的参考样例在 assets/examples/examples.json
- 调整 cfg_scale:默认 3。提示词被"忽略"时提高到 5~7;动作过猛过激时调低,让运动更平滑
- 多资产批量生成:
--asset可传多个资产(如 assets/examples/eagle、assets/examples/unitree_go2、assets/examples/shark),配合--num_repetitions 3一次跑完所有候选 - 记录种子:满意的"种子 + rep 编号"就是你的配方,写进笔记可长期复用
总结
| 需求 | 做法 |
|---|---|
| 生成 3 个动作变体 | --num_repetitions 3(或脚本REPLICATE=3) |
| 固定结果可复现 | --seed 42(或脚本SEED=42) |
| 对比变体 | 并排播放animations/下rep_0/1/2的 mp4 |
| 烘焙到网格 | bash scripts/run_animate_motion.sh <采样目录> |
掌握"多重复采样 + 随机种子"这一组合,你就能把 UniMate 从"抽一次看运气"升级为可控的动作挑选流水线:3 个候选、并排对比、一键定稿,再复现给任何人和任何时间。
【免费下载链接】UniMate[SIGGRAPH Asia 2026] UniMate: One Unified Model to Animate Diverse Skeletons项目地址: https://gitcode.com/GitHub_Trending/un/UniMate
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考