Friedrich-M Claude Opus 5.5 commited on
Commit Β·
66d5240
1
Parent(s): 82383fd
Release unimate_uniml3d_f60_v3 trained to 150k steps with checkpoints 100k-150k; update the model card and index
Browse filesCo-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LjgwfhefMhyk7qWfFTek8y
- .gitignore +2 -4
- README.md +20 -30
- config.json +3 -3
- {unimate_uniml3d_f60_v3_preview β unimate_uniml3d_f60_v3}/checkpoints/checkpoint_step_100000.pt +0 -0
- unimate_uniml3d_f60_v3_preview/checkpoints/checkpoint_step_80000.pt β unimate_uniml3d_f60_v3/checkpoints/checkpoint_step_110000.pt +2 -2
- unimate_uniml3d_f60_v3_preview/checkpoints/checkpoint_step_90000.pt β unimate_uniml3d_f60_v3/checkpoints/checkpoint_step_120000.pt +2 -2
- unimate_uniml3d_f60_v3/checkpoints/checkpoint_step_130000.pt +3 -0
- unimate_uniml3d_f60_v3/checkpoints/checkpoint_step_140000.pt +3 -0
- unimate_uniml3d_f60_v3/checkpoints/checkpoint_step_150000.pt +3 -0
- {unimate_uniml3d_f60_v3_preview β unimate_uniml3d_f60_v3}/config.json +0 -0
- {unimate_uniml3d_f60_v3_preview β unimate_uniml3d_f60_v3}/dataset_stats.npy +0 -0
.gitignore
CHANGED
|
@@ -6,7 +6,5 @@
|
|
| 6 |
# Training samples: only the videos are uploaded
|
| 7 |
*/samples/**/*.npy
|
| 8 |
*/samples/tpose/
|
| 9 |
-
#
|
| 10 |
-
|
| 11 |
-
unimate_uniml3d_f60_v3_preview/slurm_14924666.out
|
| 12 |
-
unimate_uniml3d_f60_v3_preview/slurm_14924666.err
|
|
|
|
| 6 |
# Training samples: only the videos are uploaded
|
| 7 |
*/samples/**/*.npy
|
| 8 |
*/samples/tpose/
|
| 9 |
+
# unimate_uniml3d_f60_v3: training logs stay local
|
| 10 |
+
unimate_uniml3d_f60_v3/logs/
|
|
|
|
|
|
README.md
CHANGED
|
@@ -29,11 +29,11 @@ Pretrained checkpoints of UniMate, a text-conditioned flow-matching model that g
|
|
| 29 |
|
| 30 |
| Model | Architecture | Training data | Joints | Steps | ParamsΒΉ | Status |
|
| 31 |
|---|---|---|---|---|---|---|
|
| 32 |
-
| [`
|
| 33 |
| [`unimate_uniml3d_f60_v2`](unimate_uniml3d_f60_v2) | graph attention, AdaLN text | UniML3D [`faaa817`](https://huggingface.co/datasets/Linzhan/UniML3D/tree/faaa81773b315247b03f183548e3898dbec2ce80) | 5β70 | 100k | 74.1M | Previous version |
|
| 34 |
| [`unimate_uniml3d_f60_v2_cross_attn`](unimate_uniml3d_f60_v2_cross_attn) | full attention, cross-attention text | UniML3D `faaa817` | 5β70 | 100k | 66.2M | Variant |
|
| 35 |
| [`unimate_mixamo_f60_v2`](unimate_mixamo_f60_v2) | graph attention, AdaLN text | UniML3D `faaa817`, Mixamo | 22 (one rig) | 120k | 47.8M | **Recommended for Mixamo** |
|
| 36 |
-
| [`unimate_truebones_f60_v2`](unimate_truebones_f60_v2) | graph attention, AdaLN text | UniML3D `faaa817`, Truebones | 5β
|
| 37 |
| [`unimate_uniml3d_f60_v1_preview`](unimate_uniml3d_f60_v1_preview) | graph attention, AdaLN text | UniML3D pre-release build | 5β60 | 120k | 74.1M | Superseded |
|
| 38 |
|
| 39 |
ΒΉ Denoiser only; the frozen `google/flan-t5-base` text encoder is downloaded on first use.
|
|
@@ -54,31 +54,21 @@ The Mixamo model animates the 22-joint Mixamo rig only. The Truebones model cove
|
|
| 54 |
From the root of the [code repository](https://github.com/Friedrich-M/UniMate), in its `unimate` environment:
|
| 55 |
|
| 56 |
```bash
|
| 57 |
-
# 1. download a model (for another model, change the folder and the step)
|
| 58 |
-
hf download Linzhan/UniMate --local-dir outputs \
|
| 59 |
-
--include "
|
| 60 |
-
--include "
|
| 61 |
-
|
| 62 |
-
# 2.
|
| 63 |
-
python -m
|
| 64 |
-
|
| 65 |
-
--
|
| 66 |
-
|
| 67 |
-
# 3.
|
| 68 |
-
|
| 69 |
-
--asset outputs/rig/robot truebones:Horse --prompt "An object walks forward." --num_repetitions 3
|
| 70 |
-
|
| 71 |
-
# 4. drive each asset's mesh with its motions (one GLB / FBX per motion)
|
| 72 |
-
bash scripts/run_animate_motion.sh outputs/unimate_uniml3d_f60_v3_preview/samples
|
| 73 |
```
|
| 74 |
|
| 75 |
-
|
| 76 |
-
|
| 77 |
-
```bash
|
| 78 |
-
hf download Linzhan/UniML3D --repo-type dataset --local-dir dataset --include "features/*/cond.npy" --include "canonical_assets/mixamo/*"
|
| 79 |
-
```
|
| 80 |
-
|
| 81 |
-
Test-case files, in-betweening, joint editing and motion expansion are documented in the code README.
|
| 82 |
|
| 83 |
## Training
|
| 84 |
|
|
@@ -86,14 +76,14 @@ AdamW (lr 1e-4, betas 0.9 / 0.99, weight decay 1e-5, clipping 1.0), 3% linear wa
|
|
| 86 |
|
| 87 |
| Model | GPUs | Time |
|
| 88 |
|---|---|---|
|
| 89 |
-
| `
|
| 90 |
| `unimate_uniml3d_f60_v2` | 8Γ H100 | β 22 h |
|
| 91 |
| `unimate_uniml3d_f60_v2_cross_attn` | 8Γ H100 | β 36 h |
|
| 92 |
| `unimate_mixamo_f60_v2` | 4Γ H100 | β 12 h |
|
| 93 |
| `unimate_truebones_f60_v2` | 4Γ H100 | β 15 h |
|
| 94 |
| `unimate_uniml3d_f60_v1_preview` | 6Γ H100 | β 23 h |
|
| 95 |
|
| 96 |
-
Each model's `config.json`
|
| 97 |
|
| 98 |
```bash
|
| 99 |
accelerate launch --num_processes 8 -m unimate.training.train --config configs/uniml3d_60frames_graph_adaln.json
|
|
@@ -111,11 +101,11 @@ config.json index of the models
|
|
| 111 |
samples/step_<NNNNNN>/ skeleton renders of motions sampled during training
|
| 112 |
```
|
| 113 |
|
| 114 |
-
`
|
| 115 |
|
| 116 |
## Versions
|
| 117 |
|
| 118 |
-
- **
|
| 119 |
- **v2** (2026-09-28), over v1_preview: UniML3D `faaa817`; joint limit 70 instead of 60 (98.1% of the clips instead of 86.9%); datasets balanced before object types (Mixamo from under 1% to about 24% of the samples); 100k steps. Includes the cross-attention variant and the Mixamo and Truebones models.
|
| 120 |
- **v1_preview** (2026-09-27): first release, on a pre-release build of UniML3D.
|
| 121 |
|
|
@@ -133,7 +123,7 @@ Checkpoints: [CC BY-NC 4.0](LICENSE). Code: MIT. This covers only our rights in
|
|
| 133 |
|
| 134 |
| Model | Training data |
|
| 135 |
|---|---|
|
| 136 |
-
| `
|
| 137 |
| `unimate_mixamo_f60_v2` | Mixamo |
|
| 138 |
| `unimate_truebones_f60_v2` | Truebones ZOO |
|
| 139 |
|
|
|
|
| 29 |
|
| 30 |
| Model | Architecture | Training data | Joints | Steps | ParamsΒΉ | Status |
|
| 31 |
|---|---|---|---|---|---|---|
|
| 32 |
+
| [`unimate_uniml3d_f60_v3`](unimate_uniml3d_f60_v3) | graph attention, AdaLN text | UniML3D [`d0f19d9`](https://huggingface.co/datasets/Linzhan/UniML3D/tree/d0f19d943038fb782a26c2a615bd9b3d4f3a8728) | 5β70 | 150k | 74.1M | **Recommended** |
|
| 33 |
| [`unimate_uniml3d_f60_v2`](unimate_uniml3d_f60_v2) | graph attention, AdaLN text | UniML3D [`faaa817`](https://huggingface.co/datasets/Linzhan/UniML3D/tree/faaa81773b315247b03f183548e3898dbec2ce80) | 5β70 | 100k | 74.1M | Previous version |
|
| 34 |
| [`unimate_uniml3d_f60_v2_cross_attn`](unimate_uniml3d_f60_v2_cross_attn) | full attention, cross-attention text | UniML3D `faaa817` | 5β70 | 100k | 66.2M | Variant |
|
| 35 |
| [`unimate_mixamo_f60_v2`](unimate_mixamo_f60_v2) | graph attention, AdaLN text | UniML3D `faaa817`, Mixamo | 22 (one rig) | 120k | 47.8M | **Recommended for Mixamo** |
|
| 36 |
+
| [`unimate_truebones_f60_v2`](unimate_truebones_f60_v2) | graph attention, AdaLN text | UniML3D `faaa817`, Truebones | 5β85 | 80k | 47.8M | **Recommended for Truebones** |
|
| 37 |
| [`unimate_uniml3d_f60_v1_preview`](unimate_uniml3d_f60_v1_preview) | graph attention, AdaLN text | UniML3D pre-release build | 5β60 | 120k | 74.1M | Superseded |
|
| 38 |
|
| 39 |
ΒΉ Denoiser only; the frozen `google/flan-t5-base` text encoder is downloaded on first use.
|
|
|
|
| 54 |
From the root of the [code repository](https://github.com/Friedrich-M/UniMate), in its `unimate` environment:
|
| 55 |
|
| 56 |
```bash
|
| 57 |
+
# 1. download a model (for another model or checkpoint, change the folder and the step)
|
| 58 |
+
hf download Linzhan/UniMate --repo-type model --local-dir outputs \
|
| 59 |
+
--include "unimate_uniml3d_f60_v3/*.json" --include "unimate_uniml3d_f60_v3/*.npy" \
|
| 60 |
+
--include "unimate_uniml3d_f60_v3/checkpoints/checkpoint_step_150000.pt"
|
| 61 |
+
|
| 62 |
+
# 2. generate for an example asset shipped with the code (assets/examples/ also has an eagle and a shark)
|
| 63 |
+
python -m unimate.inference.sample --exp_dir outputs/unimate_uniml3d_f60_v3 --asset assets/examples/unitree_go2 \
|
| 64 |
+
--prompt "An object trots forward." "An object rears up on its hind legs." --num_repetitions 3 \
|
| 65 |
+
--output_dir outputs/samples/custom
|
| 66 |
+
|
| 67 |
+
# 3. drive each asset's mesh with its motions (one GLB / FBX per motion)
|
| 68 |
+
bash scripts/run_animate_motion.sh outputs/samples/custom
|
|
|
|
|
|
|
|
|
|
|
|
|
| 69 |
```
|
| 70 |
|
| 71 |
+
For your own rigged GLB / glTF / FBX, `python -m data_process.rig_preprocess run --input <asset> --output_dir outputs/rig/<name>` labels its joints, stops so you can check them, and builds an asset directory that `--asset` takes. Skeletons of the [UniML3D](https://huggingface.co/datasets/Linzhan/UniML3D) dataset are named `<dataset>:<object_type>` (e.g. `mixamo`, `objaverse:<uid>`) once it is downloaded into `dataset/`. The code README covers both, along with prompting, in-betweening, joint editing and motion expansion.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 72 |
|
| 73 |
## Training
|
| 74 |
|
|
|
|
| 76 |
|
| 77 |
| Model | GPUs | Time |
|
| 78 |
|---|---|---|
|
| 79 |
+
| `unimate_uniml3d_f60_v3` | 8Γ H100 | β 35 h |
|
| 80 |
| `unimate_uniml3d_f60_v2` | 8Γ H100 | β 22 h |
|
| 81 |
| `unimate_uniml3d_f60_v2_cross_attn` | 8Γ H100 | β 36 h |
|
| 82 |
| `unimate_mixamo_f60_v2` | 4Γ H100 | β 12 h |
|
| 83 |
| `unimate_truebones_f60_v2` | 4Γ H100 | β 15 h |
|
| 84 |
| `unimate_uniml3d_f60_v1_preview` | 6Γ H100 | β 23 h |
|
| 85 |
|
| 86 |
+
Each model's `config.json` holds the model and data configuration that inference reads. The code repository's `configs/uniml3d_60frames_graph_adaln.json` follows the v3 recipe (at 120k steps; v3 trained 150k), and `configs/{mixamo,truebones}_60frames_graph_adaln.json` those of the Mixamo and Truebones models:
|
| 87 |
|
| 88 |
```bash
|
| 89 |
accelerate launch --num_processes 8 -m unimate.training.train --config configs/uniml3d_60frames_graph_adaln.json
|
|
|
|
| 101 |
samples/step_<NNNNNN>/ skeleton renders of motions sampled during training
|
| 102 |
```
|
| 103 |
|
| 104 |
+
`unimate_uniml3d_f60_v3` holds the checkpoints from 100k to 150k steps (150k recommended), without logs or samples.
|
| 105 |
|
| 106 |
## Versions
|
| 107 |
|
| 108 |
+
- **v3** (2026-10-05), over v2: newer data (UniML3D `d0f19d9`: re-reviewed annotations; 480 Objaverse-XL rigs authored lying down or upside down stood upright instead of filtered); three captions per clip (generic 35%, detailed 25%, normal 40%); fixed per-dataset sampling weights; one normalization pool for all datasets; logit-normal flow time; 150k steps.
|
| 109 |
- **v2** (2026-09-28), over v1_preview: UniML3D `faaa817`; joint limit 70 instead of 60 (98.1% of the clips instead of 86.9%); datasets balanced before object types (Mixamo from under 1% to about 24% of the samples); 100k steps. Includes the cross-attention variant and the Mixamo and Truebones models.
|
| 110 |
- **v1_preview** (2026-09-27): first release, on a pre-release build of UniML3D.
|
| 111 |
|
|
|
|
| 123 |
|
| 124 |
| Model | Training data |
|
| 125 |
|---|---|
|
| 126 |
+
| `unimate_uniml3d_f60_v3`, `_v2`, `_v2_cross_attn`, `_v1_preview` | Truebones ZOO, Mixamo, Objaverse-XL |
|
| 127 |
| `unimate_mixamo_f60_v2` | Mixamo |
|
| 128 |
| `unimate_truebones_f60_v2` | Truebones ZOO |
|
| 129 |
|
config.json
CHANGED
|
@@ -3,7 +3,7 @@
|
|
| 3 |
"code": "https://github.com/Friedrich-M/UniMate",
|
| 4 |
"paper": "https://arxiv.org/abs/2609.05415",
|
| 5 |
"models": {
|
| 6 |
-
"
|
| 7 |
"dataset": "Linzhan/UniML3D",
|
| 8 |
"train_config": "configs/uniml3d_60frames_graph_adaln.json",
|
| 9 |
"attention": "graph",
|
|
@@ -12,8 +12,8 @@
|
|
| 12 |
"latent_dim": 512,
|
| 13 |
"num_frames": 60,
|
| 14 |
"fps": 30,
|
| 15 |
-
"steps":
|
| 16 |
-
"recommended_checkpoint": "checkpoints/
|
| 17 |
"status": "recommended",
|
| 18 |
"dataset_revision": "d0f19d943038fb782a26c2a615bd9b3d4f3a8728"
|
| 19 |
},
|
|
|
|
| 3 |
"code": "https://github.com/Friedrich-M/UniMate",
|
| 4 |
"paper": "https://arxiv.org/abs/2609.05415",
|
| 5 |
"models": {
|
| 6 |
+
"unimate_uniml3d_f60_v3": {
|
| 7 |
"dataset": "Linzhan/UniML3D",
|
| 8 |
"train_config": "configs/uniml3d_60frames_graph_adaln.json",
|
| 9 |
"attention": "graph",
|
|
|
|
| 12 |
"latent_dim": 512,
|
| 13 |
"num_frames": 60,
|
| 14 |
"fps": 30,
|
| 15 |
+
"steps": 150000,
|
| 16 |
+
"recommended_checkpoint": "checkpoints/checkpoint_step_150000.pt",
|
| 17 |
"status": "recommended",
|
| 18 |
"dataset_revision": "d0f19d943038fb782a26c2a615bd9b3d4f3a8728"
|
| 19 |
},
|
{unimate_uniml3d_f60_v3_preview β unimate_uniml3d_f60_v3}/checkpoints/checkpoint_step_100000.pt
RENAMED
|
File without changes
|
unimate_uniml3d_f60_v3_preview/checkpoints/checkpoint_step_80000.pt β unimate_uniml3d_f60_v3/checkpoints/checkpoint_step_110000.pt
RENAMED
|
@@ -1,3 +1,3 @@
|
|
| 1 |
version https://git-lfs.github.com/spec/v1
|
| 2 |
-
oid sha256:
|
| 3 |
-
size
|
|
|
|
| 1 |
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:f2d78b1e398d70eff38192f6fb4679b4c2dd956ccd1589076a0bd155a1c90d4e
|
| 3 |
+
size 1185836040
|
unimate_uniml3d_f60_v3_preview/checkpoints/checkpoint_step_90000.pt β unimate_uniml3d_f60_v3/checkpoints/checkpoint_step_120000.pt
RENAMED
|
@@ -1,3 +1,3 @@
|
|
| 1 |
version https://git-lfs.github.com/spec/v1
|
| 2 |
-
oid sha256:
|
| 3 |
-
size
|
|
|
|
| 1 |
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:93acd9af9f11e6afe1c6dcadaa86d065887f431865e9db3fd56d918015222662
|
| 3 |
+
size 1185836040
|
unimate_uniml3d_f60_v3/checkpoints/checkpoint_step_130000.pt
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:6c61ad69f9a3cb7b4213de3b7fab7fe297c7853a7a5f12b03a7c5b196c3c9c44
|
| 3 |
+
size 1185836040
|
unimate_uniml3d_f60_v3/checkpoints/checkpoint_step_140000.pt
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:6969ae36f6329e84d3ed8ed4ecb7758e6fc212ceeba28a816c777c560fde4d53
|
| 3 |
+
size 1185836040
|
unimate_uniml3d_f60_v3/checkpoints/checkpoint_step_150000.pt
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:f991ddd87262c251f4681d18297a6163ab4f139daa28c86d5ef0a66771df7bc6
|
| 3 |
+
size 1185836040
|
{unimate_uniml3d_f60_v3_preview β unimate_uniml3d_f60_v3}/config.json
RENAMED
|
File without changes
|
{unimate_uniml3d_f60_v3_preview β unimate_uniml3d_f60_v3}/dataset_stats.npy
RENAMED
|
File without changes
|