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 files

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LjgwfhefMhyk7qWfFTek8y

.gitignore CHANGED
@@ -6,7 +6,5 @@
6
  # Training samples: only the videos are uploaded
7
  */samples/**/*.npy
8
  */samples/tpose/
9
- # unimate_uniml3d_f60_v3_preview: training logs stay local
10
- unimate_uniml3d_f60_v3_preview/logs/
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
- | [`unimate_uniml3d_f60_v3_preview`](unimate_uniml3d_f60_v3_preview) | graph attention, AdaLN text | UniML3D [`d0f19d9`](https://huggingface.co/datasets/Linzhan/UniML3D/tree/d0f19d943038fb782a26c2a615bd9b3d4f3a8728) | 5–70 | 100k | 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–100 | 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,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 "unimate_uniml3d_f60_v3_preview/*.json" --include "unimate_uniml3d_f60_v3_preview/*.npy" \
60
- --include "unimate_uniml3d_f60_v3_preview/checkpoints/checkpoint_step_100000.pt"
61
-
62
- # 2. prepare a rigged GLB / glTF / FBX, animated or not: label its joints, check REVIEW.md, then build
63
- python -m data_process.rig_preprocess run --input robot.glb --output_dir outputs/rig/robot
64
- python -m data_process.rig_preprocess run --input robot.glb --output_dir outputs/rig/robot \
65
- --annotation outputs/rig/robot/annotation.json
66
-
67
- # 3. generate: every prompt on every asset (dataset skeletons by name, e.g. truebones:Horse)
68
- python -m unimate.inference.sample --exp_dir outputs/unimate_uniml3d_f60_v3_preview \
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
- A dataset skeleton needs only its source's conditioning, plus canonical meshes to drive:
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
- | `unimate_uniml3d_f60_v3_preview` | 8Γ— H100 | β‰ˆ 23 h |
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` is its full training configuration. The code repository's `configs/uniml3d_60frames_graph_adaln.json` follows the v3_preview recipe, and `configs/{mixamo,truebones}_60frames_graph_adaln.json` those of the Mixamo and Truebones models:
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
- `unimate_uniml3d_f60_v3_preview` holds its latest three checkpoints, without logs or samples.
115
 
116
  ## Versions
117
 
118
- - **v3_preview** (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.
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
- | `unimate_uniml3d_f60_v3_preview`, `_v2`, `_v2_cross_attn`, `_v1_preview` | Truebones ZOO, Mixamo, Objaverse-XL |
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
- "unimate_uniml3d_f60_v3_preview": {
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": 100000,
16
- "recommended_checkpoint": "checkpoints/checkpoint_step_100000.pt",
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:e6006df925fdeed2d305740424a0ec8fe78a43769b449f176336e5d88eb8e822
3
- size 1185834029
 
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:c7ed43ab5c370c69b2ae3a1bf882fc326af412df3deca8ad614df2dba6e67e22
3
- size 1185834029
 
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