Add MotionBricks model release files
Browse filesThis view is limited to 50 files because it contains too many changes. See raw diff
- README.md +82 -0
- SHA256SUMS +61 -0
- g1/README.md +453 -0
- g1/SHA256SUMS +33 -0
- g1/manifest.json +181 -0
- g1/out/SHA256SUMS +30 -0
- g1/out/motionbricks_pose/version_1/checkpoints/model-step=2000000.json +14 -0
- g1/out/motionbricks_pose/version_1/checkpoints/model-step=2000000.safetensors +3 -0
- g1/out/motionbricks_pose/version_1/config.yaml +245 -0
- g1/out/motionbricks_pose/version_1/hparams.yaml +245 -0
- g1/out/motionbricks_pose/version_1/meta.yaml +1 -0
- g1/out/motionbricks_pose/version_1/skeleton/joints.npy +3 -0
- g1/out/motionbricks_pose/version_1/skeleton/parents.npy +3 -0
- g1/out/motionbricks_pose/version_1/skeleton/skeleton.yaml +6 -0
- g1/out/motionbricks_pose/version_1/stats/motion/mean.npy +3 -0
- g1/out/motionbricks_pose/version_1/stats/motion/std.npy +3 -0
- g1/out/motionbricks_root/version_1/checkpoints/model-step=2000000.json +14 -0
- g1/out/motionbricks_root/version_1/checkpoints/model-step=2000000.safetensors +3 -0
- g1/out/motionbricks_root/version_1/config.yaml +223 -0
- g1/out/motionbricks_root/version_1/hparams.yaml +223 -0
- g1/out/motionbricks_root/version_1/meta.yaml +1 -0
- g1/out/motionbricks_root/version_1/skeleton/joints.npy +3 -0
- g1/out/motionbricks_root/version_1/skeleton/parents.npy +3 -0
- g1/out/motionbricks_root/version_1/skeleton/skeleton.yaml +6 -0
- g1/out/motionbricks_root/version_1/stats/motion/mean.npy +3 -0
- g1/out/motionbricks_root/version_1/stats/motion/std.npy +3 -0
- g1/out/motionbricks_vqvae/version_1/checkpoints/model-step=2000000.json +555 -0
- g1/out/motionbricks_vqvae/version_1/checkpoints/model-step=2000000.safetensors +3 -0
- g1/out/motionbricks_vqvae/version_1/config.yaml +228 -0
- g1/out/motionbricks_vqvae/version_1/hparams.yaml +228 -0
- g1/out/motionbricks_vqvae/version_1/meta.yaml +1 -0
- g1/out/motionbricks_vqvae/version_1/skeleton/joints.npy +3 -0
- g1/out/motionbricks_vqvae/version_1/skeleton/parents.npy +3 -0
- g1/out/motionbricks_vqvae/version_1/skeleton/skeleton.yaml +6 -0
- g1/out/motionbricks_vqvae/version_1/stats/motion/mean.npy +3 -0
- g1/out/motionbricks_vqvae/version_1/stats/motion/std.npy +3 -0
- soma/README.md +374 -0
- soma/SHA256SUMS +24 -0
- soma/manifest.json +136 -0
- soma/soma-v6-nova-4n8g-ea43dd8-fp32-v1/SHA256SUMS +21 -0
- soma/soma-v6-nova-4n8g-ea43dd8-fp32-v1/mmm-v6-soma-pose-nova-4n8g-ea43dd8-fp32-v1/version_0/checkpoints/model-step=1500000.json +669 -0
- soma/soma-v6-nova-4n8g-ea43dd8-fp32-v1/mmm-v6-soma-pose-nova-4n8g-ea43dd8-fp32-v1/version_0/checkpoints/model-step=1500000.safetensors +3 -0
- soma/soma-v6-nova-4n8g-ea43dd8-fp32-v1/mmm-v6-soma-pose-nova-4n8g-ea43dd8-fp32-v1/version_0/config.yaml +250 -0
- soma/soma-v6-nova-4n8g-ea43dd8-fp32-v1/mmm-v6-soma-pose-nova-4n8g-ea43dd8-fp32-v1/version_0/skeleton/joints.npy +3 -0
- soma/soma-v6-nova-4n8g-ea43dd8-fp32-v1/mmm-v6-soma-pose-nova-4n8g-ea43dd8-fp32-v1/version_0/skeleton/skeleton.yaml +6 -0
- soma/soma-v6-nova-4n8g-ea43dd8-fp32-v1/mmm-v6-soma-pose-nova-4n8g-ea43dd8-fp32-v1/version_0/stats/motion/mean.npy +3 -0
- soma/soma-v6-nova-4n8g-ea43dd8-fp32-v1/mmm-v6-soma-pose-nova-4n8g-ea43dd8-fp32-v1/version_0/stats/motion/std.npy +3 -0
- soma/soma-v6-nova-4n8g-ea43dd8-fp32-v1/mmm-v6-soma-root-nova-4n8g-ea43dd8-fp32-v1/version_0/checkpoints/model-step=1500000.json +705 -0
- soma/soma-v6-nova-4n8g-ea43dd8-fp32-v1/mmm-v6-soma-root-nova-4n8g-ea43dd8-fp32-v1/version_0/checkpoints/model-step=1500000.safetensors +3 -0
- soma/soma-v6-nova-4n8g-ea43dd8-fp32-v1/mmm-v6-soma-root-nova-4n8g-ea43dd8-fp32-v1/version_0/config.yaml +228 -0
README.md
ADDED
|
@@ -0,0 +1,82 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
---
|
| 2 |
+
library_name: pytorch
|
| 3 |
+
tags:
|
| 4 |
+
- nvidia
|
| 5 |
+
- motionbricks
|
| 6 |
+
- motion-generation
|
| 7 |
+
- pose-conditioned
|
| 8 |
+
- robotics
|
| 9 |
+
- animation
|
| 10 |
+
---
|
| 11 |
+
|
| 12 |
+
# MotionBricks
|
| 13 |
+
|
| 14 |
+
[Project page](https://nvlabs.github.io/motionbricks/) · [Paper](https://arxiv.org/abs/2604.24833)
|
| 15 |
+
|
| 16 |
+
MotionBricks generates motion in real time for humanoid robots and human characters.
|
| 17 |
+
Give it the character's recent poses and the poses it should reach next, and it
|
| 18 |
+
generates the movement connecting them.
|
| 19 |
+
|
| 20 |
+
Smart Primitives turn target poses into reusable building blocks for navigation
|
| 21 |
+
and object interactions, without retraining the model. The accompanying software
|
| 22 |
+
includes SOMA and Unitree G1 demos built with Newton and Warp, plus tools for
|
| 23 |
+
creating your own primitives and scenes.
|
| 24 |
+
|
| 25 |
+
## Models
|
| 26 |
+
|
| 27 |
+
This repository contains pretrained SafeTensors weights for two model families:
|
| 28 |
+
|
| 29 |
+
| Model | Use | Details |
|
| 30 |
+
| --- | --- | --- |
|
| 31 |
+
| SOMA | Generate human motion on the SOMA skeleton. | [Model card](soma/README.md) |
|
| 32 |
+
| Unitree G1 | Generate motion for the Unitree G1 humanoid. | [Model card](g1/README.md) |
|
| 33 |
+
|
| 34 |
+
Each folder includes the model's weights, configuration and supporting files.
|
| 35 |
+
Keep them together. The SOMA and G1 files are not interchangeable.
|
| 36 |
+
|
| 37 |
+
## Get started
|
| 38 |
+
|
| 39 |
+
**To try the demos**, start with the [MotionBricks software](https://github.com/NVlabs/motionbricks).
|
| 40 |
+
It includes ready-to-use ONNX models, so you do not need to download these
|
| 41 |
+
checkpoints to run it. The TensorRT demo runtime requires an NVIDIA GPU.
|
| 42 |
+
|
| 43 |
+
**To export ONNX models or build another runtime**, download the weight packages:
|
| 44 |
+
|
| 45 |
+
```sh
|
| 46 |
+
hf download nvidia/MotionBricks --local-dir MotionBricks
|
| 47 |
+
```
|
| 48 |
+
|
| 49 |
+
For just one model, add `--include "soma/*"` or `--include "g1/*"`.
|
| 50 |
+
The files are already unpacked. Follow the software's `tools/onnx` guide to export
|
| 51 |
+
them, using the matching family folder.
|
| 52 |
+
|
| 53 |
+
## Model details and limitations
|
| 54 |
+
|
| 55 |
+
The family cards explain each model's inputs, outputs, training data, evaluation
|
| 56 |
+
and limitations. Each model uses three networks together. These weight
|
| 57 |
+
packages are not Transformers `from_pretrained` models, and this repository does
|
| 58 |
+
not include a training pipeline or the full training data. The packages contain
|
| 59 |
+
weights and inference metadata, not the optimizer and training-loop state needed
|
| 60 |
+
to resume the original training runs.
|
| 61 |
+
|
| 62 |
+
The G1 package does not include the original demo motion bank, `out/G1-clip.ckpt`.
|
| 63 |
+
Demo motion examples are separate from the model weights.
|
| 64 |
+
|
| 65 |
+
MotionBricks generates motion, not a controller for a physical robot. Running the
|
| 66 |
+
motion on hardware requires a separate tracking controller, robot-limit checks
|
| 67 |
+
and safety validation.
|
| 68 |
+
|
| 69 |
+
## File verification
|
| 70 |
+
|
| 71 |
+
Each model folder includes a file manifest and SHA-256 checksums:
|
| 72 |
+
|
| 73 |
+
- SOMA: [manifest](soma/manifest.json) · [checksums](https://huggingface.co/nvidia/MotionBricks/blob/main/soma/SHA256SUMS)
|
| 74 |
+
- Unitree G1: [manifest](g1/manifest.json) · [checksums](https://huggingface.co/nvidia/MotionBricks/blob/main/g1/SHA256SUMS)
|
| 75 |
+
|
| 76 |
+
## Terms
|
| 77 |
+
|
| 78 |
+
- **Models:** the SOMA and G1 weights use the [NVIDIA Open Model Agreement](https://www.nvidia.com/en-us/agreements/enterprise-software/nvidia-open-model-agreement/). It permits commercial use and redistribution of modified models, subject to its terms.
|
| 79 |
+
- **Software:** the accompanying MotionBricks code uses [Apache 2.0](https://github.com/NVlabs/motionbricks/blob/main/LICENSE).
|
| 80 |
+
- **Motion samples:** the separately bundled BONES samples and listed derivatives use the [NVIDIA Sample Data Evaluation License](https://github.com/NVlabs/motionbricks/blob/main/assets/motions/LICENSE.txt), for internal evaluation and testing of NVIDIA technologies. See the [sample notice](https://github.com/NVlabs/motionbricks/blob/main/assets/motions/README.md) for the exact files covered.
|
| 81 |
+
|
| 82 |
+
The model agreement does not replace the software, sample-data or third-party asset terms. This repository does not include the sample motions or the training dataset.
|
SHA256SUMS
ADDED
|
@@ -0,0 +1,61 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
11ad7efa24975ee4b0c3c3a38ed18737f0658a5f75a0a96787b576a78a023361 .gitattributes
|
| 2 |
+
5e7c69d495522d39130973748a07e62af9fe294914ce46de56a002d2c16818ee README.md
|
| 3 |
+
adcb83b61946ffe4ac974cc3d2e7c2aa8f9832dbe75e0c29e16d53b0ae0aa44c g1/README.md
|
| 4 |
+
d4d0a026810ce063157afa5609f90825adbc8c5e717525c8dfb53721e9a3d731 g1/SHA256SUMS
|
| 5 |
+
d8bd82393b308d27bfc3cb1670d4e4723794c3b349fa3b83435ce0f93e5b5065 g1/manifest.json
|
| 6 |
+
359a134cce0e863346024bc8fe37286666e2e35c98588267ef4bb989bd67280d g1/out/SHA256SUMS
|
| 7 |
+
5f4bfa948eadb13a7b0d186ed2cba2e6f837e6709898b8e932aa345ff853515e g1/out/motionbricks_pose/version_1/checkpoints/model-step=2000000.json
|
| 8 |
+
2154d80cac2beb4bb4074b4db92ae59d9fdfbc58651550c32941fe8527d28313 g1/out/motionbricks_pose/version_1/checkpoints/model-step=2000000.safetensors
|
| 9 |
+
273af770d328b458510ee6049fac8e38fa486c8792cc27b3515dddc094a7cd1f g1/out/motionbricks_pose/version_1/config.yaml
|
| 10 |
+
3c482b9f810a9c4921d2e9fe46dae4e9e70d48ac9ea7d7b19a91fad2490d75e5 g1/out/motionbricks_pose/version_1/hparams.yaml
|
| 11 |
+
f70ba7887c5db6cd77739e573bbb734af0ec79a8cbabd9e435b7c72a5d040663 g1/out/motionbricks_pose/version_1/meta.yaml
|
| 12 |
+
6a682fc9d36204eb8e58c6b29eb0881e36242ed94dff078c82a373cdc6783ab0 g1/out/motionbricks_pose/version_1/skeleton/joints.npy
|
| 13 |
+
02754fe01a8dcad13b9e3f95f7a696f56bccc5eeb5f5bf701f31cec88e23b1c4 g1/out/motionbricks_pose/version_1/skeleton/parents.npy
|
| 14 |
+
5820a223977a36e04e75824a7f720b57225ac30a067bdd32bc312469f3644050 g1/out/motionbricks_pose/version_1/skeleton/skeleton.yaml
|
| 15 |
+
ca390f0081e2373ab71e860a3546cb70cc11fdfac6ce525155403e047b66fdea g1/out/motionbricks_pose/version_1/stats/motion/mean.npy
|
| 16 |
+
fca7dd6135cbe96504b1307a7db97e9004556937a2fc72d139077b962cee6bd7 g1/out/motionbricks_pose/version_1/stats/motion/std.npy
|
| 17 |
+
5df3e2521ba80997251c72bf2f5dd22cea301df458a407ab34d5e75f28855b5e g1/out/motionbricks_root/version_1/checkpoints/model-step=2000000.json
|
| 18 |
+
da6ff2c05e45dfe4ac5e8e8362a6404f5c927fcddb18410e6804b61e55d4f2dc g1/out/motionbricks_root/version_1/checkpoints/model-step=2000000.safetensors
|
| 19 |
+
b174f03a333f7f7857c3e2b8a32da517caddd198f228efeea2e203d046ce212a g1/out/motionbricks_root/version_1/config.yaml
|
| 20 |
+
15dfadeab65b8ab1931b4e5257a2f9ebfa57e559510af1bd5baa96cfe2baeaf5 g1/out/motionbricks_root/version_1/hparams.yaml
|
| 21 |
+
c541e9d63b9b876a56c031a360d4d3929013b83515510a10f47ae63f6c7c8f17 g1/out/motionbricks_root/version_1/meta.yaml
|
| 22 |
+
6a682fc9d36204eb8e58c6b29eb0881e36242ed94dff078c82a373cdc6783ab0 g1/out/motionbricks_root/version_1/skeleton/joints.npy
|
| 23 |
+
02754fe01a8dcad13b9e3f95f7a696f56bccc5eeb5f5bf701f31cec88e23b1c4 g1/out/motionbricks_root/version_1/skeleton/parents.npy
|
| 24 |
+
5820a223977a36e04e75824a7f720b57225ac30a067bdd32bc312469f3644050 g1/out/motionbricks_root/version_1/skeleton/skeleton.yaml
|
| 25 |
+
ca390f0081e2373ab71e860a3546cb70cc11fdfac6ce525155403e047b66fdea g1/out/motionbricks_root/version_1/stats/motion/mean.npy
|
| 26 |
+
fca7dd6135cbe96504b1307a7db97e9004556937a2fc72d139077b962cee6bd7 g1/out/motionbricks_root/version_1/stats/motion/std.npy
|
| 27 |
+
ceaa8820137c55ddc472a499307e8fbf4f9e9e4c503e73b967fa43ae0afc2141 g1/out/motionbricks_vqvae/version_1/checkpoints/model-step=2000000.json
|
| 28 |
+
bf9c31173b334303bf392d184c24701ad1a095b3e94a5fe6b11db4d01343a454 g1/out/motionbricks_vqvae/version_1/checkpoints/model-step=2000000.safetensors
|
| 29 |
+
027a2d7ba5f49cadeadbcc9a6b0c6784d657d5a842e41ff820c5233f1cd6c1f3 g1/out/motionbricks_vqvae/version_1/config.yaml
|
| 30 |
+
7af860d6c144ff71ccdb4085b8413be892194ef419031b81e231502c2181576d g1/out/motionbricks_vqvae/version_1/hparams.yaml
|
| 31 |
+
7bdf23605dcb89708a39bae33e12de59ebf4d216ba09b91931a2f813cc57e8c7 g1/out/motionbricks_vqvae/version_1/meta.yaml
|
| 32 |
+
6a682fc9d36204eb8e58c6b29eb0881e36242ed94dff078c82a373cdc6783ab0 g1/out/motionbricks_vqvae/version_1/skeleton/joints.npy
|
| 33 |
+
02754fe01a8dcad13b9e3f95f7a696f56bccc5eeb5f5bf701f31cec88e23b1c4 g1/out/motionbricks_vqvae/version_1/skeleton/parents.npy
|
| 34 |
+
5820a223977a36e04e75824a7f720b57225ac30a067bdd32bc312469f3644050 g1/out/motionbricks_vqvae/version_1/skeleton/skeleton.yaml
|
| 35 |
+
ca390f0081e2373ab71e860a3546cb70cc11fdfac6ce525155403e047b66fdea g1/out/motionbricks_vqvae/version_1/stats/motion/mean.npy
|
| 36 |
+
fca7dd6135cbe96504b1307a7db97e9004556937a2fc72d139077b962cee6bd7 g1/out/motionbricks_vqvae/version_1/stats/motion/std.npy
|
| 37 |
+
50ac7be9443f1bd677a648c610f29b8dd9c6917dddc95a89f7bdbad410638744 soma/README.md
|
| 38 |
+
a740044923f5dd020d9bdfe2e7a11b181dfab16fae9d0091e57850e082cb964d soma/SHA256SUMS
|
| 39 |
+
9ae6cd2d4386b5178e62d47f03f7a1750326a729b919f545fe5cd4a4b966bff0 soma/manifest.json
|
| 40 |
+
d7ead5ef043a9d1e99071b6f8aedc70753560fdc0a613cc1287f1561b50fce3c soma/soma-v6-nova-4n8g-ea43dd8-fp32-v1/SHA256SUMS
|
| 41 |
+
4ad901e6eb008f40bb5eae22edf25a9d42b3ac553e0c55657a63a0e218d8d015 soma/soma-v6-nova-4n8g-ea43dd8-fp32-v1/mmm-v6-soma-pose-nova-4n8g-ea43dd8-fp32-v1/version_0/checkpoints/model-step=1500000.json
|
| 42 |
+
8537d9d33a880ff1df6c16c28ed061d60c461a5918d70b1cf99251ff91a10a10 soma/soma-v6-nova-4n8g-ea43dd8-fp32-v1/mmm-v6-soma-pose-nova-4n8g-ea43dd8-fp32-v1/version_0/checkpoints/model-step=1500000.safetensors
|
| 43 |
+
c2e3b54d5c6aaf0fbcd1e57b61c9306991bdaf841a609c088944c4a460012885 soma/soma-v6-nova-4n8g-ea43dd8-fp32-v1/mmm-v6-soma-pose-nova-4n8g-ea43dd8-fp32-v1/version_0/config.yaml
|
| 44 |
+
57add41fb635ad9b43e85478954c05087b07d57184676ebb5cfe3c5864b5daac soma/soma-v6-nova-4n8g-ea43dd8-fp32-v1/mmm-v6-soma-pose-nova-4n8g-ea43dd8-fp32-v1/version_0/skeleton/joints.npy
|
| 45 |
+
8c3ae89053844b00de3a011cad142b57ceed727a7662e51ad1fd4878a1693a91 soma/soma-v6-nova-4n8g-ea43dd8-fp32-v1/mmm-v6-soma-pose-nova-4n8g-ea43dd8-fp32-v1/version_0/skeleton/skeleton.yaml
|
| 46 |
+
802f79631ea88a1a920cf44725f5d0e9973a0c8d7adb5359b01bd7a5af57492d soma/soma-v6-nova-4n8g-ea43dd8-fp32-v1/mmm-v6-soma-pose-nova-4n8g-ea43dd8-fp32-v1/version_0/stats/motion/mean.npy
|
| 47 |
+
1a97818fea2a10e562de059013b081ecf7943d6815a36396f0d94f54ad26acb6 soma/soma-v6-nova-4n8g-ea43dd8-fp32-v1/mmm-v6-soma-pose-nova-4n8g-ea43dd8-fp32-v1/version_0/stats/motion/std.npy
|
| 48 |
+
70571a550fda3cfa9fdb1bd3fed502dde27e1f3bcac58546af54a4e8e14705a3 soma/soma-v6-nova-4n8g-ea43dd8-fp32-v1/mmm-v6-soma-root-nova-4n8g-ea43dd8-fp32-v1/version_0/checkpoints/model-step=1500000.json
|
| 49 |
+
a48d48c3d8ff98c825ca315797644789ae37f2db9069779a3118f42e84f4f29e soma/soma-v6-nova-4n8g-ea43dd8-fp32-v1/mmm-v6-soma-root-nova-4n8g-ea43dd8-fp32-v1/version_0/checkpoints/model-step=1500000.safetensors
|
| 50 |
+
6ef85c1296e5ba860f79920222684383aa76573b9dbf3299378f05eaf7971d56 soma/soma-v6-nova-4n8g-ea43dd8-fp32-v1/mmm-v6-soma-root-nova-4n8g-ea43dd8-fp32-v1/version_0/config.yaml
|
| 51 |
+
57add41fb635ad9b43e85478954c05087b07d57184676ebb5cfe3c5864b5daac soma/soma-v6-nova-4n8g-ea43dd8-fp32-v1/mmm-v6-soma-root-nova-4n8g-ea43dd8-fp32-v1/version_0/skeleton/joints.npy
|
| 52 |
+
8c3ae89053844b00de3a011cad142b57ceed727a7662e51ad1fd4878a1693a91 soma/soma-v6-nova-4n8g-ea43dd8-fp32-v1/mmm-v6-soma-root-nova-4n8g-ea43dd8-fp32-v1/version_0/skeleton/skeleton.yaml
|
| 53 |
+
802f79631ea88a1a920cf44725f5d0e9973a0c8d7adb5359b01bd7a5af57492d soma/soma-v6-nova-4n8g-ea43dd8-fp32-v1/mmm-v6-soma-root-nova-4n8g-ea43dd8-fp32-v1/version_0/stats/motion/mean.npy
|
| 54 |
+
1a97818fea2a10e562de059013b081ecf7943d6815a36396f0d94f54ad26acb6 soma/soma-v6-nova-4n8g-ea43dd8-fp32-v1/mmm-v6-soma-root-nova-4n8g-ea43dd8-fp32-v1/version_0/stats/motion/std.npy
|
| 55 |
+
f3518cde99c51f5177a08c1226a45d9992d23e9bb985e658847957cc287a9d00 soma/soma-v6-nova-4n8g-ea43dd8-fp32-v1/vqvae-v6-soma-nova-4n8g-ea43dd8-fp32-v1/version_0/checkpoints/model-step=1500000.json
|
| 56 |
+
ba0d1db48ba7182ef5d1a72268bfaa1a196f1f1fbf00144c046d947b90684a1a soma/soma-v6-nova-4n8g-ea43dd8-fp32-v1/vqvae-v6-soma-nova-4n8g-ea43dd8-fp32-v1/version_0/checkpoints/model-step=1500000.safetensors
|
| 57 |
+
826e58115a0baef638f5a4e42f477d12776a82ac6f0dcda16bc6b8454a88342e soma/soma-v6-nova-4n8g-ea43dd8-fp32-v1/vqvae-v6-soma-nova-4n8g-ea43dd8-fp32-v1/version_0/config.yaml
|
| 58 |
+
57add41fb635ad9b43e85478954c05087b07d57184676ebb5cfe3c5864b5daac soma/soma-v6-nova-4n8g-ea43dd8-fp32-v1/vqvae-v6-soma-nova-4n8g-ea43dd8-fp32-v1/version_0/skeleton/joints.npy
|
| 59 |
+
8c3ae89053844b00de3a011cad142b57ceed727a7662e51ad1fd4878a1693a91 soma/soma-v6-nova-4n8g-ea43dd8-fp32-v1/vqvae-v6-soma-nova-4n8g-ea43dd8-fp32-v1/version_0/skeleton/skeleton.yaml
|
| 60 |
+
802f79631ea88a1a920cf44725f5d0e9973a0c8d7adb5359b01bd7a5af57492d soma/soma-v6-nova-4n8g-ea43dd8-fp32-v1/vqvae-v6-soma-nova-4n8g-ea43dd8-fp32-v1/version_0/stats/motion/mean.npy
|
| 61 |
+
1a97818fea2a10e562de059013b081ecf7943d6815a36396f0d94f54ad26acb6 soma/soma-v6-nova-4n8g-ea43dd8-fp32-v1/vqvae-v6-soma-nova-4n8g-ea43dd8-fp32-v1/version_0/stats/motion/std.npy
|
g1/README.md
ADDED
|
@@ -0,0 +1,453 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
---
|
| 2 |
+
library_name: pytorch
|
| 3 |
+
tags:
|
| 4 |
+
- nvidia
|
| 5 |
+
- motionbricks
|
| 6 |
+
- unitree-g1
|
| 7 |
+
- motion-generation
|
| 8 |
+
- pose-conditioned
|
| 9 |
+
- robotics
|
| 10 |
+
---
|
| 11 |
+
|
| 12 |
+
# MotionBricks Unitree G1
|
| 13 |
+
|
| 14 |
+
[Project page](https://nvlabs.github.io/motionbricks/) · [Paper](https://arxiv.org/abs/2604.24833) · [Original G1 implementation](https://github.com/NVlabs/GR00T-WholeBodyControl/tree/main/motionbricks)
|
| 15 |
+
|
| 16 |
+
## Model Description
|
| 17 |
+
|
| 18 |
+
MotionBricks Unitree G1 generates robot reference motion from recent motion, target poses,
|
| 19 |
+
and root-motion constraints. Applications can update targets and feed generated motion back
|
| 20 |
+
into the model to produce continuous locomotion and transitions. A separate controller is
|
| 21 |
+
needed to execute that motion on a physical robot.
|
| 22 |
+
|
| 23 |
+
NVIDIA developed the original pretrained weights for the MotionBricks
|
| 24 |
+
subproject in GR00T Whole-Body Control. This package stores those weights in SafeTensors format.
|
| 25 |
+
The model uses a 34-joint skeletal representation of Unitree G1, with separate components for
|
| 26 |
+
pose tokenization, pose prediction, and root-motion prediction. Its pose tokenizer is a
|
| 27 |
+
vector-quantized variational autoencoder (VQ-VAE).
|
| 28 |
+
|
| 29 |
+
This model is intended for commercial and non-commercial motion-generation applications.
|
| 30 |
+
|
| 31 |
+
### Where to Start
|
| 32 |
+
|
| 33 |
+
To run MotionBricks in an application, start with the [G1 ONNX model and runtime](https://github.com/NVlabs/motionbricks/blob/main/docs/unitree_g1_model.md).
|
| 34 |
+
Use the checkpoints on this page to work with the individual PyTorch components or create
|
| 35 |
+
ONNX exports. [Download the complete G1 package](#download-and-files), then follow the
|
| 36 |
+
[exporter guide](https://github.com/NVlabs/motionbricks/blob/main/tools/onnx/README.md). A training pipeline is not included.
|
| 37 |
+
|
| 38 |
+
| Property | Value |
|
| 39 |
+
| --- | --- |
|
| 40 |
+
| Model family | MotionBricks |
|
| 41 |
+
| Model version | MotionBricks-G1-RP-v1 |
|
| 42 |
+
| Task | Pose-conditioned robot motion generation and inbetweening |
|
| 43 |
+
| Robot | Unitree G1, floating pelvis and 29 joint angles |
|
| 44 |
+
| Skeleton | Unitree G1, 34 model joints |
|
| 45 |
+
| FPS | 30 |
|
| 46 |
+
| Checkpoint components | Pose VQ-VAE, pose model, root model |
|
| 47 |
+
| Checkpoint step | 2,000,000 for each model |
|
| 48 |
+
| Weight format | SafeTensors (`.safetensors`) |
|
| 49 |
+
|
| 50 |
+
## License and Terms of Use
|
| 51 |
+
|
| 52 |
+
Use of this model is governed by the [NVIDIA Open Model Agreement](https://www.nvidia.com/en-us/agreements/enterprise-software/nvidia-open-model-agreement/).
|
| 53 |
+
It permits commercial use and redistribution of modified models, subject to the agreement's terms.
|
| 54 |
+
|
| 55 |
+
- The accompanying software uses [Apache 2.0](https://github.com/NVlabs/motionbricks/blob/main/LICENSE).
|
| 56 |
+
- The listed Bones-derived human BVH and G1 CSV samples use the
|
| 57 |
+
[NVIDIA Sample Data Evaluation License](https://github.com/NVlabs/motionbricks/blob/main/assets/motions/LICENSE.txt).
|
| 58 |
+
They are for internal evaluation and testing of NVIDIA technologies. See the
|
| 59 |
+
[sample notice](https://github.com/NVlabs/motionbricks/blob/main/assets/motions/README.md) for the exact files covered.
|
| 60 |
+
- Robot assets and third-party dependencies retain their [respective licenses](https://github.com/NVlabs/motionbricks/tree/main/licenses).
|
| 61 |
+
|
| 62 |
+
## Deployment Geography
|
| 63 |
+
|
| 64 |
+
Global.
|
| 65 |
+
|
| 66 |
+
## Intended Uses
|
| 67 |
+
|
| 68 |
+
**Use Case:** Pose-conditioned G1 reference-motion generation for animation, robotics simulation,
|
| 69 |
+
and downstream control experiments.
|
| 70 |
+
|
| 71 |
+
**Intended Users:** Developers and researchers integrating G1 motion generation into their applications.
|
| 72 |
+
Generated motion is not validated for physical robot control.
|
| 73 |
+
|
| 74 |
+
## Model Package
|
| 75 |
+
|
| 76 |
+
This card covers `MotionBricks-G1-RP-v1` in the
|
| 77 |
+
[`g1/` folder](https://huggingface.co/nvidia/MotionBricks/tree/main/g1).
|
| 78 |
+
The SOMA package is documented separately.
|
| 79 |
+
|
| 80 |
+
The weights come from the original
|
| 81 |
+
[GR00T Whole-Body Control implementation](https://github.com/NVlabs/GR00T-WholeBodyControl/tree/b042411fae38ee4d1af9aac82a37a1f8d14d6dd0/motionbricks/out).
|
| 82 |
+
They are stored in SafeTensors format with numeric skeleton arrays. The accompanying Open Neural Network Exchange (ONNX)
|
| 83 |
+
export changes the runtime interface, not the training of these weights.
|
| 84 |
+
|
| 85 |
+
## References
|
| 86 |
+
|
| 87 |
+
T. Wang, O. Dionne, M. De Ruyter, D. Minor, D. Rempe, K. Zhao, M. Petrovich,
|
| 88 |
+
Y. Yuan, C. Li, Z. Luo, B. Robison, X. Blackwell, B. Antoniazzi, X. B. Peng,
|
| 89 |
+
Y. Zhu, and S. Yuen, **MotionBricks: Scalable Real-Time Motions with
|
| 90 |
+
Modular Latent Generative Model and Smart Primitives**, 2026.
|
| 91 |
+
[ACM Transactions on Graphics](https://doi.org/10.1145/3811334). [arXiv:2604.24833](https://arxiv.org/abs/2604.24833).
|
| 92 |
+
|
| 93 |
+
## Download and Files
|
| 94 |
+
|
| 95 |
+
Download the G1 model files from the shared MotionBricks repository:
|
| 96 |
+
|
| 97 |
+
```sh
|
| 98 |
+
hf download nvidia/MotionBricks --include "g1/*" --local-dir MotionBricks
|
| 99 |
+
```
|
| 100 |
+
|
| 101 |
+
The expanded files preserve the original `out/` layout under `g1/`. No archive
|
| 102 |
+
extraction is required.
|
| 103 |
+
|
| 104 |
+
| Component | Location within the `g1/` folder |
|
| 105 |
+
| --- | --- |
|
| 106 |
+
| Pose VQ-VAE | `out/motionbricks_vqvae/version_1/` |
|
| 107 |
+
| Pose model | `out/motionbricks_pose/version_1/` |
|
| 108 |
+
| Root model | `out/motionbricks_root/version_1/` |
|
| 109 |
+
|
| 110 |
+
Each model directory contains `checkpoints/model-step=2000000.safetensors`, a
|
| 111 |
+
JSON metadata sidecar, saved configuration, numeric normalization arrays, and
|
| 112 |
+
skeleton metadata. Skeleton arrays use `joints.npy` and `parents.npy`. Keep these
|
| 113 |
+
files together. The original demo motion bank, `out/G1-clip.ckpt`, is not included.
|
| 114 |
+
It is not one of the three neural-network checkpoints. The original demo requires that
|
| 115 |
+
separate motion bank.
|
| 116 |
+
|
| 117 |
+
[manifest.json](https://huggingface.co/nvidia/MotionBricks/blob/main/g1/manifest.json) records each included file's size and SHA-256.
|
| 118 |
+
[SHA256SUMS](https://huggingface.co/nvidia/MotionBricks/blob/main/g1/SHA256SUMS) provides the checksums for the expanded model files.
|
| 119 |
+
|
| 120 |
+
## Model Architecture
|
| 121 |
+
|
| 122 |
+
**Architecture Type:** Modular latent generative model.
|
| 123 |
+
|
| 124 |
+
**Network Architecture:** Transformer-based pose and root predictors with a learned pose
|
| 125 |
+
tokenizer and decoder. Recent motion, target poses, root constraints, and allowed duration
|
| 126 |
+
condition generation. The pose predictor produces motion codes, which the decoder turns into
|
| 127 |
+
skeletal-motion features. The root predictor generates root motion and duration.
|
| 128 |
+
|
| 129 |
+
**Base Model:** The original G1 components were trained from scratch on RP1 motion retargeted
|
| 130 |
+
to G1. This release reuses those weights without retraining and packages them in SafeTensors
|
| 131 |
+
format.
|
| 132 |
+
|
| 133 |
+
The model operates on the G1 skeletal representation. Application code converts between
|
| 134 |
+
skeletal motion and the robot's joint angles.
|
| 135 |
+
|
| 136 |
+
The original G1 tokenizer uses eight heads with 10 codes per head and 32
|
| 137 |
+
dimensions per head. Use the matching G1 bundle and configuration for
|
| 138 |
+
reproduction.
|
| 139 |
+
|
| 140 |
+
**Number of Model Parameters:** Approximately 195 million across the three components. The
|
| 141 |
+
component counts below are rounded.
|
| 142 |
+
|
| 143 |
+
| Component | Approximate parameters |
|
| 144 |
+
| --- | --- |
|
| 145 |
+
| Pose VQ-VAE | 23.8 million |
|
| 146 |
+
| Pose predictor | 136.6 million |
|
| 147 |
+
| Root predictor | 34.1 million |
|
| 148 |
+
|
| 149 |
+
## Inputs
|
| 150 |
+
|
| 151 |
+
**Input Type(s):** Skeletal-motion features, pose constraints, root-motion constraints, motion-token
|
| 152 |
+
IDs, conditioning masks, and duration constraints. Text, images, audio, and video are not inputs
|
| 153 |
+
to these checkpoint components.
|
| 154 |
+
|
| 155 |
+
**Input Format(s):** Numeric PyTorch tensors. Motion features use 32-bit floating point (FP32) with the bundled
|
| 156 |
+
normalization statistics. Token IDs and lengths are integers. Constraint and padding masks are
|
| 157 |
+
Boolean.
|
| 158 |
+
|
| 159 |
+
**Input Parameters:** The component tables below specify the tensor shapes and meanings.
|
| 160 |
+
|
| 161 |
+
**Other Properties Related to Input:** Context and target poses supply constraints on a short
|
| 162 |
+
generation. The root predictor receives four context poses and four target poses. All components
|
| 163 |
+
require their matching configuration and normalization statistics.
|
| 164 |
+
|
| 165 |
+
The three checkpoint components use the tensor interfaces below. `N` is the
|
| 166 |
+
batch size, `L` is the number of motion-token positions, and `T = 4L` is the
|
| 167 |
+
number of frames. Generation uses 6 to 16 tokens (24 to 64 frames) at 30 Hz.
|
| 168 |
+
Shorter sequences can be padded and accompanied by their valid lengths.
|
| 169 |
+
The checkpoint networks support batching. The practical batch size depends
|
| 170 |
+
on memory and the inference implementation.
|
| 171 |
+
|
| 172 |
+
These are component-level interfaces after feature preparation. An application's pose
|
| 173 |
+
interface or exported graph can differ.
|
| 174 |
+
|
| 175 |
+
For joint ordering, coordinate conventions, normalization, and motion
|
| 176 |
+
reconstruction, use the matching MotionBricks implementation and the bundled
|
| 177 |
+
configuration and skeleton metadata.
|
| 178 |
+
|
| 179 |
+
### Pose VQ-VAE: tokenizer and decoder
|
| 180 |
+
|
| 181 |
+
| Tensor | Direction | Shape | Description |
|
| 182 |
+
| --- | --- | --- | --- |
|
| 183 |
+
| Pose features | Encoder input | `(N, T, 304)` | Root height, 33 non-root joint positions (3 values each), and 34 joint rotations (6 values each) |
|
| 184 |
+
| Motion codes | Encoder output / decoder input | `(N, L, 8)` | Eight codebook heads. Each ID is in `0…9` |
|
| 185 |
+
| Target pose features | Decoder input | `(N, T, 304)` | Pose constraints in the same feature representation |
|
| 186 |
+
| Target pose mask | Decoder input | `(N, T)` | Which frames contain pose constraints |
|
| 187 |
+
| Local root velocity | Decoder input | `(N, T, 2)` | Ground root-motion conditioning |
|
| 188 |
+
| Valid-token mask | Decoder input, optional | `(N, L)` | Valid positions when decoding padded sequences |
|
| 189 |
+
| Reconstructed motion | Decoder output | `(N, T, 413)` | Local-root features (4), joint positions (99), 6D rotations (204), joint velocities (102), and foot-contact features (4) |
|
| 190 |
+
|
| 191 |
+
Each token represents four frames. The quantized latent has 256 values per
|
| 192 |
+
token (eight heads × 32 values). The table uses separate per-head code IDs.
|
| 193 |
+
The implementation also supports packing them into one integer per token.
|
| 194 |
+
|
| 195 |
+
### Pose predictor
|
| 196 |
+
|
| 197 |
+
| Tensor | Direction | Shape | Description |
|
| 198 |
+
| --- | --- | --- | --- |
|
| 199 |
+
| Motion tokens | Input | `(N, L, 8)` | Code IDs `0…9`, or mask ID `10` for unknown codes |
|
| 200 |
+
| Root trajectory | Input | `(N, T, 4)` | Ground root position and two-component heading, without root height |
|
| 201 |
+
| Pose constraints | Input | `(N, T, 304)` | Root height, joint positions, and 6D rotations |
|
| 202 |
+
| Pose constraint mask | Input | `(N, T)` | Frames with supplied pose constraints |
|
| 203 |
+
| Valid token count | Input | `(N, 1)` | One length in `6…16` per sample |
|
| 204 |
+
| Pose-code logits | Output | `(N, L, 8, 10)` | Scores over each head's codebook. Selected codes feed the decoder |
|
| 205 |
+
|
| 206 |
+
### Root predictor
|
| 207 |
+
|
| 208 |
+
The root predictor receives eight boundary frames: four context frames and
|
| 209 |
+
four target frames. Each sample can have its own constraints and duration.
|
| 210 |
+
|
| 211 |
+
| Tensor | Direction | Shape | Description |
|
| 212 |
+
| --- | --- | --- | --- |
|
| 213 |
+
| Global root constraints | Input | `(N, 8, 5)` | Root position (3) and heading (2) |
|
| 214 |
+
| Local root constraints | Input | `(N, 8, 4)` | Root angular velocity (1), ground velocity (2), and height (1) |
|
| 215 |
+
| Pose constraints | Input | `(N, 8, 304)` | Root height, joint positions, and 6D rotations |
|
| 216 |
+
| Constraint masks | Input | Three tensors of `(N, 8)` | One mask for each of the preceding constraint tensors |
|
| 217 |
+
| Requested token count | Input | `(N, 1)` | A specified duration in `6…16`, or the unknown-duration token `18` |
|
| 218 |
+
| Allowed durations | Input, optional | `(N, 11)` | Flags for the allowed token counts `6…16` |
|
| 219 |
+
| Duration logits | Output | `(N, 12)` | Eleven duration scores plus an out-of-reach class |
|
| 220 |
+
| Predicted token count | Output | `(N,)` | Selected duration. Generation disables the out-of-reach class |
|
| 221 |
+
| Predicted global root | Output | `(N, 64, 5)` | Padded root trajectory. Each sample's valid length is four times its token count |
|
| 222 |
+
|
| 223 |
+
## Outputs
|
| 224 |
+
|
| 225 |
+
**Output Type(s):** Motion codes and logits, reconstructed skeletal-motion features, root-motion
|
| 226 |
+
predictions, and valid duration.
|
| 227 |
+
|
| 228 |
+
**Output Format(s):** Numeric PyTorch tensors. Motion features and root predictions use FP32.
|
| 229 |
+
Motion codes and selected lengths are integers.
|
| 230 |
+
|
| 231 |
+
**Output Parameters:** The component tables above specify each output's shape and meaning.
|
| 232 |
+
Output motion is represented at 30 Hz. Valid-length information distinguishes generated motion
|
| 233 |
+
from padding.
|
| 234 |
+
|
| 235 |
+
**Other Properties Related to Output:** Longer motion requires repeated generation. Generated
|
| 236 |
+
motion can supply the next context. The checkpoint-component interfaces differ from the joint
|
| 237 |
+
coordinate interface of the combined ONNX export.
|
| 238 |
+
|
| 239 |
+
Together, the components generate root and body motion features. After
|
| 240 |
+
denormalization and skeletal reconstruction, motion can be represented as
|
| 241 |
+
root translations `(N, T, 3)` and joint rotation matrices
|
| 242 |
+
`(N, T, 34, 3, 3)`. The matching kinematic conversion can derive the robot's
|
| 243 |
+
29 joint angles.
|
| 244 |
+
|
| 245 |
+
## Software Integration
|
| 246 |
+
|
| 247 |
+
**Runtime Engine(s):** PyTorch with the matching MotionBricks implementation, configuration,
|
| 248 |
+
normalization statistics, and skeleton metadata. The exporter requires Python 3.12,
|
| 249 |
+
PyTorch 2.14.0+cpu, NumPy 1.26.4, ONNX 1.23.2, and SafeTensors 0.8.0.
|
| 250 |
+
|
| 251 |
+
**Supported Hardware Microarchitecture Compatibility:** The exporter runs on the CPU.
|
| 252 |
+
A specific CPU model, minimum-memory requirement, and broader compatibility matrix are
|
| 253 |
+
not documented. For ONNX runtime requirements, see the [G1 ONNX card](https://github.com/NVlabs/motionbricks/blob/main/docs/unitree_g1_model.md).
|
| 254 |
+
|
| 255 |
+
**Supported Operating System(s):** We tested checkpoint-to-ONNX conversion on Windows.
|
| 256 |
+
Tests on other operating systems are not reported.
|
| 257 |
+
|
| 258 |
+
The integration of foundation and fine-tuned models into AI systems requires additional testing using use-case-specific data to ensure safe and effective deployment. Following the V-model methodology, iterative testing and validation at both unit and system levels are essential to mitigate risks, meet technical and functional requirements, and ensure compliance with safety and ethical standards before deployment.
|
| 259 |
+
|
| 260 |
+
The [exporter](https://github.com/NVlabs/motionbricks/blob/main/tools/onnx/README.md) accepts the downloaded checkpoint folder.
|
| 261 |
+
Its loader checks required file sizes and SHA-256 hashes, reads SafeTensors weights,
|
| 262 |
+
and disables NumPy pickle loading. Keep the checkpoint and exporter versions matched.
|
| 263 |
+
Do not load untrusted checkpoints. These checks do not replace security scans or
|
| 264 |
+
validation in your application.
|
| 265 |
+
|
| 266 |
+
The [original implementation](https://github.com/NVlabs/GR00T-WholeBodyControl/tree/main/motionbricks)
|
| 267 |
+
provides model lineage and the earlier checkpoint-based demo. Its original PyTorch checkpoint
|
| 268 |
+
loader is not directly compatible with this SafeTensors package.
|
| 269 |
+
|
| 270 |
+
The package omits optimizer, scheduler, callback, and training-loop state. It provides weights
|
| 271 |
+
for inference or fine-tuning initialization with a compatible implementation, not exact
|
| 272 |
+
resumption of the original training run.
|
| 273 |
+
|
| 274 |
+
## Release Date
|
| 275 |
+
|
| 276 |
+
Hugging Face 10/23/2026 via the [MotionBricks G1 checkpoint package](https://huggingface.co/nvidia/MotionBricks/tree/main/g1).
|
| 277 |
+
|
| 278 |
+
## Model Versions
|
| 279 |
+
|
| 280 |
+
`MotionBricks-G1-RP-v1` contains the three original G1 components at training step 2,000,000.
|
| 281 |
+
The [manifest](https://huggingface.co/nvidia/MotionBricks/blob/main/g1/manifest.json) and
|
| 282 |
+
[checksums](https://huggingface.co/nvidia/MotionBricks/blob/main/g1/SHA256SUMS) identify the package files.
|
| 283 |
+
The accompanying software release is v0.2.0.
|
| 284 |
+
|
| 285 |
+
The components are used together. The MotionBricks exporter combines them into FP32 or
|
| 286 |
+
mixed 16-bit floating-point (FP16) ONNX models. Those models have a [separate card](https://github.com/NVlabs/motionbricks/blob/main/docs/unitree_g1_model.md) and a
|
| 287 |
+
joint-coordinate interface. The export reuses the existing weights without retraining.
|
| 288 |
+
It is not a newly trained joint-angle model.
|
| 289 |
+
|
| 290 |
+
## Training, Testing and Evaluation Datasets
|
| 291 |
+
|
| 292 |
+
### Training Dataset
|
| 293 |
+
|
| 294 |
+
**Name/Identifier:** Bones RigPlay 1 (RP1).
|
| 295 |
+
|
| 296 |
+
**Data Modality:** Other: human motion capture retargeted to the 34-joint Unitree G1
|
| 297 |
+
skeleton at 30 Hz. The model consumes motion features without text embeddings.
|
| 298 |
+
|
| 299 |
+
**Training Data Size:** 313,526 selected training clips. The approximately 700 hours describe
|
| 300 |
+
the source corpus, not the selected training subset.
|
| 301 |
+
|
| 302 |
+
**Data Collection Method:** Automatic/Sensors. Bones captured human performances in a studio and
|
| 303 |
+
supplied skeletal motion. NVIDIA used [SOMA Retargeter](https://github.com/NVIDIA/soma-retargeter)
|
| 304 |
+
to retarget that motion to G1, then converted it into model features. This preparation is not
|
| 305 |
+
direct robot recording.
|
| 306 |
+
|
| 307 |
+
**Labeling Method:** Automatic/Sensors for captured skeletal motion, followed by automated
|
| 308 |
+
retargeting and feature preparation. Text annotations are not model conditioning
|
| 309 |
+
inputs in the supplied motion-only configuration.
|
| 310 |
+
|
| 311 |
+
**Properties:** G1 skeletal motion with a capture T-pose and dual-root
|
| 312 |
+
representation, derived from a source corpus of approximately 350,000 RP1
|
| 313 |
+
clips and 700 hours of motion.
|
| 314 |
+
|
| 315 |
+
**Linguistic Characteristics:** Not applicable to the motion-feature inputs. Associated text
|
| 316 |
+
descriptions are dataset metadata, not model conditioning inputs.
|
| 317 |
+
|
| 318 |
+
### Testing Dataset
|
| 319 |
+
|
| 320 |
+
**Name, Size and Role:** We used 313,526 clips for training and a separate, selected set of
|
| 321 |
+
4,881 clips for validation and evaluation during training. No clips are shared between these
|
| 322 |
+
sets. The 4,881 clips are a selection from the held-out pool, not the entire pool. A separate
|
| 323 |
+
untouched final-test set, a performer-disjoint split, and the selected subset's duration are
|
| 324 |
+
not documented.
|
| 325 |
+
|
| 326 |
+
**Data Collection Method:** Automatic/Sensors, from the same Bones studio motion-capture source
|
| 327 |
+
as the training set. NVIDIA retargeted the human motion to the G1 representation.
|
| 328 |
+
|
| 329 |
+
**Labeling Method:** Automatic/Sensors for captured skeletal motion, followed by automated
|
| 330 |
+
retargeting and feature preparation.
|
| 331 |
+
|
| 332 |
+
**Properties:** The validation inputs are 30 Hz skeletal-motion features on the 34-joint G1
|
| 333 |
+
representation. Text descriptions are selection metadata, not conditioning inputs. Linguistic
|
| 334 |
+
characteristics are not applicable to these motion-only inputs. Disjoint clips alone do not rule out other forms of data leakage.
|
| 335 |
+
|
| 336 |
+
### Evaluation Dataset and Results
|
| 337 |
+
|
| 338 |
+
**Name/Size:** Evaluation uses the same 4,881-clip RP1 subset described under
|
| 339 |
+
[Testing Dataset](#testing-dataset). It is not an additional independent test set.
|
| 340 |
+
|
| 341 |
+
**Benchmark Score:** A complete quantitative evaluation report for these checkpoint files
|
| 342 |
+
is not included with this package.
|
| 343 |
+
|
| 344 |
+
**Data Collection Method:** Automatic/Sensors, using the same studio-captured human motion
|
| 345 |
+
retargeted to G1.
|
| 346 |
+
|
| 347 |
+
**Labeling Method:** Automatic/Sensors for captured skeletal motion, followed by automated
|
| 348 |
+
retargeting and feature preparation.
|
| 349 |
+
|
| 350 |
+
**Properties:** Evaluation uses the same 30 Hz G1 skeletal-motion representation as training.
|
| 351 |
+
Text descriptions are selection metadata, not conditioning inputs. Linguistic characteristics
|
| 352 |
+
are not applicable to the motion-only inputs. The subset's duration is unspecified.
|
| 353 |
+
|
| 354 |
+
**Recorded Results:** The package includes training-step metadata and tested export support,
|
| 355 |
+
but no complete checkpoint-specific quality score table.
|
| 356 |
+
|
| 357 |
+
| Check | Available evidence |
|
| 358 |
+
| --- | --- |
|
| 359 |
+
| Training progress | All three checkpoints record global step 2,000,000. This is training metadata, not a quality or safety score. |
|
| 360 |
+
| Checkpoint conversion | Checkpoint-to-ONNX conversion tested on Windows with CPU PyTorch. See [Inference](#inference). |
|
| 361 |
+
| Method evaluation | The [MotionBricks paper](https://arxiv.org/abs/2604.24833) reports experiments with its specified configurations, including separately trained benchmark models. |
|
| 362 |
+
|
| 363 |
+
The paper's benchmark dataset sizes and scores are not measurements of this packaged G1 application.
|
| 364 |
+
|
| 365 |
+
## Inference
|
| 366 |
+
|
| 367 |
+
**Acceleration Engine:** The checkpoint implementation and exporter use PyTorch.
|
| 368 |
+
The exporter runs on the CPU. The separate ONNX runtime uses TensorRT 10.8.
|
| 369 |
+
|
| 370 |
+
**Test Hardware Set-Up:** We tested checkpoint-to-ONNX conversion on Windows using CPU PyTorch.
|
| 371 |
+
The CPU model, conversion time, and checkpoint-runtime latency and throughput are not reported.
|
| 372 |
+
The [ONNX card](https://github.com/NVlabs/motionbricks/blob/main/docs/unitree_g1_model.md) describes the separate Windows and RTX 4090 runtime.
|
| 373 |
+
Neither successful export nor runtime execution establishes safe physical robot tracking.
|
| 374 |
+
|
| 375 |
+
## Limitations
|
| 376 |
+
|
| 377 |
+
- The model is specific to the bundled G1 kinematics and hinge order.
|
| 378 |
+
- The generated poses do not enforce dynamic balance, actuator limits,
|
| 379 |
+
collision avoidance, or physical contact tracking.
|
| 380 |
+
- Physical execution needs a downstream controller and application-specific
|
| 381 |
+
validation.
|
| 382 |
+
- Generation uses a short sequence of context and target poses. Longer motion requires
|
| 383 |
+
repeated generation.
|
| 384 |
+
- Numerical precision and backend differences can accumulate through feedback.
|
| 385 |
+
- Scene geometry and text prompts are outside the model's conditioning interface.
|
| 386 |
+
|
| 387 |
+
## Ethical Considerations
|
| 388 |
+
|
| 389 |
+
NVIDIA believes Trustworthy AI is a shared responsibility and we have
|
| 390 |
+
established policies and practices to enable development for a wide array of
|
| 391 |
+
AI applications. Developers should work with their internal model team to
|
| 392 |
+
ensure this model meets requirements for the relevant industry and use case
|
| 393 |
+
and addresses unforeseen product misuse.
|
| 394 |
+
|
| 395 |
+
For more detailed information, see the [Bias](#bias-subcard),
|
| 396 |
+
[Explainability](#explainability-subcard), [Privacy](#privacy-subcard) and
|
| 397 |
+
[Safety & Security](#safety-and-security-subcard) subcards below.
|
| 398 |
+
|
| 399 |
+
Please report model quality, risk, security vulnerabilities or NVIDIA AI
|
| 400 |
+
Concerns [here](https://www.nvidia.com/en-us/support/submit-security-vulnerability/).
|
| 401 |
+
|
| 402 |
+
## Bias Subcard
|
| 403 |
+
|
| 404 |
+
| Field | Response |
|
| 405 |
+
| --- | --- |
|
| 406 |
+
| Participation considerations from adversely impacted groups in model design and testing | Not reported for these original G1 checkpoints. |
|
| 407 |
+
| Measures taken to mitigate unwanted bias | A specific measured bias mitigation is not reported. Applications should evaluate the motion conditions and users relevant to their use case. |
|
| 408 |
+
| Bias Metric, if measured | Demographic subgroup and motion-category comparisons are not reported for this checkpoint package. |
|
| 409 |
+
|
| 410 |
+
Retargeting motion to one robot skeleton does not establish equal performance
|
| 411 |
+
across source performers, motion categories or target constraints.
|
| 412 |
+
|
| 413 |
+
## Explainability Subcard
|
| 414 |
+
|
| 415 |
+
| Field | Response |
|
| 416 |
+
| --- | --- |
|
| 417 |
+
| Intended Task/Domain | Pose-conditioned G1 motion generation and inbetweening for robotics simulation, animation previews and control experiments. |
|
| 418 |
+
| Model Type | Modular latent generative model with transformer predictors and a learned motion tokenizer and decoder. |
|
| 419 |
+
| Intended Users | Developers and researchers integrating G1 kinematic motion generation. |
|
| 420 |
+
| Output | Motion codes and logits, root predictions, duration and reconstructed skeletal-motion features, as specified in the component tensor tables. |
|
| 421 |
+
| Describe how the model works | Recent motion and target constraints condition root and pose predictors. The learned tokenizer represents motion with discrete codes, and the decoder reconstructs motion features. Matching application code converts the 34-joint representation to G1 root transforms and 29 joint angles. |
|
| 422 |
+
| Groups tested to produce comparable outcomes | Demographic subgroup comparisons are not reported. |
|
| 423 |
+
| Technical Limitations and Mitigation | Fixed G1 kinematics, short context, no scene-geometry input and backend/precision variation. Validate constraints, motion quality, limits, contacts and any physical execution separately. |
|
| 424 |
+
| Verified to have met prescribed NVIDIA quality standards | Yes |
|
| 425 |
+
| Performance Metrics | See [Evaluation Dataset and Results](#evaluation-dataset-and-results) for evaluation evidence and [Inference](#inference) for runtime evidence. |
|
| 426 |
+
| Potential Known Risks | Invalid or implausible poses, accumulated feedback artifacts and unsafe physical execution if generated references are treated as validated robot commands. |
|
| 427 |
+
| Licensing | Use of this model is governed by the [NVIDIA Open Model Agreement](https://www.nvidia.com/en-us/agreements/enterprise-software/nvidia-open-model-agreement/). See [License and Terms of Use](#license-and-terms-of-use) for separate software and sample-data terms. |
|
| 428 |
+
|
| 429 |
+
## Privacy Subcard
|
| 430 |
+
|
| 431 |
+
Training used RP1 skeletal motion collected by Bones and supplied to NVIDIA under a negotiated data license. NVIDIA retargeted the motion to Unitree G1.
|
| 432 |
+
|
| 433 |
+
The datasets used to train this model were reviewed before release. Training used motion features, not text annotations or interactions with this model.
|
| 434 |
+
|
| 435 |
+
The package does not include the training corpus. Local execution does not eliminate privacy risks associated with training data.
|
| 436 |
+
|
| 437 |
+
Please review [NVIDIA’s Privacy Policy](https://www.nvidia.com/en-us/about-nvidia/privacy-policy/) for more information.
|
| 438 |
+
|
| 439 |
+
## Safety and Security Subcard
|
| 440 |
+
|
| 441 |
+
| Field | Response |
|
| 442 |
+
| --- | --- |
|
| 443 |
+
| Model Application Fields | Industrial/Machinery and Robotics, Media & Entertainment. Generated motion is not validated for physical robot control. |
|
| 444 |
+
| Life-critical impact | The model generates kinematic reference motion, not a safety-certified robot policy. Feeding unvalidated motion to physical hardware can cause collision, damage or injury. |
|
| 445 |
+
| Use Case Restrictions | Use of this model is governed by the [NVIDIA Open Model Agreement](https://www.nvidia.com/en-us/agreements/enterprise-software/nvidia-open-model-agreement/). See [License and Terms of Use](#license-and-terms-of-use) for separate software and sample-data terms. |
|
| 446 |
+
| Model and dataset restrictions | The pretrained package does not provide the original training corpus or demo motion bank. Rights to model weights and separately supplied motion examples are distinct. No claim about original access-control practices is inferred from this package. |
|
| 447 |
+
|
| 448 |
+
For physical execution, use a downstream controller with appropriate joint and
|
| 449 |
+
actuator limits, collision and contact handling, fall protection and
|
| 450 |
+
application-specific safety validation. The accompanying Newton integration
|
| 451 |
+
is a kinematic preview and does not establish successful tracking on a
|
| 452 |
+
physical G1.
|
| 453 |
+
|
g1/SHA256SUMS
ADDED
|
@@ -0,0 +1,33 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
adcb83b61946ffe4ac974cc3d2e7c2aa8f9832dbe75e0c29e16d53b0ae0aa44c README.md
|
| 2 |
+
d8bd82393b308d27bfc3cb1670d4e4723794c3b349fa3b83435ce0f93e5b5065 manifest.json
|
| 3 |
+
359a134cce0e863346024bc8fe37286666e2e35c98588267ef4bb989bd67280d out/SHA256SUMS
|
| 4 |
+
5f4bfa948eadb13a7b0d186ed2cba2e6f837e6709898b8e932aa345ff853515e out/motionbricks_pose/version_1/checkpoints/model-step=2000000.json
|
| 5 |
+
2154d80cac2beb4bb4074b4db92ae59d9fdfbc58651550c32941fe8527d28313 out/motionbricks_pose/version_1/checkpoints/model-step=2000000.safetensors
|
| 6 |
+
273af770d328b458510ee6049fac8e38fa486c8792cc27b3515dddc094a7cd1f out/motionbricks_pose/version_1/config.yaml
|
| 7 |
+
3c482b9f810a9c4921d2e9fe46dae4e9e70d48ac9ea7d7b19a91fad2490d75e5 out/motionbricks_pose/version_1/hparams.yaml
|
| 8 |
+
f70ba7887c5db6cd77739e573bbb734af0ec79a8cbabd9e435b7c72a5d040663 out/motionbricks_pose/version_1/meta.yaml
|
| 9 |
+
6a682fc9d36204eb8e58c6b29eb0881e36242ed94dff078c82a373cdc6783ab0 out/motionbricks_pose/version_1/skeleton/joints.npy
|
| 10 |
+
02754fe01a8dcad13b9e3f95f7a696f56bccc5eeb5f5bf701f31cec88e23b1c4 out/motionbricks_pose/version_1/skeleton/parents.npy
|
| 11 |
+
5820a223977a36e04e75824a7f720b57225ac30a067bdd32bc312469f3644050 out/motionbricks_pose/version_1/skeleton/skeleton.yaml
|
| 12 |
+
ca390f0081e2373ab71e860a3546cb70cc11fdfac6ce525155403e047b66fdea out/motionbricks_pose/version_1/stats/motion/mean.npy
|
| 13 |
+
fca7dd6135cbe96504b1307a7db97e9004556937a2fc72d139077b962cee6bd7 out/motionbricks_pose/version_1/stats/motion/std.npy
|
| 14 |
+
5df3e2521ba80997251c72bf2f5dd22cea301df458a407ab34d5e75f28855b5e out/motionbricks_root/version_1/checkpoints/model-step=2000000.json
|
| 15 |
+
da6ff2c05e45dfe4ac5e8e8362a6404f5c927fcddb18410e6804b61e55d4f2dc out/motionbricks_root/version_1/checkpoints/model-step=2000000.safetensors
|
| 16 |
+
b174f03a333f7f7857c3e2b8a32da517caddd198f228efeea2e203d046ce212a out/motionbricks_root/version_1/config.yaml
|
| 17 |
+
15dfadeab65b8ab1931b4e5257a2f9ebfa57e559510af1bd5baa96cfe2baeaf5 out/motionbricks_root/version_1/hparams.yaml
|
| 18 |
+
c541e9d63b9b876a56c031a360d4d3929013b83515510a10f47ae63f6c7c8f17 out/motionbricks_root/version_1/meta.yaml
|
| 19 |
+
6a682fc9d36204eb8e58c6b29eb0881e36242ed94dff078c82a373cdc6783ab0 out/motionbricks_root/version_1/skeleton/joints.npy
|
| 20 |
+
02754fe01a8dcad13b9e3f95f7a696f56bccc5eeb5f5bf701f31cec88e23b1c4 out/motionbricks_root/version_1/skeleton/parents.npy
|
| 21 |
+
5820a223977a36e04e75824a7f720b57225ac30a067bdd32bc312469f3644050 out/motionbricks_root/version_1/skeleton/skeleton.yaml
|
| 22 |
+
ca390f0081e2373ab71e860a3546cb70cc11fdfac6ce525155403e047b66fdea out/motionbricks_root/version_1/stats/motion/mean.npy
|
| 23 |
+
fca7dd6135cbe96504b1307a7db97e9004556937a2fc72d139077b962cee6bd7 out/motionbricks_root/version_1/stats/motion/std.npy
|
| 24 |
+
ceaa8820137c55ddc472a499307e8fbf4f9e9e4c503e73b967fa43ae0afc2141 out/motionbricks_vqvae/version_1/checkpoints/model-step=2000000.json
|
| 25 |
+
bf9c31173b334303bf392d184c24701ad1a095b3e94a5fe6b11db4d01343a454 out/motionbricks_vqvae/version_1/checkpoints/model-step=2000000.safetensors
|
| 26 |
+
027a2d7ba5f49cadeadbcc9a6b0c6784d657d5a842e41ff820c5233f1cd6c1f3 out/motionbricks_vqvae/version_1/config.yaml
|
| 27 |
+
7af860d6c144ff71ccdb4085b8413be892194ef419031b81e231502c2181576d out/motionbricks_vqvae/version_1/hparams.yaml
|
| 28 |
+
7bdf23605dcb89708a39bae33e12de59ebf4d216ba09b91931a2f813cc57e8c7 out/motionbricks_vqvae/version_1/meta.yaml
|
| 29 |
+
6a682fc9d36204eb8e58c6b29eb0881e36242ed94dff078c82a373cdc6783ab0 out/motionbricks_vqvae/version_1/skeleton/joints.npy
|
| 30 |
+
02754fe01a8dcad13b9e3f95f7a696f56bccc5eeb5f5bf701f31cec88e23b1c4 out/motionbricks_vqvae/version_1/skeleton/parents.npy
|
| 31 |
+
5820a223977a36e04e75824a7f720b57225ac30a067bdd32bc312469f3644050 out/motionbricks_vqvae/version_1/skeleton/skeleton.yaml
|
| 32 |
+
ca390f0081e2373ab71e860a3546cb70cc11fdfac6ce525155403e047b66fdea out/motionbricks_vqvae/version_1/stats/motion/mean.npy
|
| 33 |
+
fca7dd6135cbe96504b1307a7db97e9004556937a2fc72d139077b962cee6bd7 out/motionbricks_vqvae/version_1/stats/motion/std.npy
|
g1/manifest.json
ADDED
|
@@ -0,0 +1,181 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"schema_version": 2,
|
| 3 |
+
"model_family": "MotionBricks",
|
| 4 |
+
"model_variant": "Unitree G1",
|
| 5 |
+
"checkpoint_step": 2000000,
|
| 6 |
+
"weight_format": "safetensors",
|
| 7 |
+
"weights_only": true,
|
| 8 |
+
"archive": {
|
| 9 |
+
"filename": "motionbricks_g1_checkpoints.tar.gz",
|
| 10 |
+
"bytes": 724645328,
|
| 11 |
+
"sha256": "66005b3f8a6e0aa57caaf40ef1701051af700e7b5b02eaacce073b7469c43cef",
|
| 12 |
+
"root_directory": "out"
|
| 13 |
+
},
|
| 14 |
+
"source_archive": {
|
| 15 |
+
"filename": "motionbricks_g1_checkpoints.tar.gz",
|
| 16 |
+
"bytes": 2134927408,
|
| 17 |
+
"sha256": "74e50e7f62367461f0c6c12fba9198863efc5135868fb306358ab74ad3b3bce9",
|
| 18 |
+
"root_directory": "out"
|
| 19 |
+
},
|
| 20 |
+
"original_checkpoint_bytes_preserved": false,
|
| 21 |
+
"original_model_tensor_bytes_preserved": true,
|
| 22 |
+
"skeleton_tensor_bytes_preserved": true,
|
| 23 |
+
"training_resume_state_included": false,
|
| 24 |
+
"files": [
|
| 25 |
+
{
|
| 26 |
+
"path": "out/motionbricks_pose/version_1/checkpoints/model-step=2000000.json",
|
| 27 |
+
"bytes": 346,
|
| 28 |
+
"sha256": "5f4bfa948eadb13a7b0d186ed2cba2e6f837e6709898b8e932aa345ff853515e"
|
| 29 |
+
},
|
| 30 |
+
{
|
| 31 |
+
"path": "out/motionbricks_pose/version_1/checkpoints/model-step=2000000.safetensors",
|
| 32 |
+
"bytes": 546380073,
|
| 33 |
+
"sha256": "2154d80cac2beb4bb4074b4db92ae59d9fdfbc58651550c32941fe8527d28313"
|
| 34 |
+
},
|
| 35 |
+
{
|
| 36 |
+
"path": "out/motionbricks_pose/version_1/config.yaml",
|
| 37 |
+
"bytes": 7243,
|
| 38 |
+
"sha256": "273af770d328b458510ee6049fac8e38fa486c8792cc27b3515dddc094a7cd1f"
|
| 39 |
+
},
|
| 40 |
+
{
|
| 41 |
+
"path": "out/motionbricks_pose/version_1/hparams.yaml",
|
| 42 |
+
"bytes": 7176,
|
| 43 |
+
"sha256": "3c482b9f810a9c4921d2e9fe46dae4e9e70d48ac9ea7d7b19a91fad2490d75e5"
|
| 44 |
+
},
|
| 45 |
+
{
|
| 46 |
+
"path": "out/motionbricks_pose/version_1/meta.yaml",
|
| 47 |
+
"bytes": 29,
|
| 48 |
+
"sha256": "f70ba7887c5db6cd77739e573bbb734af0ec79a8cbabd9e435b7c72a5d040663"
|
| 49 |
+
},
|
| 50 |
+
{
|
| 51 |
+
"path": "out/motionbricks_pose/version_1/skeleton/joints.npy",
|
| 52 |
+
"bytes": 944,
|
| 53 |
+
"sha256": "6a682fc9d36204eb8e58c6b29eb0881e36242ed94dff078c82a373cdc6783ab0"
|
| 54 |
+
},
|
| 55 |
+
{
|
| 56 |
+
"path": "out/motionbricks_pose/version_1/skeleton/parents.npy",
|
| 57 |
+
"bytes": 400,
|
| 58 |
+
"sha256": "02754fe01a8dcad13b9e3f95f7a696f56bccc5eeb5f5bf701f31cec88e23b1c4"
|
| 59 |
+
},
|
| 60 |
+
{
|
| 61 |
+
"path": "out/motionbricks_pose/version_1/skeleton/skeleton.yaml",
|
| 62 |
+
"bytes": 213,
|
| 63 |
+
"sha256": "5820a223977a36e04e75824a7f720b57225ac30a067bdd32bc312469f3644050"
|
| 64 |
+
},
|
| 65 |
+
{
|
| 66 |
+
"path": "out/motionbricks_pose/version_1/stats/motion/mean.npy",
|
| 67 |
+
"bytes": 3472,
|
| 68 |
+
"sha256": "ca390f0081e2373ab71e860a3546cb70cc11fdfac6ce525155403e047b66fdea"
|
| 69 |
+
},
|
| 70 |
+
{
|
| 71 |
+
"path": "out/motionbricks_pose/version_1/stats/motion/std.npy",
|
| 72 |
+
"bytes": 3472,
|
| 73 |
+
"sha256": "fca7dd6135cbe96504b1307a7db97e9004556937a2fc72d139077b962cee6bd7"
|
| 74 |
+
},
|
| 75 |
+
{
|
| 76 |
+
"path": "out/motionbricks_root/version_1/checkpoints/model-step=2000000.json",
|
| 77 |
+
"bytes": 346,
|
| 78 |
+
"sha256": "5df3e2521ba80997251c72bf2f5dd22cea301df458a407ab34d5e75f28855b5e"
|
| 79 |
+
},
|
| 80 |
+
{
|
| 81 |
+
"path": "out/motionbricks_root/version_1/checkpoints/model-step=2000000.safetensors",
|
| 82 |
+
"bytes": 136510540,
|
| 83 |
+
"sha256": "da6ff2c05e45dfe4ac5e8e8362a6404f5c927fcddb18410e6804b61e55d4f2dc"
|
| 84 |
+
},
|
| 85 |
+
{
|
| 86 |
+
"path": "out/motionbricks_root/version_1/config.yaml",
|
| 87 |
+
"bytes": 6397,
|
| 88 |
+
"sha256": "b174f03a333f7f7857c3e2b8a32da517caddd198f228efeea2e203d046ce212a"
|
| 89 |
+
},
|
| 90 |
+
{
|
| 91 |
+
"path": "out/motionbricks_root/version_1/hparams.yaml",
|
| 92 |
+
"bytes": 6330,
|
| 93 |
+
"sha256": "15dfadeab65b8ab1931b4e5257a2f9ebfa57e559510af1bd5baa96cfe2baeaf5"
|
| 94 |
+
},
|
| 95 |
+
{
|
| 96 |
+
"path": "out/motionbricks_root/version_1/meta.yaml",
|
| 97 |
+
"bytes": 29,
|
| 98 |
+
"sha256": "c541e9d63b9b876a56c031a360d4d3929013b83515510a10f47ae63f6c7c8f17"
|
| 99 |
+
},
|
| 100 |
+
{
|
| 101 |
+
"path": "out/motionbricks_root/version_1/skeleton/joints.npy",
|
| 102 |
+
"bytes": 944,
|
| 103 |
+
"sha256": "6a682fc9d36204eb8e58c6b29eb0881e36242ed94dff078c82a373cdc6783ab0"
|
| 104 |
+
},
|
| 105 |
+
{
|
| 106 |
+
"path": "out/motionbricks_root/version_1/skeleton/parents.npy",
|
| 107 |
+
"bytes": 400,
|
| 108 |
+
"sha256": "02754fe01a8dcad13b9e3f95f7a696f56bccc5eeb5f5bf701f31cec88e23b1c4"
|
| 109 |
+
},
|
| 110 |
+
{
|
| 111 |
+
"path": "out/motionbricks_root/version_1/skeleton/skeleton.yaml",
|
| 112 |
+
"bytes": 213,
|
| 113 |
+
"sha256": "5820a223977a36e04e75824a7f720b57225ac30a067bdd32bc312469f3644050"
|
| 114 |
+
},
|
| 115 |
+
{
|
| 116 |
+
"path": "out/motionbricks_root/version_1/stats/motion/mean.npy",
|
| 117 |
+
"bytes": 3472,
|
| 118 |
+
"sha256": "ca390f0081e2373ab71e860a3546cb70cc11fdfac6ce525155403e047b66fdea"
|
| 119 |
+
},
|
| 120 |
+
{
|
| 121 |
+
"path": "out/motionbricks_root/version_1/stats/motion/std.npy",
|
| 122 |
+
"bytes": 3472,
|
| 123 |
+
"sha256": "fca7dd6135cbe96504b1307a7db97e9004556937a2fc72d139077b962cee6bd7"
|
| 124 |
+
},
|
| 125 |
+
{
|
| 126 |
+
"path": "out/motionbricks_vqvae/version_1/checkpoints/model-step=2000000.json",
|
| 127 |
+
"bytes": 13245,
|
| 128 |
+
"sha256": "ceaa8820137c55ddc472a499307e8fbf4f9e9e4c503e73b967fa43ae0afc2141"
|
| 129 |
+
},
|
| 130 |
+
{
|
| 131 |
+
"path": "out/motionbricks_vqvae/version_1/checkpoints/model-step=2000000.safetensors",
|
| 132 |
+
"bytes": 95194080,
|
| 133 |
+
"sha256": "bf9c31173b334303bf392d184c24701ad1a095b3e94a5fe6b11db4d01343a454"
|
| 134 |
+
},
|
| 135 |
+
{
|
| 136 |
+
"path": "out/motionbricks_vqvae/version_1/config.yaml",
|
| 137 |
+
"bytes": 6320,
|
| 138 |
+
"sha256": "027a2d7ba5f49cadeadbcc9a6b0c6784d657d5a842e41ff820c5233f1cd6c1f3"
|
| 139 |
+
},
|
| 140 |
+
{
|
| 141 |
+
"path": "out/motionbricks_vqvae/version_1/hparams.yaml",
|
| 142 |
+
"bytes": 6251,
|
| 143 |
+
"sha256": "7af860d6c144ff71ccdb4085b8413be892194ef419031b81e231502c2181576d"
|
| 144 |
+
},
|
| 145 |
+
{
|
| 146 |
+
"path": "out/motionbricks_vqvae/version_1/meta.yaml",
|
| 147 |
+
"bytes": 30,
|
| 148 |
+
"sha256": "7bdf23605dcb89708a39bae33e12de59ebf4d216ba09b91931a2f813cc57e8c7"
|
| 149 |
+
},
|
| 150 |
+
{
|
| 151 |
+
"path": "out/motionbricks_vqvae/version_1/skeleton/joints.npy",
|
| 152 |
+
"bytes": 944,
|
| 153 |
+
"sha256": "6a682fc9d36204eb8e58c6b29eb0881e36242ed94dff078c82a373cdc6783ab0"
|
| 154 |
+
},
|
| 155 |
+
{
|
| 156 |
+
"path": "out/motionbricks_vqvae/version_1/skeleton/parents.npy",
|
| 157 |
+
"bytes": 400,
|
| 158 |
+
"sha256": "02754fe01a8dcad13b9e3f95f7a696f56bccc5eeb5f5bf701f31cec88e23b1c4"
|
| 159 |
+
},
|
| 160 |
+
{
|
| 161 |
+
"path": "out/motionbricks_vqvae/version_1/skeleton/skeleton.yaml",
|
| 162 |
+
"bytes": 213,
|
| 163 |
+
"sha256": "5820a223977a36e04e75824a7f720b57225ac30a067bdd32bc312469f3644050"
|
| 164 |
+
},
|
| 165 |
+
{
|
| 166 |
+
"path": "out/motionbricks_vqvae/version_1/stats/motion/mean.npy",
|
| 167 |
+
"bytes": 3472,
|
| 168 |
+
"sha256": "ca390f0081e2373ab71e860a3546cb70cc11fdfac6ce525155403e047b66fdea"
|
| 169 |
+
},
|
| 170 |
+
{
|
| 171 |
+
"path": "out/motionbricks_vqvae/version_1/stats/motion/std.npy",
|
| 172 |
+
"bytes": 3472,
|
| 173 |
+
"sha256": "fca7dd6135cbe96504b1307a7db97e9004556937a2fc72d139077b962cee6bd7"
|
| 174 |
+
},
|
| 175 |
+
{
|
| 176 |
+
"path": "out/SHA256SUMS",
|
| 177 |
+
"bytes": 3493,
|
| 178 |
+
"sha256": "359a134cce0e863346024bc8fe37286666e2e35c98588267ef4bb989bd67280d"
|
| 179 |
+
}
|
| 180 |
+
]
|
| 181 |
+
}
|
g1/out/SHA256SUMS
ADDED
|
@@ -0,0 +1,30 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
5f4bfa948eadb13a7b0d186ed2cba2e6f837e6709898b8e932aa345ff853515e motionbricks_pose/version_1/checkpoints/model-step=2000000.json
|
| 2 |
+
2154d80cac2beb4bb4074b4db92ae59d9fdfbc58651550c32941fe8527d28313 motionbricks_pose/version_1/checkpoints/model-step=2000000.safetensors
|
| 3 |
+
273af770d328b458510ee6049fac8e38fa486c8792cc27b3515dddc094a7cd1f motionbricks_pose/version_1/config.yaml
|
| 4 |
+
3c482b9f810a9c4921d2e9fe46dae4e9e70d48ac9ea7d7b19a91fad2490d75e5 motionbricks_pose/version_1/hparams.yaml
|
| 5 |
+
f70ba7887c5db6cd77739e573bbb734af0ec79a8cbabd9e435b7c72a5d040663 motionbricks_pose/version_1/meta.yaml
|
| 6 |
+
6a682fc9d36204eb8e58c6b29eb0881e36242ed94dff078c82a373cdc6783ab0 motionbricks_pose/version_1/skeleton/joints.npy
|
| 7 |
+
02754fe01a8dcad13b9e3f95f7a696f56bccc5eeb5f5bf701f31cec88e23b1c4 motionbricks_pose/version_1/skeleton/parents.npy
|
| 8 |
+
5820a223977a36e04e75824a7f720b57225ac30a067bdd32bc312469f3644050 motionbricks_pose/version_1/skeleton/skeleton.yaml
|
| 9 |
+
ca390f0081e2373ab71e860a3546cb70cc11fdfac6ce525155403e047b66fdea motionbricks_pose/version_1/stats/motion/mean.npy
|
| 10 |
+
fca7dd6135cbe96504b1307a7db97e9004556937a2fc72d139077b962cee6bd7 motionbricks_pose/version_1/stats/motion/std.npy
|
| 11 |
+
5df3e2521ba80997251c72bf2f5dd22cea301df458a407ab34d5e75f28855b5e motionbricks_root/version_1/checkpoints/model-step=2000000.json
|
| 12 |
+
da6ff2c05e45dfe4ac5e8e8362a6404f5c927fcddb18410e6804b61e55d4f2dc motionbricks_root/version_1/checkpoints/model-step=2000000.safetensors
|
| 13 |
+
b174f03a333f7f7857c3e2b8a32da517caddd198f228efeea2e203d046ce212a motionbricks_root/version_1/config.yaml
|
| 14 |
+
15dfadeab65b8ab1931b4e5257a2f9ebfa57e559510af1bd5baa96cfe2baeaf5 motionbricks_root/version_1/hparams.yaml
|
| 15 |
+
c541e9d63b9b876a56c031a360d4d3929013b83515510a10f47ae63f6c7c8f17 motionbricks_root/version_1/meta.yaml
|
| 16 |
+
6a682fc9d36204eb8e58c6b29eb0881e36242ed94dff078c82a373cdc6783ab0 motionbricks_root/version_1/skeleton/joints.npy
|
| 17 |
+
02754fe01a8dcad13b9e3f95f7a696f56bccc5eeb5f5bf701f31cec88e23b1c4 motionbricks_root/version_1/skeleton/parents.npy
|
| 18 |
+
5820a223977a36e04e75824a7f720b57225ac30a067bdd32bc312469f3644050 motionbricks_root/version_1/skeleton/skeleton.yaml
|
| 19 |
+
ca390f0081e2373ab71e860a3546cb70cc11fdfac6ce525155403e047b66fdea motionbricks_root/version_1/stats/motion/mean.npy
|
| 20 |
+
fca7dd6135cbe96504b1307a7db97e9004556937a2fc72d139077b962cee6bd7 motionbricks_root/version_1/stats/motion/std.npy
|
| 21 |
+
ceaa8820137c55ddc472a499307e8fbf4f9e9e4c503e73b967fa43ae0afc2141 motionbricks_vqvae/version_1/checkpoints/model-step=2000000.json
|
| 22 |
+
bf9c31173b334303bf392d184c24701ad1a095b3e94a5fe6b11db4d01343a454 motionbricks_vqvae/version_1/checkpoints/model-step=2000000.safetensors
|
| 23 |
+
027a2d7ba5f49cadeadbcc9a6b0c6784d657d5a842e41ff820c5233f1cd6c1f3 motionbricks_vqvae/version_1/config.yaml
|
| 24 |
+
7af860d6c144ff71ccdb4085b8413be892194ef419031b81e231502c2181576d motionbricks_vqvae/version_1/hparams.yaml
|
| 25 |
+
7bdf23605dcb89708a39bae33e12de59ebf4d216ba09b91931a2f813cc57e8c7 motionbricks_vqvae/version_1/meta.yaml
|
| 26 |
+
6a682fc9d36204eb8e58c6b29eb0881e36242ed94dff078c82a373cdc6783ab0 motionbricks_vqvae/version_1/skeleton/joints.npy
|
| 27 |
+
02754fe01a8dcad13b9e3f95f7a696f56bccc5eeb5f5bf701f31cec88e23b1c4 motionbricks_vqvae/version_1/skeleton/parents.npy
|
| 28 |
+
5820a223977a36e04e75824a7f720b57225ac30a067bdd32bc312469f3644050 motionbricks_vqvae/version_1/skeleton/skeleton.yaml
|
| 29 |
+
ca390f0081e2373ab71e860a3546cb70cc11fdfac6ce525155403e047b66fdea motionbricks_vqvae/version_1/stats/motion/mean.npy
|
| 30 |
+
fca7dd6135cbe96504b1307a7db97e9004556937a2fc72d139077b962cee6bd7 motionbricks_vqvae/version_1/stats/motion/std.npy
|
g1/out/motionbricks_pose/version_1/checkpoints/model-step=2000000.json
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"schema_version": 1,
|
| 3 |
+
"source_checkpoint_sha256": "0223c352b308ba638a499cc5c92104da36cb1d04cea2f8ce61d54a2489f853f1",
|
| 4 |
+
"epoch": 25973,
|
| 5 |
+
"global_step": 2000000,
|
| 6 |
+
"pytorch_lightning_version": "2.4.0",
|
| 7 |
+
"state_dict_metadata": {},
|
| 8 |
+
"omitted_training_state": [
|
| 9 |
+
"loops",
|
| 10 |
+
"callbacks",
|
| 11 |
+
"optimizer_states",
|
| 12 |
+
"lr_schedulers"
|
| 13 |
+
]
|
| 14 |
+
}
|
g1/out/motionbricks_pose/version_1/checkpoints/model-step=2000000.safetensors
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:2154d80cac2beb4bb4074b4db92ae59d9fdfbc58651550c32941fe8527d28313
|
| 3 |
+
size 546380073
|
g1/out/motionbricks_pose/version_1/config.yaml
ADDED
|
@@ -0,0 +1,245 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
model:
|
| 2 |
+
backbone_network:
|
| 3 |
+
_target_: motionbricks.motion_backbone.neural_modules.pose_backbone.pose_backbone_network
|
| 4 |
+
motion_rep: ???
|
| 5 |
+
args:
|
| 6 |
+
pose_root_mode: ${model.args.pose_root_mode}
|
| 7 |
+
min_tokens: ${model.args.min_tokens}
|
| 8 |
+
max_tokens: ${model.args.max_tokens}
|
| 9 |
+
down_t: ${model.args.down_t}
|
| 10 |
+
pose_token_mlp_num_layers: 2
|
| 11 |
+
root_feat_width: 256
|
| 12 |
+
pose_feat_width: 640
|
| 13 |
+
token_length_feat_width: 128
|
| 14 |
+
text_emb_dim: 4096
|
| 15 |
+
text_embeddings: ${data.text_embeddings}
|
| 16 |
+
local_pose_feature: ${model.args.local_pose_feature}
|
| 17 |
+
cond_root_feature: ${model.args.cond_root_feature}
|
| 18 |
+
cond_root_feature_is_from_motion_rep: ${model.args.cond_root_feature_is_from_motion_rep}
|
| 19 |
+
n_embd: 1024
|
| 20 |
+
n_head: 16
|
| 21 |
+
n_layers: 16
|
| 22 |
+
pose_vqvae:
|
| 23 |
+
nb_code: ${model.pose_vqvae_network.nb_code}
|
| 24 |
+
code_dim: ${model.pose_vqvae_network.code_dim}
|
| 25 |
+
num_heads: ${model.pose_vqvae_network.num_heads}
|
| 26 |
+
has_codebook: ${oc.select:model.pose_vqvae_network.has_codebook,true}
|
| 27 |
+
root_vqvae:
|
| 28 |
+
nb_code: 1024
|
| 29 |
+
code_dim: 60
|
| 30 |
+
num_heads: 1
|
| 31 |
+
pose_vqvae_network:
|
| 32 |
+
_target_: motionbricks.vqvae.neural_modules.vqvae.VQVAE
|
| 33 |
+
pose_root_mode: pose
|
| 34 |
+
motion_rep: ???
|
| 35 |
+
encoder_state_dim: 241
|
| 36 |
+
decoder_state_dim: 329
|
| 37 |
+
decoder_target_cond_dim: 241
|
| 38 |
+
decoder_external_cond_dim: 2
|
| 39 |
+
feature_mode:
|
| 40 |
+
- joint_positions_and_rotations_and_hip_height
|
| 41 |
+
- pose
|
| 42 |
+
- joint_positions_and_rotations_and_hip_height
|
| 43 |
+
- root_without_hip_height_without_heading
|
| 44 |
+
quantizer_strategy: multihead_ema_reset
|
| 45 |
+
quantizer_mu: 0.99
|
| 46 |
+
nb_code: 100000000
|
| 47 |
+
code_dim: 256
|
| 48 |
+
output_emb_width: 256
|
| 49 |
+
down_t: 2
|
| 50 |
+
stride_t: 2
|
| 51 |
+
width: 512
|
| 52 |
+
depth: 4
|
| 53 |
+
dilation_growth_rate: 3
|
| 54 |
+
activation: relu
|
| 55 |
+
num_heads: 8
|
| 56 |
+
kmeans_init: false
|
| 57 |
+
norm: None
|
| 58 |
+
calculate_per_head_perplexity: true
|
| 59 |
+
cond_fusion_last_layer: false
|
| 60 |
+
_target_: motionbricks.motion_backbone.models.pose_model.MotionModel
|
| 61 |
+
motion_rep: ???
|
| 62 |
+
root_vqvae_network: null
|
| 63 |
+
pose_vqvae_motion_rep: local
|
| 64 |
+
denoiser:
|
| 65 |
+
backbone:
|
| 66 |
+
llm_shape: null
|
| 67 |
+
args:
|
| 68 |
+
min_tokens: 6
|
| 69 |
+
max_tokens: 16
|
| 70 |
+
down_t: 2
|
| 71 |
+
vqvae_model_ckpt_path: out/motionbricks_vqvae/version_1/checkpoints/model-step=2000000.ckpt
|
| 72 |
+
pose_vqvae_motion_rep: ${model.pose_vqvae_motion_rep}
|
| 73 |
+
incorrect_token_ratio_min: 0.0
|
| 74 |
+
incorrect_token_ratio_max: 1.0
|
| 75 |
+
masked_token_ratio: 0.8
|
| 76 |
+
batchsize_mul_factor: 2
|
| 77 |
+
pose_root_mode: pose
|
| 78 |
+
local_pose_feature: joint_positions_and_rotations_and_hip_height
|
| 79 |
+
cond_root_feature: root_without_hip_height
|
| 80 |
+
cond_root_feature_is_from_motion_rep: global
|
| 81 |
+
max_num_start_keyframes: 4
|
| 82 |
+
no_start_keyframe_prob: 0.0
|
| 83 |
+
max_num_end_keyframes: 4
|
| 84 |
+
no_end_keyframe_prob: 0.0
|
| 85 |
+
max_num_middle_keyframes: 8
|
| 86 |
+
no_middle_keyframe_prob: 0.5
|
| 87 |
+
prob_provide_text_emb: 0.2
|
| 88 |
+
keyframe_num_warmup_steps: 200000
|
| 89 |
+
floor_estimation: min_joint_height_within_windows
|
| 90 |
+
floor_estimation_window_time: 1.0
|
| 91 |
+
optimizer:
|
| 92 |
+
_target_: adam_atan2_pytorch.AdamAtan2
|
| 93 |
+
_partial_: true
|
| 94 |
+
lr: 0.0001
|
| 95 |
+
weight_decay: 0.0
|
| 96 |
+
scheduler:
|
| 97 |
+
_target_: motionbricks.motionlib.train.scheduler.WarmupCosineScheduler
|
| 98 |
+
_partial_: true
|
| 99 |
+
num_warmup_steps: 10000
|
| 100 |
+
num_training_steps: ${trainer.max_steps}
|
| 101 |
+
final_lr: 2.0e-06
|
| 102 |
+
last_epoch: -1
|
| 103 |
+
lt_kwargs:
|
| 104 |
+
interval: step
|
| 105 |
+
frequency: 1
|
| 106 |
+
trainer:
|
| 107 |
+
_target_: pytorch_lightning.Trainer
|
| 108 |
+
precision: 32
|
| 109 |
+
enable_progress_bar: false
|
| 110 |
+
profiler: null
|
| 111 |
+
check_val_every_n_epoch: null
|
| 112 |
+
detect_anomaly: false
|
| 113 |
+
num_sanity_val_steps: 0
|
| 114 |
+
max_steps: 2000001
|
| 115 |
+
gradient_clip_val: 0.5
|
| 116 |
+
log_every_n_steps: 50
|
| 117 |
+
val_check_interval: 50000
|
| 118 |
+
devices: 8
|
| 119 |
+
num_nodes: 4
|
| 120 |
+
accelerator: gpu
|
| 121 |
+
strategy: ddp
|
| 122 |
+
loggers:
|
| 123 |
+
out_dir: ${out_dir}
|
| 124 |
+
cfg_id: ${id}
|
| 125 |
+
max_steps: ${trainer.max_steps}
|
| 126 |
+
log_nsteps: ${trainer.log_every_n_steps}
|
| 127 |
+
use_wandb: true
|
| 128 |
+
wandb_run: ${wandb_run}
|
| 129 |
+
wandb_group: null
|
| 130 |
+
wandb_project: motionbricks
|
| 131 |
+
wandb_entity: null
|
| 132 |
+
wandb_run_name: motionbricks_pose
|
| 133 |
+
logger_project: motionbricks
|
| 134 |
+
callbacks:
|
| 135 |
+
callback_dict:
|
| 136 |
+
checkpoint_epoch_cb:
|
| 137 |
+
_target_: motionbricks.motionlib.train.callbacks.ckpt.ReadPermissionModelCheckpoint
|
| 138 |
+
monitor: null
|
| 139 |
+
dirpath: out/motionbricks_pose/version_1/checkpoints
|
| 140 |
+
filename: model-{step:07d}
|
| 141 |
+
save_last: false
|
| 142 |
+
save_top_k: -1
|
| 143 |
+
mode: min
|
| 144 |
+
every_n_train_steps: 50000
|
| 145 |
+
learning_rate_monitor:
|
| 146 |
+
_target_: pytorch_lightning.callbacks.LearningRateMonitor
|
| 147 |
+
logging_interval: step
|
| 148 |
+
autoresume:
|
| 149 |
+
_target_: motionbricks.motionlib.train.callbacks.autoresume.AutoResumeCallback
|
| 150 |
+
autoresume_after: 1260000
|
| 151 |
+
save_checkpoint_on_exception: true
|
| 152 |
+
pose_evaluate:
|
| 153 |
+
_target_: motionbricks.motion_backbone.callbacks.evaluation.PoseEvaluate
|
| 154 |
+
every_n_steps: 50001
|
| 155 |
+
train_dataloader: ???
|
| 156 |
+
val_dataloader: ???
|
| 157 |
+
seed: 2333
|
| 158 |
+
batch_size: 32
|
| 159 |
+
max_num_data: 40000
|
| 160 |
+
max_num_visualization: 32
|
| 161 |
+
out_dir: ${run_dir}/vis
|
| 162 |
+
only_rank_zero:
|
| 163 |
+
- learning_rate_monitor
|
| 164 |
+
- pose_evaluate
|
| 165 |
+
need_version: []
|
| 166 |
+
need_dataloaders:
|
| 167 |
+
- pose_evaluate
|
| 168 |
+
need_ema: []
|
| 169 |
+
need_motionbricks_test: []
|
| 170 |
+
need_log:
|
| 171 |
+
- pose_evaluate
|
| 172 |
+
need_autoresume:
|
| 173 |
+
- pose_evaluate
|
| 174 |
+
need_mask_cond_sampler: []
|
| 175 |
+
need_one_logger_callback:
|
| 176 |
+
- autoresume
|
| 177 |
+
dataloader:
|
| 178 |
+
_target_: torch.utils.data.DataLoader
|
| 179 |
+
batch_size: 128
|
| 180 |
+
num_workers: 11
|
| 181 |
+
shuffle: ???
|
| 182 |
+
persistent_workers: true
|
| 183 |
+
collate_fn:
|
| 184 |
+
_target_: motionbricks.motionlib.data.utils.collate_batch
|
| 185 |
+
_partial_: true
|
| 186 |
+
llm_shape: ${model.denoiser.backbone.llm_shape}
|
| 187 |
+
num_frames: null
|
| 188 |
+
data:
|
| 189 |
+
_target_: motionbricks.motionlib.data.motion_dataset.MotionDataset
|
| 190 |
+
name: motionbricks-G1
|
| 191 |
+
folder: ../datasets/motionbricks-G1
|
| 192 |
+
text_embeddings: null
|
| 193 |
+
split: ???
|
| 194 |
+
motion_sampler:
|
| 195 |
+
_target_: motionbricks.motionlib.data.motion_sampler.MaxDurationRandomCrop
|
| 196 |
+
max_seconds: 30
|
| 197 |
+
motion_loading_mode: memmap
|
| 198 |
+
use_natural_desc: true
|
| 199 |
+
use_short_desc: true
|
| 200 |
+
use_technical_desc: false
|
| 201 |
+
use_nv_overview_desc: false
|
| 202 |
+
nv_overview_prob: null
|
| 203 |
+
drop_text_prob: 0.1
|
| 204 |
+
augment_text: false
|
| 205 |
+
aug_text_suffix: ''
|
| 206 |
+
aug_text_prob: 0.75
|
| 207 |
+
aug_text_ind_range:
|
| 208 |
+
- 1
|
| 209 |
+
- 61
|
| 210 |
+
load_neutral_joints: false
|
| 211 |
+
timelines_mode: false
|
| 212 |
+
timelines_name: null
|
| 213 |
+
dataset_sampler: null
|
| 214 |
+
dataset_sampler_only_at_train: true
|
| 215 |
+
to_canonicalize: false
|
| 216 |
+
randomize_first_heading: true
|
| 217 |
+
loading_mode: motion_only
|
| 218 |
+
skeleton:
|
| 219 |
+
base_name: g1skel34
|
| 220 |
+
folder: out/motionbricks_pose/version_1/skeleton
|
| 221 |
+
t_pose: capture
|
| 222 |
+
orig_prefix: ''
|
| 223 |
+
name: g1skel34
|
| 224 |
+
_target_: motionbricks.motionlib.core.skeletons.g1.G1Skeleton34
|
| 225 |
+
motion_rep:
|
| 226 |
+
name: ${skeleton.name}_dual_root_global_joints
|
| 227 |
+
stats:
|
| 228 |
+
_target_: motionbricks.motionlib.core.utils.stats.Stats
|
| 229 |
+
folder: out/motionbricks_pose/version_1/stats/motion
|
| 230 |
+
_target_: motionbricks.motionlib.core.motion_reps.dual_root_global_joints.GlobalRootGlobalJoints
|
| 231 |
+
fps: 30
|
| 232 |
+
wandb_run: motionbricks_pose
|
| 233 |
+
resume: false
|
| 234 |
+
version: 1
|
| 235 |
+
cp: last_epoch
|
| 236 |
+
matmul_precision: high
|
| 237 |
+
seed: 7
|
| 238 |
+
id: ${hydra:runtime.choices.exp}_gpu${trainer.devices}_node${trainer.num_nodes}
|
| 239 |
+
out_dir: out/motionbricks_pose
|
| 240 |
+
run_dir: out/motionbricks_pose/version_1
|
| 241 |
+
pure_testing: false
|
| 242 |
+
config_version: 4
|
| 243 |
+
data_root: datasets
|
| 244 |
+
tmr_checkpoints_root: null
|
| 245 |
+
use_one_logger: false
|
g1/out/motionbricks_pose/version_1/hparams.yaml
ADDED
|
@@ -0,0 +1,245 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
model:
|
| 2 |
+
backbone_network:
|
| 3 |
+
_target_: motionbricks.motion_backbone.neural_modules.pose_backbone.pose_backbone_network
|
| 4 |
+
motion_rep: ???
|
| 5 |
+
args:
|
| 6 |
+
pose_root_mode: ${model.args.pose_root_mode}
|
| 7 |
+
min_tokens: ${model.args.min_tokens}
|
| 8 |
+
max_tokens: ${model.args.max_tokens}
|
| 9 |
+
down_t: ${model.args.down_t}
|
| 10 |
+
pose_token_mlp_num_layers: 2
|
| 11 |
+
root_feat_width: 256
|
| 12 |
+
pose_feat_width: 640
|
| 13 |
+
token_length_feat_width: 128
|
| 14 |
+
text_emb_dim: 4096
|
| 15 |
+
text_embeddings: ${data.text_embeddings}
|
| 16 |
+
local_pose_feature: ${model.args.local_pose_feature}
|
| 17 |
+
cond_root_feature: ${model.args.cond_root_feature}
|
| 18 |
+
cond_root_feature_is_from_motion_rep: ${model.args.cond_root_feature_is_from_motion_rep}
|
| 19 |
+
n_embd: 1024
|
| 20 |
+
n_head: 16
|
| 21 |
+
n_layers: 16
|
| 22 |
+
pose_vqvae:
|
| 23 |
+
nb_code: ${model.pose_vqvae_network.nb_code}
|
| 24 |
+
code_dim: ${model.pose_vqvae_network.code_dim}
|
| 25 |
+
num_heads: ${model.pose_vqvae_network.num_heads}
|
| 26 |
+
has_codebook: ${oc.select:model.pose_vqvae_network.has_codebook,true}
|
| 27 |
+
root_vqvae:
|
| 28 |
+
nb_code: 1024
|
| 29 |
+
code_dim: 60
|
| 30 |
+
num_heads: 1
|
| 31 |
+
pose_vqvae_network:
|
| 32 |
+
_target_: motionbricks.vqvae.neural_modules.vqvae.VQVAE
|
| 33 |
+
pose_root_mode: pose
|
| 34 |
+
motion_rep: ???
|
| 35 |
+
encoder_state_dim: 241
|
| 36 |
+
decoder_state_dim: 329
|
| 37 |
+
decoder_target_cond_dim: 241
|
| 38 |
+
decoder_external_cond_dim: 2
|
| 39 |
+
feature_mode:
|
| 40 |
+
- joint_positions_and_rotations_and_hip_height
|
| 41 |
+
- pose
|
| 42 |
+
- joint_positions_and_rotations_and_hip_height
|
| 43 |
+
- root_without_hip_height_without_heading
|
| 44 |
+
quantizer_strategy: multihead_ema_reset
|
| 45 |
+
quantizer_mu: 0.99
|
| 46 |
+
nb_code: 100000000
|
| 47 |
+
code_dim: 256
|
| 48 |
+
output_emb_width: 256
|
| 49 |
+
down_t: 2
|
| 50 |
+
stride_t: 2
|
| 51 |
+
width: 512
|
| 52 |
+
depth: 4
|
| 53 |
+
dilation_growth_rate: 3
|
| 54 |
+
activation: relu
|
| 55 |
+
num_heads: 8
|
| 56 |
+
kmeans_init: false
|
| 57 |
+
norm: None
|
| 58 |
+
calculate_per_head_perplexity: true
|
| 59 |
+
cond_fusion_last_layer: false
|
| 60 |
+
_target_: motionbricks.motion_backbone.models.pose_model.MotionModel
|
| 61 |
+
motion_rep: ???
|
| 62 |
+
root_vqvae_network: null
|
| 63 |
+
pose_vqvae_motion_rep: local
|
| 64 |
+
denoiser:
|
| 65 |
+
backbone:
|
| 66 |
+
llm_shape: null
|
| 67 |
+
args:
|
| 68 |
+
min_tokens: 6
|
| 69 |
+
max_tokens: 16
|
| 70 |
+
down_t: 2
|
| 71 |
+
vqvae_model_ckpt_path: out/motionbricks_vqvae/version_1/checkpoints/model-step=2000000.ckpt
|
| 72 |
+
pose_vqvae_motion_rep: ${model.pose_vqvae_motion_rep}
|
| 73 |
+
incorrect_token_ratio_min: 0.0
|
| 74 |
+
incorrect_token_ratio_max: 1.0
|
| 75 |
+
masked_token_ratio: 0.8
|
| 76 |
+
batchsize_mul_factor: 2
|
| 77 |
+
pose_root_mode: pose
|
| 78 |
+
local_pose_feature: joint_positions_and_rotations_and_hip_height
|
| 79 |
+
cond_root_feature: root_without_hip_height
|
| 80 |
+
cond_root_feature_is_from_motion_rep: global
|
| 81 |
+
max_num_start_keyframes: 4
|
| 82 |
+
no_start_keyframe_prob: 0.0
|
| 83 |
+
max_num_end_keyframes: 4
|
| 84 |
+
no_end_keyframe_prob: 0.0
|
| 85 |
+
max_num_middle_keyframes: 8
|
| 86 |
+
no_middle_keyframe_prob: 0.5
|
| 87 |
+
prob_provide_text_emb: 0.2
|
| 88 |
+
keyframe_num_warmup_steps: 200000
|
| 89 |
+
floor_estimation: min_joint_height_within_windows
|
| 90 |
+
floor_estimation_window_time: 1.0
|
| 91 |
+
optimizer:
|
| 92 |
+
_target_: adam_atan2_pytorch.AdamAtan2
|
| 93 |
+
_partial_: true
|
| 94 |
+
lr: 0.0001
|
| 95 |
+
weight_decay: 0.0
|
| 96 |
+
scheduler:
|
| 97 |
+
_target_: motionbricks.motionlib.train.scheduler.WarmupCosineScheduler
|
| 98 |
+
_partial_: true
|
| 99 |
+
num_warmup_steps: 10000
|
| 100 |
+
num_training_steps: ${trainer.max_steps}
|
| 101 |
+
final_lr: 2.0e-06
|
| 102 |
+
last_epoch: -1
|
| 103 |
+
lt_kwargs:
|
| 104 |
+
interval: step
|
| 105 |
+
frequency: 1
|
| 106 |
+
trainer:
|
| 107 |
+
_target_: pytorch_lightning.Trainer
|
| 108 |
+
precision: 32
|
| 109 |
+
enable_progress_bar: false
|
| 110 |
+
profiler: null
|
| 111 |
+
check_val_every_n_epoch: null
|
| 112 |
+
detect_anomaly: false
|
| 113 |
+
num_sanity_val_steps: 0
|
| 114 |
+
max_steps: 2000001
|
| 115 |
+
gradient_clip_val: 0.5
|
| 116 |
+
log_every_n_steps: 50
|
| 117 |
+
val_check_interval: 50000
|
| 118 |
+
devices: 8
|
| 119 |
+
num_nodes: 4
|
| 120 |
+
accelerator: gpu
|
| 121 |
+
strategy: ddp
|
| 122 |
+
loggers:
|
| 123 |
+
out_dir: ${out_dir}
|
| 124 |
+
cfg_id: ${id}
|
| 125 |
+
max_steps: ${trainer.max_steps}
|
| 126 |
+
log_nsteps: ${trainer.log_every_n_steps}
|
| 127 |
+
use_wandb: true
|
| 128 |
+
wandb_run: ${wandb_run}
|
| 129 |
+
wandb_group: null
|
| 130 |
+
wandb_project: motionbricks
|
| 131 |
+
wandb_entity: null
|
| 132 |
+
wandb_run_name: motionbricks_pose
|
| 133 |
+
logger_project: motionbricks
|
| 134 |
+
callbacks:
|
| 135 |
+
callback_dict:
|
| 136 |
+
checkpoint_epoch_cb:
|
| 137 |
+
_target_: motionbricks.motionlib.train.callbacks.ckpt.ReadPermissionModelCheckpoint
|
| 138 |
+
monitor: null
|
| 139 |
+
dirpath: null
|
| 140 |
+
filename: model-{step:07d}
|
| 141 |
+
save_last: false
|
| 142 |
+
save_top_k: -1
|
| 143 |
+
mode: min
|
| 144 |
+
every_n_train_steps: 50000
|
| 145 |
+
learning_rate_monitor:
|
| 146 |
+
_target_: pytorch_lightning.callbacks.LearningRateMonitor
|
| 147 |
+
logging_interval: step
|
| 148 |
+
autoresume:
|
| 149 |
+
_target_: motionbricks.motionlib.train.callbacks.autoresume.AutoResumeCallback
|
| 150 |
+
autoresume_after: 1260000
|
| 151 |
+
save_checkpoint_on_exception: true
|
| 152 |
+
pose_evaluate:
|
| 153 |
+
_target_: motionbricks.motion_backbone.callbacks.evaluation.PoseEvaluate
|
| 154 |
+
every_n_steps: 50001
|
| 155 |
+
train_dataloader: ???
|
| 156 |
+
val_dataloader: ???
|
| 157 |
+
seed: 2333
|
| 158 |
+
batch_size: 32
|
| 159 |
+
max_num_data: 40000
|
| 160 |
+
max_num_visualization: 32
|
| 161 |
+
out_dir: ${run_dir}/vis
|
| 162 |
+
only_rank_zero:
|
| 163 |
+
- learning_rate_monitor
|
| 164 |
+
- pose_evaluate
|
| 165 |
+
need_version: []
|
| 166 |
+
need_dataloaders:
|
| 167 |
+
- pose_evaluate
|
| 168 |
+
need_ema: []
|
| 169 |
+
need_motionbricks_test: []
|
| 170 |
+
need_log:
|
| 171 |
+
- pose_evaluate
|
| 172 |
+
need_autoresume:
|
| 173 |
+
- pose_evaluate
|
| 174 |
+
need_mask_cond_sampler: []
|
| 175 |
+
need_one_logger_callback:
|
| 176 |
+
- autoresume
|
| 177 |
+
dataloader:
|
| 178 |
+
_target_: torch.utils.data.DataLoader
|
| 179 |
+
batch_size: 128
|
| 180 |
+
num_workers: 11
|
| 181 |
+
shuffle: ???
|
| 182 |
+
persistent_workers: true
|
| 183 |
+
collate_fn:
|
| 184 |
+
_target_: motionbricks.motionlib.data.utils.collate_batch
|
| 185 |
+
_partial_: true
|
| 186 |
+
llm_shape: ${model.denoiser.backbone.llm_shape}
|
| 187 |
+
num_frames: null
|
| 188 |
+
data:
|
| 189 |
+
_target_: motionbricks.motionlib.data.motion_dataset.MotionDataset
|
| 190 |
+
name: motionbricks-G1
|
| 191 |
+
folder: ../datasets/motionbricks-G1
|
| 192 |
+
text_embeddings: null
|
| 193 |
+
split: ???
|
| 194 |
+
motion_sampler:
|
| 195 |
+
_target_: motionbricks.motionlib.data.motion_sampler.MaxDurationRandomCrop
|
| 196 |
+
max_seconds: 30
|
| 197 |
+
motion_loading_mode: memmap
|
| 198 |
+
use_natural_desc: true
|
| 199 |
+
use_short_desc: true
|
| 200 |
+
use_technical_desc: false
|
| 201 |
+
use_nv_overview_desc: false
|
| 202 |
+
nv_overview_prob: null
|
| 203 |
+
drop_text_prob: 0.1
|
| 204 |
+
augment_text: false
|
| 205 |
+
aug_text_suffix: ''
|
| 206 |
+
aug_text_prob: 0.75
|
| 207 |
+
aug_text_ind_range:
|
| 208 |
+
- 1
|
| 209 |
+
- 61
|
| 210 |
+
load_neutral_joints: false
|
| 211 |
+
timelines_mode: false
|
| 212 |
+
timelines_name: null
|
| 213 |
+
dataset_sampler: null
|
| 214 |
+
dataset_sampler_only_at_train: true
|
| 215 |
+
to_canonicalize: false
|
| 216 |
+
randomize_first_heading: true
|
| 217 |
+
loading_mode: motion_only
|
| 218 |
+
skeleton:
|
| 219 |
+
base_name: g1skel34
|
| 220 |
+
folder: out/motionbricks_pose/version_1/skeleton
|
| 221 |
+
t_pose: capture
|
| 222 |
+
orig_prefix: ''
|
| 223 |
+
name: g1skel34
|
| 224 |
+
_target_: motionbricks.motionlib.core.skeletons.g1.G1Skeleton34
|
| 225 |
+
motion_rep:
|
| 226 |
+
name: ${skeleton.name}_dual_root_global_joints
|
| 227 |
+
stats:
|
| 228 |
+
_target_: motionbricks.motionlib.core.utils.stats.Stats
|
| 229 |
+
folder: out/motionbricks_pose/version_1/stats/motion
|
| 230 |
+
_target_: motionbricks.motionlib.core.motion_reps.dual_root_global_joints.GlobalRootGlobalJoints
|
| 231 |
+
fps: 30
|
| 232 |
+
wandb_run: motionbricks_pose
|
| 233 |
+
resume: false
|
| 234 |
+
version: 1
|
| 235 |
+
cp: last_epoch
|
| 236 |
+
matmul_precision: high
|
| 237 |
+
seed: 7
|
| 238 |
+
id: ${hydra:runtime.choices.exp}_gpu${trainer.devices}_node${trainer.num_nodes}
|
| 239 |
+
out_dir: out/motionbricks_pose
|
| 240 |
+
run_dir: ???
|
| 241 |
+
pure_testing: false
|
| 242 |
+
config_version: 4
|
| 243 |
+
data_root: datasets
|
| 244 |
+
tmr_checkpoints_root: null
|
| 245 |
+
use_one_logger: false
|
g1/out/motionbricks_pose/version_1/meta.yaml
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
wandb_run: motionbricks_pose
|
g1/out/motionbricks_pose/version_1/skeleton/joints.npy
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:6a682fc9d36204eb8e58c6b29eb0881e36242ed94dff078c82a373cdc6783ab0
|
| 3 |
+
size 944
|
g1/out/motionbricks_pose/version_1/skeleton/parents.npy
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:02754fe01a8dcad13b9e3f95f7a696f56bccc5eeb5f5bf701f31cec88e23b1c4
|
| 3 |
+
size 400
|
g1/out/motionbricks_pose/version_1/skeleton/skeleton.yaml
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
base_name: g1skel34
|
| 2 |
+
folder: ${data.folder}/features/motion_rep/${motion_rep.name}_fps_${fps}/skeleton
|
| 3 |
+
t_pose: capture
|
| 4 |
+
orig_prefix: ''
|
| 5 |
+
name: g1skel34
|
| 6 |
+
_target_: motionbricks.motionlib.core.skeletons.g1.G1Skeleton34
|
g1/out/motionbricks_pose/version_1/stats/motion/mean.npy
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:ca390f0081e2373ab71e860a3546cb70cc11fdfac6ce525155403e047b66fdea
|
| 3 |
+
size 3472
|
g1/out/motionbricks_pose/version_1/stats/motion/std.npy
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:fca7dd6135cbe96504b1307a7db97e9004556937a2fc72d139077b962cee6bd7
|
| 3 |
+
size 3472
|
g1/out/motionbricks_root/version_1/checkpoints/model-step=2000000.json
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"schema_version": 1,
|
| 3 |
+
"source_checkpoint_sha256": "d7299a9b1f5aca35730c36dfe7ea28075708ac8266bf384fe8e2ef9c9aee69c7",
|
| 4 |
+
"epoch": 13071,
|
| 5 |
+
"global_step": 2000000,
|
| 6 |
+
"pytorch_lightning_version": "2.4.0",
|
| 7 |
+
"state_dict_metadata": {},
|
| 8 |
+
"omitted_training_state": [
|
| 9 |
+
"loops",
|
| 10 |
+
"callbacks",
|
| 11 |
+
"optimizer_states",
|
| 12 |
+
"lr_schedulers"
|
| 13 |
+
]
|
| 14 |
+
}
|
g1/out/motionbricks_root/version_1/checkpoints/model-step=2000000.safetensors
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:da6ff2c05e45dfe4ac5e8e8362a6404f5c927fcddb18410e6804b61e55d4f2dc
|
| 3 |
+
size 136510540
|
g1/out/motionbricks_root/version_1/config.yaml
ADDED
|
@@ -0,0 +1,223 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
model:
|
| 2 |
+
backbone_network:
|
| 3 |
+
_target_: motionbricks.motion_backbone.neural_modules.root_backbone.root_backbone_network
|
| 4 |
+
motion_rep: ???
|
| 5 |
+
args:
|
| 6 |
+
min_tokens: ${model.args.min_tokens}
|
| 7 |
+
max_tokens: ${model.args.max_tokens}
|
| 8 |
+
down_t: ${model.args.down_t}
|
| 9 |
+
use_hard_num_token_emb_for_root_prediction: ${model.args.use_hard_num_token_emb_for_root_prediction}
|
| 10 |
+
local_root_feature: ${model.args.local_root_feature}
|
| 11 |
+
global_root_feature: ${model.args.global_root_feature}
|
| 12 |
+
local_pose_feature: ${model.args.local_pose_feature}
|
| 13 |
+
pose_feat_dim: 256
|
| 14 |
+
local_root_feat_dim: 64
|
| 15 |
+
global_root_feat_dim: 64
|
| 16 |
+
text_emb_dim: 4096
|
| 17 |
+
text_embeddings: ${data.text_embeddings}
|
| 18 |
+
input_feat_mlp_num_layers: 2
|
| 19 |
+
n_embd: 512
|
| 20 |
+
n_head: 16
|
| 21 |
+
n_layers_shared: 3
|
| 22 |
+
n_layers_root_token: 3
|
| 23 |
+
width: 512
|
| 24 |
+
depth: 4
|
| 25 |
+
dilation_growth_rate: 3
|
| 26 |
+
activation: relu
|
| 27 |
+
norm: None
|
| 28 |
+
pose_vqvae:
|
| 29 |
+
nb_code: 1024
|
| 30 |
+
code_dim: 60
|
| 31 |
+
num_heads: 1
|
| 32 |
+
root_vqvae:
|
| 33 |
+
nb_code: 1024
|
| 34 |
+
code_dim: 60
|
| 35 |
+
num_heads: 1
|
| 36 |
+
_target_: motionbricks.motion_backbone.models.root_model.MotionModel
|
| 37 |
+
motion_rep: ???
|
| 38 |
+
root_vqvae_network: null
|
| 39 |
+
pose_vqvae_network: null
|
| 40 |
+
denoiser:
|
| 41 |
+
backbone:
|
| 42 |
+
llm_shape: null
|
| 43 |
+
args:
|
| 44 |
+
pose_root_mode: root
|
| 45 |
+
local_pose_feature: joint_positions_and_rotations_and_hip_height
|
| 46 |
+
local_root_feature: root
|
| 47 |
+
global_root_feature: root
|
| 48 |
+
min_tokens: 6
|
| 49 |
+
max_tokens: 16
|
| 50 |
+
use_hard_num_token_emb_for_root_prediction: true
|
| 51 |
+
min_off_target_tokens_to_sample: 25
|
| 52 |
+
max_off_target_tokens_to_sample: 40
|
| 53 |
+
prob_off_range_target_token: 0.0
|
| 54 |
+
prob_provide_num_tokens: 0.0
|
| 55 |
+
down_t: 2
|
| 56 |
+
vqvae_model_ckpt_path: null
|
| 57 |
+
batchsize_mul_factor: 2
|
| 58 |
+
max_num_start_keyframes: 4
|
| 59 |
+
no_start_keyframe_prob: 0.0
|
| 60 |
+
max_num_end_keyframes: 4
|
| 61 |
+
no_end_keyframe_prob: 0.0
|
| 62 |
+
prob_provide_text_emb: 0.0
|
| 63 |
+
num_token_loss_coeff: 1.0
|
| 64 |
+
global_root_loss_coeff: 2.0
|
| 65 |
+
local_root_loss_coeff: 1.0
|
| 66 |
+
keyframe_num_warmup_steps: 200000
|
| 67 |
+
floor_estimation: min_joint_height_within_windows
|
| 68 |
+
floor_estimation_window_time: 1.0
|
| 69 |
+
optimizer:
|
| 70 |
+
_target_: adam_atan2_pytorch.AdamAtan2
|
| 71 |
+
_partial_: true
|
| 72 |
+
lr: 0.0001
|
| 73 |
+
weight_decay: 0.0
|
| 74 |
+
scheduler:
|
| 75 |
+
_target_: motionbricks.motionlib.train.scheduler.WarmupCosineScheduler
|
| 76 |
+
_partial_: true
|
| 77 |
+
num_warmup_steps: 10000
|
| 78 |
+
num_training_steps: ${trainer.max_steps}
|
| 79 |
+
final_lr: 2.0e-06
|
| 80 |
+
last_epoch: -1
|
| 81 |
+
lt_kwargs:
|
| 82 |
+
interval: step
|
| 83 |
+
frequency: 1
|
| 84 |
+
trainer:
|
| 85 |
+
_target_: pytorch_lightning.Trainer
|
| 86 |
+
precision: 32
|
| 87 |
+
enable_progress_bar: false
|
| 88 |
+
profiler: null
|
| 89 |
+
check_val_every_n_epoch: null
|
| 90 |
+
detect_anomaly: false
|
| 91 |
+
num_sanity_val_steps: 0
|
| 92 |
+
max_steps: 2000001
|
| 93 |
+
gradient_clip_val: 0.5
|
| 94 |
+
log_every_n_steps: 50
|
| 95 |
+
val_check_interval: 50000
|
| 96 |
+
devices: 8
|
| 97 |
+
num_nodes: 2
|
| 98 |
+
accelerator: gpu
|
| 99 |
+
strategy: ddp
|
| 100 |
+
loggers:
|
| 101 |
+
out_dir: ${out_dir}
|
| 102 |
+
cfg_id: ${id}
|
| 103 |
+
max_steps: ${trainer.max_steps}
|
| 104 |
+
log_nsteps: ${trainer.log_every_n_steps}
|
| 105 |
+
use_wandb: true
|
| 106 |
+
wandb_run: ${wandb_run}
|
| 107 |
+
wandb_group: null
|
| 108 |
+
wandb_project: motionbricks
|
| 109 |
+
wandb_entity: null
|
| 110 |
+
wandb_run_name: motionbricks_root
|
| 111 |
+
logger_project: motionbricks
|
| 112 |
+
callbacks:
|
| 113 |
+
callback_dict:
|
| 114 |
+
checkpoint_epoch_cb:
|
| 115 |
+
_target_: motionbricks.motionlib.train.callbacks.ckpt.ReadPermissionModelCheckpoint
|
| 116 |
+
monitor: null
|
| 117 |
+
dirpath: out/motionbricks_root/version_1/checkpoints
|
| 118 |
+
filename: model-{step:07d}
|
| 119 |
+
save_last: false
|
| 120 |
+
save_top_k: -1
|
| 121 |
+
mode: min
|
| 122 |
+
every_n_train_steps: 50000
|
| 123 |
+
learning_rate_monitor:
|
| 124 |
+
_target_: pytorch_lightning.callbacks.LearningRateMonitor
|
| 125 |
+
logging_interval: step
|
| 126 |
+
autoresume:
|
| 127 |
+
_target_: motionbricks.motionlib.train.callbacks.autoresume.AutoResumeCallback
|
| 128 |
+
autoresume_after: 1260000
|
| 129 |
+
save_checkpoint_on_exception: true
|
| 130 |
+
pose_evaluate:
|
| 131 |
+
_target_: motionbricks.motion_backbone.callbacks.evaluation.PoseEvaluate
|
| 132 |
+
every_n_steps: 50001
|
| 133 |
+
train_dataloader: ???
|
| 134 |
+
val_dataloader: ???
|
| 135 |
+
seed: 2333
|
| 136 |
+
batch_size: 32
|
| 137 |
+
max_num_data: 40000
|
| 138 |
+
max_num_visualization: 32
|
| 139 |
+
out_dir: ${run_dir}/vis
|
| 140 |
+
only_rank_zero:
|
| 141 |
+
- learning_rate_monitor
|
| 142 |
+
- pose_evaluate
|
| 143 |
+
need_version: []
|
| 144 |
+
need_dataloaders:
|
| 145 |
+
- pose_evaluate
|
| 146 |
+
need_ema: []
|
| 147 |
+
need_motionbricks_test: []
|
| 148 |
+
need_log:
|
| 149 |
+
- pose_evaluate
|
| 150 |
+
need_autoresume:
|
| 151 |
+
- pose_evaluate
|
| 152 |
+
need_mask_cond_sampler: []
|
| 153 |
+
need_one_logger_callback:
|
| 154 |
+
- autoresume
|
| 155 |
+
dataloader:
|
| 156 |
+
_target_: torch.utils.data.DataLoader
|
| 157 |
+
batch_size: 128
|
| 158 |
+
num_workers: 11
|
| 159 |
+
shuffle: ???
|
| 160 |
+
persistent_workers: true
|
| 161 |
+
collate_fn:
|
| 162 |
+
_target_: motionbricks.motionlib.data.utils.collate_batch
|
| 163 |
+
_partial_: true
|
| 164 |
+
llm_shape: ${model.denoiser.backbone.llm_shape}
|
| 165 |
+
num_frames: null
|
| 166 |
+
data:
|
| 167 |
+
_target_: motionbricks.motionlib.data.motion_dataset.MotionDataset
|
| 168 |
+
name: motionbricks-G1
|
| 169 |
+
folder: ../datasets/motionbricks-G1
|
| 170 |
+
text_embeddings: null
|
| 171 |
+
split: ???
|
| 172 |
+
motion_sampler:
|
| 173 |
+
_target_: motionbricks.motionlib.data.motion_sampler.MaxDurationRandomCrop
|
| 174 |
+
max_seconds: 30
|
| 175 |
+
motion_loading_mode: memmap
|
| 176 |
+
use_natural_desc: true
|
| 177 |
+
use_short_desc: true
|
| 178 |
+
use_technical_desc: false
|
| 179 |
+
use_nv_overview_desc: false
|
| 180 |
+
nv_overview_prob: null
|
| 181 |
+
drop_text_prob: 0.1
|
| 182 |
+
augment_text: false
|
| 183 |
+
aug_text_suffix: ''
|
| 184 |
+
aug_text_prob: 0.75
|
| 185 |
+
aug_text_ind_range:
|
| 186 |
+
- 1
|
| 187 |
+
- 61
|
| 188 |
+
load_neutral_joints: false
|
| 189 |
+
timelines_mode: false
|
| 190 |
+
timelines_name: null
|
| 191 |
+
dataset_sampler: null
|
| 192 |
+
dataset_sampler_only_at_train: true
|
| 193 |
+
to_canonicalize: false
|
| 194 |
+
randomize_first_heading: true
|
| 195 |
+
loading_mode: motion_only
|
| 196 |
+
skeleton:
|
| 197 |
+
base_name: g1skel34
|
| 198 |
+
folder: out/motionbricks_root/version_1/skeleton
|
| 199 |
+
t_pose: capture
|
| 200 |
+
orig_prefix: ''
|
| 201 |
+
name: g1skel34
|
| 202 |
+
_target_: motionbricks.motionlib.core.skeletons.g1.G1Skeleton34
|
| 203 |
+
motion_rep:
|
| 204 |
+
name: ${skeleton.name}_dual_root_global_joints
|
| 205 |
+
stats:
|
| 206 |
+
_target_: motionbricks.motionlib.core.utils.stats.Stats
|
| 207 |
+
folder: out/motionbricks_root/version_1/stats/motion
|
| 208 |
+
_target_: motionbricks.motionlib.core.motion_reps.dual_root_global_joints.GlobalRootGlobalJoints
|
| 209 |
+
fps: 30
|
| 210 |
+
wandb_run: motionbricks_root
|
| 211 |
+
resume: false
|
| 212 |
+
version: 1
|
| 213 |
+
cp: last_epoch
|
| 214 |
+
matmul_precision: high
|
| 215 |
+
seed: 7
|
| 216 |
+
id: ${hydra:runtime.choices.exp}_gpu${trainer.devices}_node${trainer.num_nodes}
|
| 217 |
+
out_dir: out/motionbricks_root
|
| 218 |
+
run_dir: out/motionbricks_root/version_1
|
| 219 |
+
pure_testing: false
|
| 220 |
+
config_version: 4
|
| 221 |
+
data_root: datasets
|
| 222 |
+
tmr_checkpoints_root: null
|
| 223 |
+
use_one_logger: false
|
g1/out/motionbricks_root/version_1/hparams.yaml
ADDED
|
@@ -0,0 +1,223 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
model:
|
| 2 |
+
backbone_network:
|
| 3 |
+
_target_: motionbricks.motion_backbone.neural_modules.root_backbone.root_backbone_network
|
| 4 |
+
motion_rep: ???
|
| 5 |
+
args:
|
| 6 |
+
min_tokens: ${model.args.min_tokens}
|
| 7 |
+
max_tokens: ${model.args.max_tokens}
|
| 8 |
+
down_t: ${model.args.down_t}
|
| 9 |
+
use_hard_num_token_emb_for_root_prediction: ${model.args.use_hard_num_token_emb_for_root_prediction}
|
| 10 |
+
local_root_feature: ${model.args.local_root_feature}
|
| 11 |
+
global_root_feature: ${model.args.global_root_feature}
|
| 12 |
+
local_pose_feature: ${model.args.local_pose_feature}
|
| 13 |
+
pose_feat_dim: 256
|
| 14 |
+
local_root_feat_dim: 64
|
| 15 |
+
global_root_feat_dim: 64
|
| 16 |
+
text_emb_dim: 4096
|
| 17 |
+
text_embeddings: ${data.text_embeddings}
|
| 18 |
+
input_feat_mlp_num_layers: 2
|
| 19 |
+
n_embd: 512
|
| 20 |
+
n_head: 16
|
| 21 |
+
n_layers_shared: 3
|
| 22 |
+
n_layers_root_token: 3
|
| 23 |
+
width: 512
|
| 24 |
+
depth: 4
|
| 25 |
+
dilation_growth_rate: 3
|
| 26 |
+
activation: relu
|
| 27 |
+
norm: None
|
| 28 |
+
pose_vqvae:
|
| 29 |
+
nb_code: 1024
|
| 30 |
+
code_dim: 60
|
| 31 |
+
num_heads: 1
|
| 32 |
+
root_vqvae:
|
| 33 |
+
nb_code: 1024
|
| 34 |
+
code_dim: 60
|
| 35 |
+
num_heads: 1
|
| 36 |
+
_target_: motionbricks.motion_backbone.models.root_model.MotionModel
|
| 37 |
+
motion_rep: ???
|
| 38 |
+
root_vqvae_network: null
|
| 39 |
+
pose_vqvae_network: null
|
| 40 |
+
denoiser:
|
| 41 |
+
backbone:
|
| 42 |
+
llm_shape: null
|
| 43 |
+
args:
|
| 44 |
+
pose_root_mode: root
|
| 45 |
+
local_pose_feature: joint_positions_and_rotations_and_hip_height
|
| 46 |
+
local_root_feature: root
|
| 47 |
+
global_root_feature: root
|
| 48 |
+
min_tokens: 6
|
| 49 |
+
max_tokens: 16
|
| 50 |
+
use_hard_num_token_emb_for_root_prediction: true
|
| 51 |
+
min_off_target_tokens_to_sample: 25
|
| 52 |
+
max_off_target_tokens_to_sample: 40
|
| 53 |
+
prob_off_range_target_token: 0.0
|
| 54 |
+
prob_provide_num_tokens: 0.0
|
| 55 |
+
down_t: 2
|
| 56 |
+
vqvae_model_ckpt_path: null
|
| 57 |
+
batchsize_mul_factor: 2
|
| 58 |
+
max_num_start_keyframes: 4
|
| 59 |
+
no_start_keyframe_prob: 0.0
|
| 60 |
+
max_num_end_keyframes: 4
|
| 61 |
+
no_end_keyframe_prob: 0.0
|
| 62 |
+
prob_provide_text_emb: 0.0
|
| 63 |
+
num_token_loss_coeff: 1.0
|
| 64 |
+
global_root_loss_coeff: 2.0
|
| 65 |
+
local_root_loss_coeff: 1.0
|
| 66 |
+
keyframe_num_warmup_steps: 200000
|
| 67 |
+
floor_estimation: min_joint_height_within_windows
|
| 68 |
+
floor_estimation_window_time: 1.0
|
| 69 |
+
optimizer:
|
| 70 |
+
_target_: adam_atan2_pytorch.AdamAtan2
|
| 71 |
+
_partial_: true
|
| 72 |
+
lr: 0.0001
|
| 73 |
+
weight_decay: 0.0
|
| 74 |
+
scheduler:
|
| 75 |
+
_target_: motionbricks.motionlib.train.scheduler.WarmupCosineScheduler
|
| 76 |
+
_partial_: true
|
| 77 |
+
num_warmup_steps: 10000
|
| 78 |
+
num_training_steps: ${trainer.max_steps}
|
| 79 |
+
final_lr: 2.0e-06
|
| 80 |
+
last_epoch: -1
|
| 81 |
+
lt_kwargs:
|
| 82 |
+
interval: step
|
| 83 |
+
frequency: 1
|
| 84 |
+
trainer:
|
| 85 |
+
_target_: pytorch_lightning.Trainer
|
| 86 |
+
precision: 32
|
| 87 |
+
enable_progress_bar: false
|
| 88 |
+
profiler: null
|
| 89 |
+
check_val_every_n_epoch: null
|
| 90 |
+
detect_anomaly: false
|
| 91 |
+
num_sanity_val_steps: 0
|
| 92 |
+
max_steps: 2000001
|
| 93 |
+
gradient_clip_val: 0.5
|
| 94 |
+
log_every_n_steps: 50
|
| 95 |
+
val_check_interval: 50000
|
| 96 |
+
devices: 8
|
| 97 |
+
num_nodes: 2
|
| 98 |
+
accelerator: gpu
|
| 99 |
+
strategy: ddp
|
| 100 |
+
loggers:
|
| 101 |
+
out_dir: ${out_dir}
|
| 102 |
+
cfg_id: ${id}
|
| 103 |
+
max_steps: ${trainer.max_steps}
|
| 104 |
+
log_nsteps: ${trainer.log_every_n_steps}
|
| 105 |
+
use_wandb: true
|
| 106 |
+
wandb_run: ${wandb_run}
|
| 107 |
+
wandb_group: null
|
| 108 |
+
wandb_project: motionbricks
|
| 109 |
+
wandb_entity: null
|
| 110 |
+
wandb_run_name: motionbricks_root
|
| 111 |
+
logger_project: motionbricks
|
| 112 |
+
callbacks:
|
| 113 |
+
callback_dict:
|
| 114 |
+
checkpoint_epoch_cb:
|
| 115 |
+
_target_: motionbricks.motionlib.train.callbacks.ckpt.ReadPermissionModelCheckpoint
|
| 116 |
+
monitor: null
|
| 117 |
+
dirpath: null
|
| 118 |
+
filename: model-{step:07d}
|
| 119 |
+
save_last: false
|
| 120 |
+
save_top_k: -1
|
| 121 |
+
mode: min
|
| 122 |
+
every_n_train_steps: 50000
|
| 123 |
+
learning_rate_monitor:
|
| 124 |
+
_target_: pytorch_lightning.callbacks.LearningRateMonitor
|
| 125 |
+
logging_interval: step
|
| 126 |
+
autoresume:
|
| 127 |
+
_target_: motionbricks.motionlib.train.callbacks.autoresume.AutoResumeCallback
|
| 128 |
+
autoresume_after: 1260000
|
| 129 |
+
save_checkpoint_on_exception: true
|
| 130 |
+
pose_evaluate:
|
| 131 |
+
_target_: motionbricks.motion_backbone.callbacks.evaluation.PoseEvaluate
|
| 132 |
+
every_n_steps: 50001
|
| 133 |
+
train_dataloader: ???
|
| 134 |
+
val_dataloader: ???
|
| 135 |
+
seed: 2333
|
| 136 |
+
batch_size: 32
|
| 137 |
+
max_num_data: 40000
|
| 138 |
+
max_num_visualization: 32
|
| 139 |
+
out_dir: ${run_dir}/vis
|
| 140 |
+
only_rank_zero:
|
| 141 |
+
- learning_rate_monitor
|
| 142 |
+
- pose_evaluate
|
| 143 |
+
need_version: []
|
| 144 |
+
need_dataloaders:
|
| 145 |
+
- pose_evaluate
|
| 146 |
+
need_ema: []
|
| 147 |
+
need_motionbricks_test: []
|
| 148 |
+
need_log:
|
| 149 |
+
- pose_evaluate
|
| 150 |
+
need_autoresume:
|
| 151 |
+
- pose_evaluate
|
| 152 |
+
need_mask_cond_sampler: []
|
| 153 |
+
need_one_logger_callback:
|
| 154 |
+
- autoresume
|
| 155 |
+
dataloader:
|
| 156 |
+
_target_: torch.utils.data.DataLoader
|
| 157 |
+
batch_size: 128
|
| 158 |
+
num_workers: 11
|
| 159 |
+
shuffle: ???
|
| 160 |
+
persistent_workers: true
|
| 161 |
+
collate_fn:
|
| 162 |
+
_target_: motionbricks.motionlib.data.utils.collate_batch
|
| 163 |
+
_partial_: true
|
| 164 |
+
llm_shape: ${model.denoiser.backbone.llm_shape}
|
| 165 |
+
num_frames: null
|
| 166 |
+
data:
|
| 167 |
+
_target_: motionbricks.motionlib.data.motion_dataset.MotionDataset
|
| 168 |
+
name: motionbricks-G1
|
| 169 |
+
folder: ../datasets/motionbricks-G1
|
| 170 |
+
text_embeddings: null
|
| 171 |
+
split: ???
|
| 172 |
+
motion_sampler:
|
| 173 |
+
_target_: motionbricks.motionlib.data.motion_sampler.MaxDurationRandomCrop
|
| 174 |
+
max_seconds: 30
|
| 175 |
+
motion_loading_mode: memmap
|
| 176 |
+
use_natural_desc: true
|
| 177 |
+
use_short_desc: true
|
| 178 |
+
use_technical_desc: false
|
| 179 |
+
use_nv_overview_desc: false
|
| 180 |
+
nv_overview_prob: null
|
| 181 |
+
drop_text_prob: 0.1
|
| 182 |
+
augment_text: false
|
| 183 |
+
aug_text_suffix: ''
|
| 184 |
+
aug_text_prob: 0.75
|
| 185 |
+
aug_text_ind_range:
|
| 186 |
+
- 1
|
| 187 |
+
- 61
|
| 188 |
+
load_neutral_joints: false
|
| 189 |
+
timelines_mode: false
|
| 190 |
+
timelines_name: null
|
| 191 |
+
dataset_sampler: null
|
| 192 |
+
dataset_sampler_only_at_train: true
|
| 193 |
+
to_canonicalize: false
|
| 194 |
+
randomize_first_heading: true
|
| 195 |
+
loading_mode: motion_only
|
| 196 |
+
skeleton:
|
| 197 |
+
base_name: g1skel34
|
| 198 |
+
folder: out/motionbricks_root/version_1/skeleton
|
| 199 |
+
t_pose: capture
|
| 200 |
+
orig_prefix: ''
|
| 201 |
+
name: g1skel34
|
| 202 |
+
_target_: motionbricks.motionlib.core.skeletons.g1.G1Skeleton34
|
| 203 |
+
motion_rep:
|
| 204 |
+
name: ${skeleton.name}_dual_root_global_joints
|
| 205 |
+
stats:
|
| 206 |
+
_target_: motionbricks.motionlib.core.utils.stats.Stats
|
| 207 |
+
folder: out/motionbricks_root/version_1/stats/motion
|
| 208 |
+
_target_: motionbricks.motionlib.core.motion_reps.dual_root_global_joints.GlobalRootGlobalJoints
|
| 209 |
+
fps: 30
|
| 210 |
+
wandb_run: motionbricks_root
|
| 211 |
+
resume: false
|
| 212 |
+
version: 1
|
| 213 |
+
cp: last_epoch
|
| 214 |
+
matmul_precision: high
|
| 215 |
+
seed: 7
|
| 216 |
+
id: ${hydra:runtime.choices.exp}_gpu${trainer.devices}_node${trainer.num_nodes}
|
| 217 |
+
out_dir: out/motionbricks_root
|
| 218 |
+
run_dir: ???
|
| 219 |
+
pure_testing: false
|
| 220 |
+
config_version: 4
|
| 221 |
+
data_root: datasets
|
| 222 |
+
tmr_checkpoints_root: null
|
| 223 |
+
use_one_logger: false
|
g1/out/motionbricks_root/version_1/meta.yaml
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
wandb_run: motionbricks_root
|
g1/out/motionbricks_root/version_1/skeleton/joints.npy
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:6a682fc9d36204eb8e58c6b29eb0881e36242ed94dff078c82a373cdc6783ab0
|
| 3 |
+
size 944
|
g1/out/motionbricks_root/version_1/skeleton/parents.npy
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:02754fe01a8dcad13b9e3f95f7a696f56bccc5eeb5f5bf701f31cec88e23b1c4
|
| 3 |
+
size 400
|
g1/out/motionbricks_root/version_1/skeleton/skeleton.yaml
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
base_name: g1skel34
|
| 2 |
+
folder: ${data.folder}/features/motion_rep/${motion_rep.name}_fps_${fps}/skeleton
|
| 3 |
+
t_pose: capture
|
| 4 |
+
orig_prefix: ''
|
| 5 |
+
name: g1skel34
|
| 6 |
+
_target_: motionbricks.motionlib.core.skeletons.g1.G1Skeleton34
|
g1/out/motionbricks_root/version_1/stats/motion/mean.npy
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:ca390f0081e2373ab71e860a3546cb70cc11fdfac6ce525155403e047b66fdea
|
| 3 |
+
size 3472
|
g1/out/motionbricks_root/version_1/stats/motion/std.npy
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:fca7dd6135cbe96504b1307a7db97e9004556937a2fc72d139077b962cee6bd7
|
| 3 |
+
size 3472
|
g1/out/motionbricks_vqvae/version_1/checkpoints/model-step=2000000.json
ADDED
|
@@ -0,0 +1,555 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"schema_version": 1,
|
| 3 |
+
"source_checkpoint_sha256": "f12a09d46ad390a8e2eecbe7219b2472fcab6b59df0a13f6a40c35cb6da4d99a",
|
| 4 |
+
"epoch": 25973,
|
| 5 |
+
"global_step": 2000000,
|
| 6 |
+
"pytorch_lightning_version": "2.4.0",
|
| 7 |
+
"state_dict_metadata": {
|
| 8 |
+
"": {
|
| 9 |
+
"version": 1
|
| 10 |
+
},
|
| 11 |
+
"pose_net": {
|
| 12 |
+
"version": 1
|
| 13 |
+
},
|
| 14 |
+
"pose_net._motion_rep": {
|
| 15 |
+
"version": 1
|
| 16 |
+
},
|
| 17 |
+
"pose_net._motion_rep.skeleton": {
|
| 18 |
+
"version": 1
|
| 19 |
+
},
|
| 20 |
+
"pose_net._motion_rep.stats": {
|
| 21 |
+
"version": 1
|
| 22 |
+
},
|
| 23 |
+
"pose_net.encoder": {
|
| 24 |
+
"version": 1
|
| 25 |
+
},
|
| 26 |
+
"pose_net.encoder.model": {
|
| 27 |
+
"version": 1
|
| 28 |
+
},
|
| 29 |
+
"pose_net.encoder.model.0": {
|
| 30 |
+
"version": 1
|
| 31 |
+
},
|
| 32 |
+
"pose_net.encoder.model.1": {
|
| 33 |
+
"version": 1
|
| 34 |
+
},
|
| 35 |
+
"pose_net.encoder.model.2": {
|
| 36 |
+
"version": 1
|
| 37 |
+
},
|
| 38 |
+
"pose_net.encoder.model.2.0": {
|
| 39 |
+
"version": 1
|
| 40 |
+
},
|
| 41 |
+
"pose_net.encoder.model.2.1": {
|
| 42 |
+
"version": 1
|
| 43 |
+
},
|
| 44 |
+
"pose_net.encoder.model.2.1.model": {
|
| 45 |
+
"version": 1
|
| 46 |
+
},
|
| 47 |
+
"pose_net.encoder.model.2.1.model.0": {
|
| 48 |
+
"version": 1
|
| 49 |
+
},
|
| 50 |
+
"pose_net.encoder.model.2.1.model.0.norm1": {
|
| 51 |
+
"version": 1
|
| 52 |
+
},
|
| 53 |
+
"pose_net.encoder.model.2.1.model.0.norm2": {
|
| 54 |
+
"version": 1
|
| 55 |
+
},
|
| 56 |
+
"pose_net.encoder.model.2.1.model.0.activation1": {
|
| 57 |
+
"version": 1
|
| 58 |
+
},
|
| 59 |
+
"pose_net.encoder.model.2.1.model.0.activation2": {
|
| 60 |
+
"version": 1
|
| 61 |
+
},
|
| 62 |
+
"pose_net.encoder.model.2.1.model.0.conv1": {
|
| 63 |
+
"version": 1
|
| 64 |
+
},
|
| 65 |
+
"pose_net.encoder.model.2.1.model.0.conv2": {
|
| 66 |
+
"version": 1
|
| 67 |
+
},
|
| 68 |
+
"pose_net.encoder.model.2.1.model.1": {
|
| 69 |
+
"version": 1
|
| 70 |
+
},
|
| 71 |
+
"pose_net.encoder.model.2.1.model.1.norm1": {
|
| 72 |
+
"version": 1
|
| 73 |
+
},
|
| 74 |
+
"pose_net.encoder.model.2.1.model.1.norm2": {
|
| 75 |
+
"version": 1
|
| 76 |
+
},
|
| 77 |
+
"pose_net.encoder.model.2.1.model.1.activation1": {
|
| 78 |
+
"version": 1
|
| 79 |
+
},
|
| 80 |
+
"pose_net.encoder.model.2.1.model.1.activation2": {
|
| 81 |
+
"version": 1
|
| 82 |
+
},
|
| 83 |
+
"pose_net.encoder.model.2.1.model.1.conv1": {
|
| 84 |
+
"version": 1
|
| 85 |
+
},
|
| 86 |
+
"pose_net.encoder.model.2.1.model.1.conv2": {
|
| 87 |
+
"version": 1
|
| 88 |
+
},
|
| 89 |
+
"pose_net.encoder.model.2.1.model.2": {
|
| 90 |
+
"version": 1
|
| 91 |
+
},
|
| 92 |
+
"pose_net.encoder.model.2.1.model.2.norm1": {
|
| 93 |
+
"version": 1
|
| 94 |
+
},
|
| 95 |
+
"pose_net.encoder.model.2.1.model.2.norm2": {
|
| 96 |
+
"version": 1
|
| 97 |
+
},
|
| 98 |
+
"pose_net.encoder.model.2.1.model.2.activation1": {
|
| 99 |
+
"version": 1
|
| 100 |
+
},
|
| 101 |
+
"pose_net.encoder.model.2.1.model.2.activation2": {
|
| 102 |
+
"version": 1
|
| 103 |
+
},
|
| 104 |
+
"pose_net.encoder.model.2.1.model.2.conv1": {
|
| 105 |
+
"version": 1
|
| 106 |
+
},
|
| 107 |
+
"pose_net.encoder.model.2.1.model.2.conv2": {
|
| 108 |
+
"version": 1
|
| 109 |
+
},
|
| 110 |
+
"pose_net.encoder.model.2.1.model.3": {
|
| 111 |
+
"version": 1
|
| 112 |
+
},
|
| 113 |
+
"pose_net.encoder.model.2.1.model.3.norm1": {
|
| 114 |
+
"version": 1
|
| 115 |
+
},
|
| 116 |
+
"pose_net.encoder.model.2.1.model.3.norm2": {
|
| 117 |
+
"version": 1
|
| 118 |
+
},
|
| 119 |
+
"pose_net.encoder.model.2.1.model.3.activation1": {
|
| 120 |
+
"version": 1
|
| 121 |
+
},
|
| 122 |
+
"pose_net.encoder.model.2.1.model.3.activation2": {
|
| 123 |
+
"version": 1
|
| 124 |
+
},
|
| 125 |
+
"pose_net.encoder.model.2.1.model.3.conv1": {
|
| 126 |
+
"version": 1
|
| 127 |
+
},
|
| 128 |
+
"pose_net.encoder.model.2.1.model.3.conv2": {
|
| 129 |
+
"version": 1
|
| 130 |
+
},
|
| 131 |
+
"pose_net.encoder.model.3": {
|
| 132 |
+
"version": 1
|
| 133 |
+
},
|
| 134 |
+
"pose_net.encoder.model.3.0": {
|
| 135 |
+
"version": 1
|
| 136 |
+
},
|
| 137 |
+
"pose_net.encoder.model.3.1": {
|
| 138 |
+
"version": 1
|
| 139 |
+
},
|
| 140 |
+
"pose_net.encoder.model.3.1.model": {
|
| 141 |
+
"version": 1
|
| 142 |
+
},
|
| 143 |
+
"pose_net.encoder.model.3.1.model.0": {
|
| 144 |
+
"version": 1
|
| 145 |
+
},
|
| 146 |
+
"pose_net.encoder.model.3.1.model.0.norm1": {
|
| 147 |
+
"version": 1
|
| 148 |
+
},
|
| 149 |
+
"pose_net.encoder.model.3.1.model.0.norm2": {
|
| 150 |
+
"version": 1
|
| 151 |
+
},
|
| 152 |
+
"pose_net.encoder.model.3.1.model.0.activation1": {
|
| 153 |
+
"version": 1
|
| 154 |
+
},
|
| 155 |
+
"pose_net.encoder.model.3.1.model.0.activation2": {
|
| 156 |
+
"version": 1
|
| 157 |
+
},
|
| 158 |
+
"pose_net.encoder.model.3.1.model.0.conv1": {
|
| 159 |
+
"version": 1
|
| 160 |
+
},
|
| 161 |
+
"pose_net.encoder.model.3.1.model.0.conv2": {
|
| 162 |
+
"version": 1
|
| 163 |
+
},
|
| 164 |
+
"pose_net.encoder.model.3.1.model.1": {
|
| 165 |
+
"version": 1
|
| 166 |
+
},
|
| 167 |
+
"pose_net.encoder.model.3.1.model.1.norm1": {
|
| 168 |
+
"version": 1
|
| 169 |
+
},
|
| 170 |
+
"pose_net.encoder.model.3.1.model.1.norm2": {
|
| 171 |
+
"version": 1
|
| 172 |
+
},
|
| 173 |
+
"pose_net.encoder.model.3.1.model.1.activation1": {
|
| 174 |
+
"version": 1
|
| 175 |
+
},
|
| 176 |
+
"pose_net.encoder.model.3.1.model.1.activation2": {
|
| 177 |
+
"version": 1
|
| 178 |
+
},
|
| 179 |
+
"pose_net.encoder.model.3.1.model.1.conv1": {
|
| 180 |
+
"version": 1
|
| 181 |
+
},
|
| 182 |
+
"pose_net.encoder.model.3.1.model.1.conv2": {
|
| 183 |
+
"version": 1
|
| 184 |
+
},
|
| 185 |
+
"pose_net.encoder.model.3.1.model.2": {
|
| 186 |
+
"version": 1
|
| 187 |
+
},
|
| 188 |
+
"pose_net.encoder.model.3.1.model.2.norm1": {
|
| 189 |
+
"version": 1
|
| 190 |
+
},
|
| 191 |
+
"pose_net.encoder.model.3.1.model.2.norm2": {
|
| 192 |
+
"version": 1
|
| 193 |
+
},
|
| 194 |
+
"pose_net.encoder.model.3.1.model.2.activation1": {
|
| 195 |
+
"version": 1
|
| 196 |
+
},
|
| 197 |
+
"pose_net.encoder.model.3.1.model.2.activation2": {
|
| 198 |
+
"version": 1
|
| 199 |
+
},
|
| 200 |
+
"pose_net.encoder.model.3.1.model.2.conv1": {
|
| 201 |
+
"version": 1
|
| 202 |
+
},
|
| 203 |
+
"pose_net.encoder.model.3.1.model.2.conv2": {
|
| 204 |
+
"version": 1
|
| 205 |
+
},
|
| 206 |
+
"pose_net.encoder.model.3.1.model.3": {
|
| 207 |
+
"version": 1
|
| 208 |
+
},
|
| 209 |
+
"pose_net.encoder.model.3.1.model.3.norm1": {
|
| 210 |
+
"version": 1
|
| 211 |
+
},
|
| 212 |
+
"pose_net.encoder.model.3.1.model.3.norm2": {
|
| 213 |
+
"version": 1
|
| 214 |
+
},
|
| 215 |
+
"pose_net.encoder.model.3.1.model.3.activation1": {
|
| 216 |
+
"version": 1
|
| 217 |
+
},
|
| 218 |
+
"pose_net.encoder.model.3.1.model.3.activation2": {
|
| 219 |
+
"version": 1
|
| 220 |
+
},
|
| 221 |
+
"pose_net.encoder.model.3.1.model.3.conv1": {
|
| 222 |
+
"version": 1
|
| 223 |
+
},
|
| 224 |
+
"pose_net.encoder.model.3.1.model.3.conv2": {
|
| 225 |
+
"version": 1
|
| 226 |
+
},
|
| 227 |
+
"pose_net.encoder.model.4": {
|
| 228 |
+
"version": 1
|
| 229 |
+
},
|
| 230 |
+
"pose_net.decoder": {
|
| 231 |
+
"version": 1
|
| 232 |
+
},
|
| 233 |
+
"pose_net.decoder.model": {
|
| 234 |
+
"version": 1
|
| 235 |
+
},
|
| 236 |
+
"pose_net.decoder.model.0": {
|
| 237 |
+
"version": 1
|
| 238 |
+
},
|
| 239 |
+
"pose_net.decoder.model.1": {
|
| 240 |
+
"version": 1
|
| 241 |
+
},
|
| 242 |
+
"pose_net.decoder.model.2": {
|
| 243 |
+
"version": 1
|
| 244 |
+
},
|
| 245 |
+
"pose_net.decoder.model.2.0": {
|
| 246 |
+
"version": 1
|
| 247 |
+
},
|
| 248 |
+
"pose_net.decoder.model.2.0.model": {
|
| 249 |
+
"version": 1
|
| 250 |
+
},
|
| 251 |
+
"pose_net.decoder.model.2.0.model.0": {
|
| 252 |
+
"version": 1
|
| 253 |
+
},
|
| 254 |
+
"pose_net.decoder.model.2.0.model.0.norm1": {
|
| 255 |
+
"version": 1
|
| 256 |
+
},
|
| 257 |
+
"pose_net.decoder.model.2.0.model.0.norm2": {
|
| 258 |
+
"version": 1
|
| 259 |
+
},
|
| 260 |
+
"pose_net.decoder.model.2.0.model.0.activation1": {
|
| 261 |
+
"version": 1
|
| 262 |
+
},
|
| 263 |
+
"pose_net.decoder.model.2.0.model.0.activation2": {
|
| 264 |
+
"version": 1
|
| 265 |
+
},
|
| 266 |
+
"pose_net.decoder.model.2.0.model.0.conv1": {
|
| 267 |
+
"version": 1
|
| 268 |
+
},
|
| 269 |
+
"pose_net.decoder.model.2.0.model.0.conv2": {
|
| 270 |
+
"version": 1
|
| 271 |
+
},
|
| 272 |
+
"pose_net.decoder.model.2.0.model.1": {
|
| 273 |
+
"version": 1
|
| 274 |
+
},
|
| 275 |
+
"pose_net.decoder.model.2.0.model.1.norm1": {
|
| 276 |
+
"version": 1
|
| 277 |
+
},
|
| 278 |
+
"pose_net.decoder.model.2.0.model.1.norm2": {
|
| 279 |
+
"version": 1
|
| 280 |
+
},
|
| 281 |
+
"pose_net.decoder.model.2.0.model.1.activation1": {
|
| 282 |
+
"version": 1
|
| 283 |
+
},
|
| 284 |
+
"pose_net.decoder.model.2.0.model.1.activation2": {
|
| 285 |
+
"version": 1
|
| 286 |
+
},
|
| 287 |
+
"pose_net.decoder.model.2.0.model.1.conv1": {
|
| 288 |
+
"version": 1
|
| 289 |
+
},
|
| 290 |
+
"pose_net.decoder.model.2.0.model.1.conv2": {
|
| 291 |
+
"version": 1
|
| 292 |
+
},
|
| 293 |
+
"pose_net.decoder.model.2.0.model.2": {
|
| 294 |
+
"version": 1
|
| 295 |
+
},
|
| 296 |
+
"pose_net.decoder.model.2.0.model.2.norm1": {
|
| 297 |
+
"version": 1
|
| 298 |
+
},
|
| 299 |
+
"pose_net.decoder.model.2.0.model.2.norm2": {
|
| 300 |
+
"version": 1
|
| 301 |
+
},
|
| 302 |
+
"pose_net.decoder.model.2.0.model.2.activation1": {
|
| 303 |
+
"version": 1
|
| 304 |
+
},
|
| 305 |
+
"pose_net.decoder.model.2.0.model.2.activation2": {
|
| 306 |
+
"version": 1
|
| 307 |
+
},
|
| 308 |
+
"pose_net.decoder.model.2.0.model.2.conv1": {
|
| 309 |
+
"version": 1
|
| 310 |
+
},
|
| 311 |
+
"pose_net.decoder.model.2.0.model.2.conv2": {
|
| 312 |
+
"version": 1
|
| 313 |
+
},
|
| 314 |
+
"pose_net.decoder.model.2.0.model.3": {
|
| 315 |
+
"version": 1
|
| 316 |
+
},
|
| 317 |
+
"pose_net.decoder.model.2.0.model.3.norm1": {
|
| 318 |
+
"version": 1
|
| 319 |
+
},
|
| 320 |
+
"pose_net.decoder.model.2.0.model.3.norm2": {
|
| 321 |
+
"version": 1
|
| 322 |
+
},
|
| 323 |
+
"pose_net.decoder.model.2.0.model.3.activation1": {
|
| 324 |
+
"version": 1
|
| 325 |
+
},
|
| 326 |
+
"pose_net.decoder.model.2.0.model.3.activation2": {
|
| 327 |
+
"version": 1
|
| 328 |
+
},
|
| 329 |
+
"pose_net.decoder.model.2.0.model.3.conv1": {
|
| 330 |
+
"version": 1
|
| 331 |
+
},
|
| 332 |
+
"pose_net.decoder.model.2.0.model.3.conv2": {
|
| 333 |
+
"version": 1
|
| 334 |
+
},
|
| 335 |
+
"pose_net.decoder.model.2.1": {
|
| 336 |
+
"version": 1
|
| 337 |
+
},
|
| 338 |
+
"pose_net.decoder.model.2.2": {
|
| 339 |
+
"version": 1
|
| 340 |
+
},
|
| 341 |
+
"pose_net.decoder.model.3": {
|
| 342 |
+
"version": 1
|
| 343 |
+
},
|
| 344 |
+
"pose_net.decoder.model.3.0": {
|
| 345 |
+
"version": 1
|
| 346 |
+
},
|
| 347 |
+
"pose_net.decoder.model.3.0.model": {
|
| 348 |
+
"version": 1
|
| 349 |
+
},
|
| 350 |
+
"pose_net.decoder.model.3.0.model.0": {
|
| 351 |
+
"version": 1
|
| 352 |
+
},
|
| 353 |
+
"pose_net.decoder.model.3.0.model.0.norm1": {
|
| 354 |
+
"version": 1
|
| 355 |
+
},
|
| 356 |
+
"pose_net.decoder.model.3.0.model.0.norm2": {
|
| 357 |
+
"version": 1
|
| 358 |
+
},
|
| 359 |
+
"pose_net.decoder.model.3.0.model.0.activation1": {
|
| 360 |
+
"version": 1
|
| 361 |
+
},
|
| 362 |
+
"pose_net.decoder.model.3.0.model.0.activation2": {
|
| 363 |
+
"version": 1
|
| 364 |
+
},
|
| 365 |
+
"pose_net.decoder.model.3.0.model.0.conv1": {
|
| 366 |
+
"version": 1
|
| 367 |
+
},
|
| 368 |
+
"pose_net.decoder.model.3.0.model.0.conv2": {
|
| 369 |
+
"version": 1
|
| 370 |
+
},
|
| 371 |
+
"pose_net.decoder.model.3.0.model.1": {
|
| 372 |
+
"version": 1
|
| 373 |
+
},
|
| 374 |
+
"pose_net.decoder.model.3.0.model.1.norm1": {
|
| 375 |
+
"version": 1
|
| 376 |
+
},
|
| 377 |
+
"pose_net.decoder.model.3.0.model.1.norm2": {
|
| 378 |
+
"version": 1
|
| 379 |
+
},
|
| 380 |
+
"pose_net.decoder.model.3.0.model.1.activation1": {
|
| 381 |
+
"version": 1
|
| 382 |
+
},
|
| 383 |
+
"pose_net.decoder.model.3.0.model.1.activation2": {
|
| 384 |
+
"version": 1
|
| 385 |
+
},
|
| 386 |
+
"pose_net.decoder.model.3.0.model.1.conv1": {
|
| 387 |
+
"version": 1
|
| 388 |
+
},
|
| 389 |
+
"pose_net.decoder.model.3.0.model.1.conv2": {
|
| 390 |
+
"version": 1
|
| 391 |
+
},
|
| 392 |
+
"pose_net.decoder.model.3.0.model.2": {
|
| 393 |
+
"version": 1
|
| 394 |
+
},
|
| 395 |
+
"pose_net.decoder.model.3.0.model.2.norm1": {
|
| 396 |
+
"version": 1
|
| 397 |
+
},
|
| 398 |
+
"pose_net.decoder.model.3.0.model.2.norm2": {
|
| 399 |
+
"version": 1
|
| 400 |
+
},
|
| 401 |
+
"pose_net.decoder.model.3.0.model.2.activation1": {
|
| 402 |
+
"version": 1
|
| 403 |
+
},
|
| 404 |
+
"pose_net.decoder.model.3.0.model.2.activation2": {
|
| 405 |
+
"version": 1
|
| 406 |
+
},
|
| 407 |
+
"pose_net.decoder.model.3.0.model.2.conv1": {
|
| 408 |
+
"version": 1
|
| 409 |
+
},
|
| 410 |
+
"pose_net.decoder.model.3.0.model.2.conv2": {
|
| 411 |
+
"version": 1
|
| 412 |
+
},
|
| 413 |
+
"pose_net.decoder.model.3.0.model.3": {
|
| 414 |
+
"version": 1
|
| 415 |
+
},
|
| 416 |
+
"pose_net.decoder.model.3.0.model.3.norm1": {
|
| 417 |
+
"version": 1
|
| 418 |
+
},
|
| 419 |
+
"pose_net.decoder.model.3.0.model.3.norm2": {
|
| 420 |
+
"version": 1
|
| 421 |
+
},
|
| 422 |
+
"pose_net.decoder.model.3.0.model.3.activation1": {
|
| 423 |
+
"version": 1
|
| 424 |
+
},
|
| 425 |
+
"pose_net.decoder.model.3.0.model.3.activation2": {
|
| 426 |
+
"version": 1
|
| 427 |
+
},
|
| 428 |
+
"pose_net.decoder.model.3.0.model.3.conv1": {
|
| 429 |
+
"version": 1
|
| 430 |
+
},
|
| 431 |
+
"pose_net.decoder.model.3.0.model.3.conv2": {
|
| 432 |
+
"version": 1
|
| 433 |
+
},
|
| 434 |
+
"pose_net.decoder.model.3.1": {
|
| 435 |
+
"version": 1
|
| 436 |
+
},
|
| 437 |
+
"pose_net.decoder.model.3.2": {
|
| 438 |
+
"version": 1
|
| 439 |
+
},
|
| 440 |
+
"pose_net.decoder.model.4": {
|
| 441 |
+
"version": 1
|
| 442 |
+
},
|
| 443 |
+
"pose_net.decoder.model.5": {
|
| 444 |
+
"version": 1
|
| 445 |
+
},
|
| 446 |
+
"pose_net.decoder.model.6": {
|
| 447 |
+
"version": 1
|
| 448 |
+
},
|
| 449 |
+
"pose_net.decoder.external_cond_blocks": {
|
| 450 |
+
"version": 1
|
| 451 |
+
},
|
| 452 |
+
"pose_net.decoder.external_cond_blocks.0": {
|
| 453 |
+
"version": 1
|
| 454 |
+
},
|
| 455 |
+
"pose_net.decoder.external_cond_blocks.1": {
|
| 456 |
+
"version": 1
|
| 457 |
+
},
|
| 458 |
+
"pose_net.decoder.external_cond_blocks.2": {
|
| 459 |
+
"version": 1
|
| 460 |
+
},
|
| 461 |
+
"pose_net.decoder.external_cond_blocks.3": {
|
| 462 |
+
"version": 1
|
| 463 |
+
},
|
| 464 |
+
"pose_net.decoder.target_cond_blocks": {
|
| 465 |
+
"version": 1
|
| 466 |
+
},
|
| 467 |
+
"pose_net.decoder.target_cond_blocks.0": {
|
| 468 |
+
"version": 1
|
| 469 |
+
},
|
| 470 |
+
"pose_net.decoder.target_cond_blocks.1": {
|
| 471 |
+
"version": 1
|
| 472 |
+
},
|
| 473 |
+
"pose_net.decoder.target_cond_blocks.2": {
|
| 474 |
+
"version": 1
|
| 475 |
+
},
|
| 476 |
+
"pose_net.decoder.target_cond_blocks.3": {
|
| 477 |
+
"version": 1
|
| 478 |
+
},
|
| 479 |
+
"pose_net.quantizer": {
|
| 480 |
+
"version": 1
|
| 481 |
+
},
|
| 482 |
+
"pose_net.quantizer.vq": {
|
| 483 |
+
"version": 1
|
| 484 |
+
},
|
| 485 |
+
"pose_net.quantizer.vq.project_in": {
|
| 486 |
+
"version": 1
|
| 487 |
+
},
|
| 488 |
+
"pose_net.quantizer.vq.project_out": {
|
| 489 |
+
"version": 1
|
| 490 |
+
},
|
| 491 |
+
"pose_net.quantizer.vq._codebook": {
|
| 492 |
+
"version": 1
|
| 493 |
+
},
|
| 494 |
+
"motion_rep": {
|
| 495 |
+
"version": 1
|
| 496 |
+
},
|
| 497 |
+
"motion_rep.skeleton": {
|
| 498 |
+
"version": 1
|
| 499 |
+
},
|
| 500 |
+
"motion_rep.dual_rep": {
|
| 501 |
+
"version": 1
|
| 502 |
+
},
|
| 503 |
+
"motion_rep.dual_rep.stats": {
|
| 504 |
+
"version": 1
|
| 505 |
+
},
|
| 506 |
+
"motion_rep.dual_rep.skeleton": {
|
| 507 |
+
"version": 1
|
| 508 |
+
},
|
| 509 |
+
"motion_rep.dual_rep.global_motion_rep": {
|
| 510 |
+
"version": 1
|
| 511 |
+
},
|
| 512 |
+
"motion_rep.dual_rep.global_motion_rep.skeleton": {
|
| 513 |
+
"version": 1
|
| 514 |
+
},
|
| 515 |
+
"motion_rep.dual_rep.global_motion_rep.stats": {
|
| 516 |
+
"version": 1
|
| 517 |
+
},
|
| 518 |
+
"motion_rep.dual_rep.local_motion_rep": {
|
| 519 |
+
"version": 1
|
| 520 |
+
},
|
| 521 |
+
"motion_rep.dual_rep.local_motion_rep.skeleton": {
|
| 522 |
+
"version": 1
|
| 523 |
+
},
|
| 524 |
+
"motion_rep.dual_rep.local_motion_rep.stats": {
|
| 525 |
+
"version": 1
|
| 526 |
+
},
|
| 527 |
+
"motion_rep.stats": {
|
| 528 |
+
"version": 1
|
| 529 |
+
},
|
| 530 |
+
"global_motion_rep": {
|
| 531 |
+
"version": 1
|
| 532 |
+
},
|
| 533 |
+
"global_motion_rep.skeleton": {
|
| 534 |
+
"version": 1
|
| 535 |
+
},
|
| 536 |
+
"global_motion_rep.stats": {
|
| 537 |
+
"version": 1
|
| 538 |
+
},
|
| 539 |
+
"local_motion_rep": {
|
| 540 |
+
"version": 1
|
| 541 |
+
},
|
| 542 |
+
"local_motion_rep.skeleton": {
|
| 543 |
+
"version": 1
|
| 544 |
+
},
|
| 545 |
+
"local_motion_rep.stats": {
|
| 546 |
+
"version": 1
|
| 547 |
+
}
|
| 548 |
+
},
|
| 549 |
+
"omitted_training_state": [
|
| 550 |
+
"loops",
|
| 551 |
+
"callbacks",
|
| 552 |
+
"optimizer_states",
|
| 553 |
+
"lr_schedulers"
|
| 554 |
+
]
|
| 555 |
+
}
|
g1/out/motionbricks_vqvae/version_1/checkpoints/model-step=2000000.safetensors
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:bf9c31173b334303bf392d184c24701ad1a095b3e94a5fe6b11db4d01343a454
|
| 3 |
+
size 95194080
|
g1/out/motionbricks_vqvae/version_1/config.yaml
ADDED
|
@@ -0,0 +1,228 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
model:
|
| 2 |
+
pose_vqvae_network:
|
| 3 |
+
_target_: motionbricks.vqvae.neural_modules.vqvae.VQVAE
|
| 4 |
+
pose_root_mode: pose
|
| 5 |
+
motion_rep: ???
|
| 6 |
+
encoder_state_dim: 241
|
| 7 |
+
decoder_state_dim: 329
|
| 8 |
+
decoder_target_cond_dim: 241
|
| 9 |
+
decoder_external_cond_dim: 2
|
| 10 |
+
feature_mode:
|
| 11 |
+
- joint_positions_and_rotations_and_hip_height
|
| 12 |
+
- pose
|
| 13 |
+
- joint_positions_and_rotations_and_hip_height
|
| 14 |
+
- root_without_hip_height_without_heading
|
| 15 |
+
quantizer_strategy: multihead_ema_reset
|
| 16 |
+
quantizer_mu: 0.99
|
| 17 |
+
nb_code: 100000000
|
| 18 |
+
code_dim: 256
|
| 19 |
+
output_emb_width: 256
|
| 20 |
+
down_t: 2
|
| 21 |
+
stride_t: 2
|
| 22 |
+
width: 512
|
| 23 |
+
depth: 4
|
| 24 |
+
dilation_growth_rate: 3
|
| 25 |
+
activation: relu
|
| 26 |
+
num_heads: 8
|
| 27 |
+
kmeans_init: false
|
| 28 |
+
norm: None
|
| 29 |
+
calculate_per_head_perplexity: true
|
| 30 |
+
cond_fusion_last_layer: false
|
| 31 |
+
_target_: motionbricks.vqvae.models.motion_vqvae.MotionVQVAEModel
|
| 32 |
+
motion_rep: ???
|
| 33 |
+
pose_vqvae_motion_rep: local
|
| 34 |
+
root_vqvae_network: null
|
| 35 |
+
denoiser:
|
| 36 |
+
backbone:
|
| 37 |
+
llm_shape: null
|
| 38 |
+
args:
|
| 39 |
+
min_tokens: 6
|
| 40 |
+
max_tokens: 16
|
| 41 |
+
down_t: 2
|
| 42 |
+
commit_loss_coeff: 0.02
|
| 43 |
+
batchsize_mul_factor: 2
|
| 44 |
+
root_vqvae_max_num_keyframes: 5
|
| 45 |
+
root_vqvae_no_keyframe_prob: 0.25
|
| 46 |
+
pose_vqvae_max_num_keyframes: 10
|
| 47 |
+
pose_vqvae_no_keyframe_prob: 0.25
|
| 48 |
+
keyframe_num_warmup_steps: 200000
|
| 49 |
+
global_root_loss_coeff: 0.5
|
| 50 |
+
local_root_loss_coeff: 0.5
|
| 51 |
+
max_angle_diff: 5.0
|
| 52 |
+
max_norm_ratio: 0.2
|
| 53 |
+
percentage_of_perturbed_samples: 0.2
|
| 54 |
+
floor_estimation: min_joint_height_within_windows
|
| 55 |
+
floor_estimation_window_time: 1.0
|
| 56 |
+
skate_contact_loss_coeff: 0.01
|
| 57 |
+
joint_vel_loss_coeff: 2.0
|
| 58 |
+
optimizer:
|
| 59 |
+
_target_: adam_atan2_pytorch.AdamAtan2
|
| 60 |
+
_partial_: true
|
| 61 |
+
lr: 0.0002
|
| 62 |
+
weight_decay: 0.0
|
| 63 |
+
scheduler:
|
| 64 |
+
_target_: motionbricks.motionlib.train.scheduler.WarmupCosineScheduler
|
| 65 |
+
_partial_: true
|
| 66 |
+
num_warmup_steps: 10000
|
| 67 |
+
num_training_steps: ${trainer.max_steps}
|
| 68 |
+
final_lr: 4.0e-06
|
| 69 |
+
last_epoch: -1
|
| 70 |
+
lt_kwargs:
|
| 71 |
+
interval: step
|
| 72 |
+
frequency: 1
|
| 73 |
+
trainer:
|
| 74 |
+
_target_: pytorch_lightning.Trainer
|
| 75 |
+
precision: 32
|
| 76 |
+
enable_progress_bar: false
|
| 77 |
+
profiler: null
|
| 78 |
+
check_val_every_n_epoch: null
|
| 79 |
+
detect_anomaly: false
|
| 80 |
+
num_sanity_val_steps: 0
|
| 81 |
+
max_steps: 2000001
|
| 82 |
+
gradient_clip_val: 0.5
|
| 83 |
+
log_every_n_steps: 50
|
| 84 |
+
val_check_interval: 50000
|
| 85 |
+
devices: 8
|
| 86 |
+
num_nodes: 4
|
| 87 |
+
accelerator: gpu
|
| 88 |
+
strategy: ddp
|
| 89 |
+
loggers:
|
| 90 |
+
out_dir: ${out_dir}
|
| 91 |
+
cfg_id: ${id}
|
| 92 |
+
max_steps: ${trainer.max_steps}
|
| 93 |
+
log_nsteps: ${trainer.log_every_n_steps}
|
| 94 |
+
use_wandb: true
|
| 95 |
+
wandb_run: ${wandb_run}
|
| 96 |
+
wandb_group: null
|
| 97 |
+
wandb_project: motionbricks
|
| 98 |
+
wandb_entity: null
|
| 99 |
+
wandb_run_name: motionbricks_vqvae
|
| 100 |
+
logger_project: motionbricks
|
| 101 |
+
callbacks:
|
| 102 |
+
callback_dict:
|
| 103 |
+
checkpoint_epoch_cb:
|
| 104 |
+
_target_: motionbricks.motionlib.train.callbacks.ckpt.ReadPermissionModelCheckpoint
|
| 105 |
+
monitor: null
|
| 106 |
+
dirpath: out/motionbricks_vqvae/version_1/checkpoints
|
| 107 |
+
filename: model-{step:07d}
|
| 108 |
+
save_last: false
|
| 109 |
+
save_top_k: -1
|
| 110 |
+
mode: min
|
| 111 |
+
every_n_train_steps: 50000
|
| 112 |
+
learning_rate_monitor:
|
| 113 |
+
_target_: pytorch_lightning.callbacks.LearningRateMonitor
|
| 114 |
+
logging_interval: step
|
| 115 |
+
autoresume:
|
| 116 |
+
_target_: motionbricks.motionlib.train.callbacks.autoresume.AutoResumeCallback
|
| 117 |
+
autoresume_after: 1260000
|
| 118 |
+
save_checkpoint_on_exception: true
|
| 119 |
+
eval_visualize:
|
| 120 |
+
_target_: motionbricks.vqvae.callbacks.evaluation.VQVAE_Evaluate
|
| 121 |
+
every_n_steps: 50001
|
| 122 |
+
train_dataloader: ???
|
| 123 |
+
val_dataloader: ???
|
| 124 |
+
seed: 2333
|
| 125 |
+
batch_size: 32
|
| 126 |
+
max_num_data: 40000
|
| 127 |
+
max_num_visualization: 32
|
| 128 |
+
out_dir: ${run_dir}/vis
|
| 129 |
+
metrics:
|
| 130 |
+
- _target_: motionbricks.eval.metrics.FootSkateFromHeight
|
| 131 |
+
- _target_: motionbricks.eval.metrics.FootSkateFromContacts
|
| 132 |
+
- _target_: motionbricks.eval.metrics.JointPosConsistency
|
| 133 |
+
train_end:
|
| 134 |
+
_target_: motionbricks.motionlib.train.callbacks.train_end.TrainEndCallback
|
| 135 |
+
only_rank_zero:
|
| 136 |
+
- eval_visualize
|
| 137 |
+
- learning_rate_monitor
|
| 138 |
+
- evaluate
|
| 139 |
+
- train_end
|
| 140 |
+
need_version: []
|
| 141 |
+
need_dataloaders:
|
| 142 |
+
- eval_visualize
|
| 143 |
+
- evaluate
|
| 144 |
+
need_ema: []
|
| 145 |
+
need_motionbricks_test: []
|
| 146 |
+
need_log:
|
| 147 |
+
- eval_visualize
|
| 148 |
+
- evaluate
|
| 149 |
+
need_autoresume: []
|
| 150 |
+
need_mask_cond_sampler: []
|
| 151 |
+
need_one_logger_callback:
|
| 152 |
+
- autoresume
|
| 153 |
+
dataloader:
|
| 154 |
+
_target_: torch.utils.data.DataLoader
|
| 155 |
+
batch_size: 128
|
| 156 |
+
num_workers: 11
|
| 157 |
+
shuffle: ???
|
| 158 |
+
persistent_workers: true
|
| 159 |
+
collate_fn:
|
| 160 |
+
_target_: motionbricks.motionlib.data.utils.collate_batch
|
| 161 |
+
_partial_: true
|
| 162 |
+
llm_shape: ${model.denoiser.backbone.llm_shape}
|
| 163 |
+
num_frames: null
|
| 164 |
+
data:
|
| 165 |
+
_target_: motionbricks.motionlib.data.motion_dataset.MotionDataset
|
| 166 |
+
name: motionbricks-G1
|
| 167 |
+
folder: ../datasets/motionbricks-G1
|
| 168 |
+
text_embeddings: null
|
| 169 |
+
split: ???
|
| 170 |
+
motion_sampler:
|
| 171 |
+
_target_: motionbricks.motionlib.data.motion_sampler.MaxDurationRandomCrop
|
| 172 |
+
max_seconds: 30
|
| 173 |
+
motion_loading_mode: memmap
|
| 174 |
+
use_natural_desc: true
|
| 175 |
+
use_short_desc: true
|
| 176 |
+
use_technical_desc: false
|
| 177 |
+
use_nv_overview_desc: false
|
| 178 |
+
nv_overview_prob: null
|
| 179 |
+
drop_text_prob: 0.1
|
| 180 |
+
augment_text: false
|
| 181 |
+
aug_text_suffix: ''
|
| 182 |
+
aug_text_prob: 0.75
|
| 183 |
+
aug_text_ind_range:
|
| 184 |
+
- 1
|
| 185 |
+
- 61
|
| 186 |
+
load_neutral_joints: false
|
| 187 |
+
timelines_mode: false
|
| 188 |
+
timelines_name: null
|
| 189 |
+
dataset_sampler: null
|
| 190 |
+
dataset_sampler_only_at_train: true
|
| 191 |
+
to_canonicalize: false
|
| 192 |
+
randomize_first_heading: true
|
| 193 |
+
loading_mode: motion_only
|
| 194 |
+
skeleton:
|
| 195 |
+
base_name: g1skel34
|
| 196 |
+
folder: out/motionbricks_vqvae/version_1/skeleton
|
| 197 |
+
t_pose: capture
|
| 198 |
+
orig_prefix: ''
|
| 199 |
+
name: g1skel34
|
| 200 |
+
_target_: motionbricks.motionlib.core.skeletons.g1.G1Skeleton34
|
| 201 |
+
motion_rep:
|
| 202 |
+
name: ${skeleton.name}_dual_root_global_joints
|
| 203 |
+
stats:
|
| 204 |
+
_target_: motionbricks.motionlib.core.utils.stats.Stats
|
| 205 |
+
folder: out/motionbricks_vqvae/version_1/stats/motion
|
| 206 |
+
_target_: motionbricks.motionlib.core.motion_reps.dual_root_global_joints.GlobalRootGlobalJoints
|
| 207 |
+
fps: 30
|
| 208 |
+
wandb_run: motionbricks_vqvae
|
| 209 |
+
resume: false
|
| 210 |
+
version: 1
|
| 211 |
+
cp: last_epoch
|
| 212 |
+
matmul_precision: high
|
| 213 |
+
seed: 7
|
| 214 |
+
id: ${hydra:runtime.choices.exp}_gpu${trainer.devices}_node${trainer.num_nodes}
|
| 215 |
+
out_dir: out/motionbricks_vqvae
|
| 216 |
+
run_dir: out/motionbricks_vqvae/version_1
|
| 217 |
+
pure_testing: false
|
| 218 |
+
test:
|
| 219 |
+
unlimit_max_code: false
|
| 220 |
+
max_num_data: 16
|
| 221 |
+
min_length: 10
|
| 222 |
+
max_length: 60
|
| 223 |
+
ckpt_dir: null
|
| 224 |
+
ckpt_name: null
|
| 225 |
+
config_version: 4
|
| 226 |
+
data_root: datasets
|
| 227 |
+
tmr_checkpoints_root: null
|
| 228 |
+
use_one_logger: false
|
g1/out/motionbricks_vqvae/version_1/hparams.yaml
ADDED
|
@@ -0,0 +1,228 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
model:
|
| 2 |
+
pose_vqvae_network:
|
| 3 |
+
_target_: motionbricks.vqvae.neural_modules.vqvae.VQVAE
|
| 4 |
+
pose_root_mode: pose
|
| 5 |
+
motion_rep: ???
|
| 6 |
+
encoder_state_dim: 241
|
| 7 |
+
decoder_state_dim: 329
|
| 8 |
+
decoder_target_cond_dim: 241
|
| 9 |
+
decoder_external_cond_dim: 2
|
| 10 |
+
feature_mode:
|
| 11 |
+
- joint_positions_and_rotations_and_hip_height
|
| 12 |
+
- pose
|
| 13 |
+
- joint_positions_and_rotations_and_hip_height
|
| 14 |
+
- root_without_hip_height_without_heading
|
| 15 |
+
quantizer_strategy: multihead_ema_reset
|
| 16 |
+
quantizer_mu: 0.99
|
| 17 |
+
nb_code: 100000000
|
| 18 |
+
code_dim: 256
|
| 19 |
+
output_emb_width: 256
|
| 20 |
+
down_t: 2
|
| 21 |
+
stride_t: 2
|
| 22 |
+
width: 512
|
| 23 |
+
depth: 4
|
| 24 |
+
dilation_growth_rate: 3
|
| 25 |
+
activation: relu
|
| 26 |
+
num_heads: 8
|
| 27 |
+
kmeans_init: false
|
| 28 |
+
norm: None
|
| 29 |
+
calculate_per_head_perplexity: true
|
| 30 |
+
cond_fusion_last_layer: false
|
| 31 |
+
_target_: motionbricks.vqvae.models.motion_vqvae.MotionVQVAEModel
|
| 32 |
+
motion_rep: ???
|
| 33 |
+
pose_vqvae_motion_rep: local
|
| 34 |
+
root_vqvae_network: null
|
| 35 |
+
denoiser:
|
| 36 |
+
backbone:
|
| 37 |
+
llm_shape: null
|
| 38 |
+
args:
|
| 39 |
+
min_tokens: 6
|
| 40 |
+
max_tokens: 16
|
| 41 |
+
down_t: 2
|
| 42 |
+
commit_loss_coeff: 0.02
|
| 43 |
+
batchsize_mul_factor: 2
|
| 44 |
+
root_vqvae_max_num_keyframes: 5
|
| 45 |
+
root_vqvae_no_keyframe_prob: 0.25
|
| 46 |
+
pose_vqvae_max_num_keyframes: 10
|
| 47 |
+
pose_vqvae_no_keyframe_prob: 0.25
|
| 48 |
+
keyframe_num_warmup_steps: 200000
|
| 49 |
+
global_root_loss_coeff: 0.5
|
| 50 |
+
local_root_loss_coeff: 0.5
|
| 51 |
+
max_angle_diff: 5.0
|
| 52 |
+
max_norm_ratio: 0.2
|
| 53 |
+
percentage_of_perturbed_samples: 0.2
|
| 54 |
+
floor_estimation: min_joint_height_within_windows
|
| 55 |
+
floor_estimation_window_time: 1.0
|
| 56 |
+
skate_contact_loss_coeff: 0.01
|
| 57 |
+
joint_vel_loss_coeff: 2.0
|
| 58 |
+
optimizer:
|
| 59 |
+
_target_: adam_atan2_pytorch.AdamAtan2
|
| 60 |
+
_partial_: true
|
| 61 |
+
lr: 0.0002
|
| 62 |
+
weight_decay: 0.0
|
| 63 |
+
scheduler:
|
| 64 |
+
_target_: motionbricks.motionlib.train.scheduler.WarmupCosineScheduler
|
| 65 |
+
_partial_: true
|
| 66 |
+
num_warmup_steps: 10000
|
| 67 |
+
num_training_steps: ${trainer.max_steps}
|
| 68 |
+
final_lr: 4.0e-06
|
| 69 |
+
last_epoch: -1
|
| 70 |
+
lt_kwargs:
|
| 71 |
+
interval: step
|
| 72 |
+
frequency: 1
|
| 73 |
+
trainer:
|
| 74 |
+
_target_: pytorch_lightning.Trainer
|
| 75 |
+
precision: 32
|
| 76 |
+
enable_progress_bar: false
|
| 77 |
+
profiler: null
|
| 78 |
+
check_val_every_n_epoch: null
|
| 79 |
+
detect_anomaly: false
|
| 80 |
+
num_sanity_val_steps: 0
|
| 81 |
+
max_steps: 2000001
|
| 82 |
+
gradient_clip_val: 0.5
|
| 83 |
+
log_every_n_steps: 50
|
| 84 |
+
val_check_interval: 50000
|
| 85 |
+
devices: 8
|
| 86 |
+
num_nodes: 4
|
| 87 |
+
accelerator: gpu
|
| 88 |
+
strategy: ddp
|
| 89 |
+
loggers:
|
| 90 |
+
out_dir: ${out_dir}
|
| 91 |
+
cfg_id: ${id}
|
| 92 |
+
max_steps: ${trainer.max_steps}
|
| 93 |
+
log_nsteps: ${trainer.log_every_n_steps}
|
| 94 |
+
use_wandb: true
|
| 95 |
+
wandb_run: ${wandb_run}
|
| 96 |
+
wandb_group: null
|
| 97 |
+
wandb_project: motionbricks
|
| 98 |
+
wandb_entity: null
|
| 99 |
+
wandb_run_name: motionbricks_vqvae
|
| 100 |
+
logger_project: motionbricks
|
| 101 |
+
callbacks:
|
| 102 |
+
callback_dict:
|
| 103 |
+
checkpoint_epoch_cb:
|
| 104 |
+
_target_: motionbricks.motionlib.train.callbacks.ckpt.ReadPermissionModelCheckpoint
|
| 105 |
+
monitor: null
|
| 106 |
+
dirpath: null
|
| 107 |
+
filename: model-{step:07d}
|
| 108 |
+
save_last: false
|
| 109 |
+
save_top_k: -1
|
| 110 |
+
mode: min
|
| 111 |
+
every_n_train_steps: 50000
|
| 112 |
+
learning_rate_monitor:
|
| 113 |
+
_target_: pytorch_lightning.callbacks.LearningRateMonitor
|
| 114 |
+
logging_interval: step
|
| 115 |
+
autoresume:
|
| 116 |
+
_target_: motionbricks.motionlib.train.callbacks.autoresume.AutoResumeCallback
|
| 117 |
+
autoresume_after: 1260000
|
| 118 |
+
save_checkpoint_on_exception: true
|
| 119 |
+
eval_visualize:
|
| 120 |
+
_target_: motionbricks.vqvae.callbacks.evaluation.VQVAE_Evaluate
|
| 121 |
+
every_n_steps: 50001
|
| 122 |
+
train_dataloader: ???
|
| 123 |
+
val_dataloader: ???
|
| 124 |
+
seed: 2333
|
| 125 |
+
batch_size: 32
|
| 126 |
+
max_num_data: 40000
|
| 127 |
+
max_num_visualization: 32
|
| 128 |
+
out_dir: ${run_dir}/vis
|
| 129 |
+
metrics:
|
| 130 |
+
- _target_: motionbricks.eval.metrics.FootSkateFromHeight
|
| 131 |
+
- _target_: motionbricks.eval.metrics.FootSkateFromContacts
|
| 132 |
+
- _target_: motionbricks.eval.metrics.JointPosConsistency
|
| 133 |
+
train_end:
|
| 134 |
+
_target_: motionbricks.motionlib.train.callbacks.train_end.TrainEndCallback
|
| 135 |
+
only_rank_zero:
|
| 136 |
+
- eval_visualize
|
| 137 |
+
- learning_rate_monitor
|
| 138 |
+
- evaluate
|
| 139 |
+
- train_end
|
| 140 |
+
need_version: []
|
| 141 |
+
need_dataloaders:
|
| 142 |
+
- eval_visualize
|
| 143 |
+
- evaluate
|
| 144 |
+
need_ema: []
|
| 145 |
+
need_motionbricks_test: []
|
| 146 |
+
need_log:
|
| 147 |
+
- eval_visualize
|
| 148 |
+
- evaluate
|
| 149 |
+
need_autoresume: []
|
| 150 |
+
need_mask_cond_sampler: []
|
| 151 |
+
need_one_logger_callback:
|
| 152 |
+
- autoresume
|
| 153 |
+
dataloader:
|
| 154 |
+
_target_: torch.utils.data.DataLoader
|
| 155 |
+
batch_size: 128
|
| 156 |
+
num_workers: 11
|
| 157 |
+
shuffle: ???
|
| 158 |
+
persistent_workers: true
|
| 159 |
+
collate_fn:
|
| 160 |
+
_target_: motionbricks.motionlib.data.utils.collate_batch
|
| 161 |
+
_partial_: true
|
| 162 |
+
llm_shape: ${model.denoiser.backbone.llm_shape}
|
| 163 |
+
num_frames: null
|
| 164 |
+
data:
|
| 165 |
+
_target_: motionbricks.motionlib.data.motion_dataset.MotionDataset
|
| 166 |
+
name: motionbricks-G1
|
| 167 |
+
folder: ../datasets/motionbricks-G1
|
| 168 |
+
text_embeddings: null
|
| 169 |
+
split: ???
|
| 170 |
+
motion_sampler:
|
| 171 |
+
_target_: motionbricks.motionlib.data.motion_sampler.MaxDurationRandomCrop
|
| 172 |
+
max_seconds: 30
|
| 173 |
+
motion_loading_mode: memmap
|
| 174 |
+
use_natural_desc: true
|
| 175 |
+
use_short_desc: true
|
| 176 |
+
use_technical_desc: false
|
| 177 |
+
use_nv_overview_desc: false
|
| 178 |
+
nv_overview_prob: null
|
| 179 |
+
drop_text_prob: 0.1
|
| 180 |
+
augment_text: false
|
| 181 |
+
aug_text_suffix: ''
|
| 182 |
+
aug_text_prob: 0.75
|
| 183 |
+
aug_text_ind_range:
|
| 184 |
+
- 1
|
| 185 |
+
- 61
|
| 186 |
+
load_neutral_joints: false
|
| 187 |
+
timelines_mode: false
|
| 188 |
+
timelines_name: null
|
| 189 |
+
dataset_sampler: null
|
| 190 |
+
dataset_sampler_only_at_train: true
|
| 191 |
+
to_canonicalize: false
|
| 192 |
+
randomize_first_heading: true
|
| 193 |
+
loading_mode: motion_only
|
| 194 |
+
skeleton:
|
| 195 |
+
base_name: g1skel34
|
| 196 |
+
folder: out/motionbricks_vqvae/version_1/skeleton
|
| 197 |
+
t_pose: capture
|
| 198 |
+
orig_prefix: ''
|
| 199 |
+
name: g1skel34
|
| 200 |
+
_target_: motionbricks.motionlib.core.skeletons.g1.G1Skeleton34
|
| 201 |
+
motion_rep:
|
| 202 |
+
name: ${skeleton.name}_dual_root_global_joints
|
| 203 |
+
stats:
|
| 204 |
+
_target_: motionbricks.motionlib.core.utils.stats.Stats
|
| 205 |
+
folder: out/motionbricks_vqvae/version_1/stats/motion
|
| 206 |
+
_target_: motionbricks.motionlib.core.motion_reps.dual_root_global_joints.GlobalRootGlobalJoints
|
| 207 |
+
fps: 30
|
| 208 |
+
wandb_run: motionbricks_vqvae
|
| 209 |
+
resume: false
|
| 210 |
+
version: 1
|
| 211 |
+
cp: last_epoch
|
| 212 |
+
matmul_precision: high
|
| 213 |
+
seed: 7
|
| 214 |
+
id: ${hydra:runtime.choices.exp}_gpu${trainer.devices}_node${trainer.num_nodes}
|
| 215 |
+
out_dir: out/motionbricks_vqvae
|
| 216 |
+
run_dir: ???
|
| 217 |
+
pure_testing: false
|
| 218 |
+
test:
|
| 219 |
+
unlimit_max_code: false
|
| 220 |
+
max_num_data: 16
|
| 221 |
+
min_length: 10
|
| 222 |
+
max_length: 60
|
| 223 |
+
ckpt_dir: null
|
| 224 |
+
ckpt_name: null
|
| 225 |
+
config_version: 4
|
| 226 |
+
data_root: datasets
|
| 227 |
+
tmr_checkpoints_root: null
|
| 228 |
+
use_one_logger: false
|
g1/out/motionbricks_vqvae/version_1/meta.yaml
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
wandb_run: motionbricks_vqvae
|
g1/out/motionbricks_vqvae/version_1/skeleton/joints.npy
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:6a682fc9d36204eb8e58c6b29eb0881e36242ed94dff078c82a373cdc6783ab0
|
| 3 |
+
size 944
|
g1/out/motionbricks_vqvae/version_1/skeleton/parents.npy
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:02754fe01a8dcad13b9e3f95f7a696f56bccc5eeb5f5bf701f31cec88e23b1c4
|
| 3 |
+
size 400
|
g1/out/motionbricks_vqvae/version_1/skeleton/skeleton.yaml
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
base_name: g1skel34
|
| 2 |
+
folder: ${data.folder}/features/motion_rep/${motion_rep.name}_fps_${fps}/skeleton
|
| 3 |
+
t_pose: capture
|
| 4 |
+
orig_prefix: ''
|
| 5 |
+
name: g1skel34
|
| 6 |
+
_target_: motionbricks.motionlib.core.skeletons.g1.G1Skeleton34
|
g1/out/motionbricks_vqvae/version_1/stats/motion/mean.npy
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:ca390f0081e2373ab71e860a3546cb70cc11fdfac6ce525155403e047b66fdea
|
| 3 |
+
size 3472
|
g1/out/motionbricks_vqvae/version_1/stats/motion/std.npy
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:fca7dd6135cbe96504b1307a7db97e9004556937a2fc72d139077b962cee6bd7
|
| 3 |
+
size 3472
|
soma/README.md
ADDED
|
@@ -0,0 +1,374 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
---
|
| 2 |
+
library_name: pytorch
|
| 3 |
+
tags:
|
| 4 |
+
- nvidia
|
| 5 |
+
- motionbricks
|
| 6 |
+
- soma
|
| 7 |
+
- rigplay
|
| 8 |
+
- motion-generation
|
| 9 |
+
- pose-conditioned
|
| 10 |
+
- animation
|
| 11 |
+
---
|
| 12 |
+
|
| 13 |
+
# MotionBricks SOMA
|
| 14 |
+
|
| 15 |
+
[Project page](https://nvlabs.github.io/motionbricks/) · [Paper](https://arxiv.org/abs/2604.24833)
|
| 16 |
+
|
| 17 |
+
## Model Description
|
| 18 |
+
|
| 19 |
+
MotionBricks SOMA generates human skeletal motion from recent motion, target poses, and
|
| 20 |
+
root-motion constraints. Applications can feed generated motion back into the model and update
|
| 21 |
+
targets to produce continuous locomotion and transitions between authored poses.
|
| 22 |
+
|
| 23 |
+
NVIDIA developed `MotionBricks-SOMA-RP-v1` for the 30-joint SOMA skeleton using Bones RigPlay 1
|
| 24 |
+
(RP1) motion data. The checkpoint contains a pose tokenizer and decoder, a pose predictor, and a
|
| 25 |
+
root predictor. Together, these components generate skeletal motion from the supplied constraints.
|
| 26 |
+
|
| 27 |
+
The package includes single-precision (FP32) weights in SafeTensors format, configuration,
|
| 28 |
+
normalization statistics, and skeleton metadata. A training pipeline is not included.
|
| 29 |
+
|
| 30 |
+
This model is intended for commercial and non-commercial motion-generation applications.
|
| 31 |
+
|
| 32 |
+
### Where to Start
|
| 33 |
+
|
| 34 |
+
To run MotionBricks in an application, start with the [SOMA ONNX model and runtime](https://github.com/NVlabs/motionbricks/blob/main/docs/soma_model.md).
|
| 35 |
+
Use the checkpoints on this page to work with the individual PyTorch components or create
|
| 36 |
+
ONNX exports. [Download the complete SOMA package](#download-and-files), then follow the
|
| 37 |
+
[exporter guide](https://github.com/NVlabs/motionbricks/blob/main/tools/onnx/README.md).
|
| 38 |
+
|
| 39 |
+
## License and Terms of Use
|
| 40 |
+
|
| 41 |
+
Use of this model is governed by the [NVIDIA Open Model Agreement](https://www.nvidia.com/en-us/agreements/enterprise-software/nvidia-open-model-agreement/).
|
| 42 |
+
It permits commercial use and redistribution of modified models, subject to the agreement's terms.
|
| 43 |
+
|
| 44 |
+
- The accompanying software uses [Apache 2.0](https://github.com/NVlabs/motionbricks/blob/main/LICENSE).
|
| 45 |
+
- The listed Bones-derived human BVH and G1 CSV samples use the
|
| 46 |
+
[NVIDIA Sample Data Evaluation License](https://github.com/NVlabs/motionbricks/blob/main/assets/motions/LICENSE.txt).
|
| 47 |
+
They are for internal evaluation and testing of NVIDIA technologies. See the
|
| 48 |
+
[sample notice](https://github.com/NVlabs/motionbricks/blob/main/assets/motions/README.md) for the exact files covered.
|
| 49 |
+
- Robot assets and third-party dependencies retain their [respective licenses](https://github.com/NVlabs/motionbricks/tree/main/licenses).
|
| 50 |
+
|
| 51 |
+
## Deployment Geography
|
| 52 |
+
|
| 53 |
+
Global.
|
| 54 |
+
|
| 55 |
+
## Intended Uses
|
| 56 |
+
|
| 57 |
+
MotionBricks SOMA is intended for developers and researchers building interactive human animation
|
| 58 |
+
and motion previews for robotics and simulation. Applications can generate transitions between
|
| 59 |
+
authored poses or update targets to guide locomotion. Generated motion is not validated for
|
| 60 |
+
physical robot control.
|
| 61 |
+
|
| 62 |
+
## Model Package
|
| 63 |
+
|
| 64 |
+
The SOMA model package contains SafeTensors weights, their supporting metadata, and this model card.
|
| 65 |
+
Derived Open Neural Network Exchange (ONNX) exports and runtime software are maintained in the
|
| 66 |
+
MotionBricks software repository.
|
| 67 |
+
|
| 68 |
+
The checkpoint package is organized under [`soma/` in the MotionBricks model repository](https://huggingface.co/nvidia/MotionBricks/tree/main/soma). The three SOMA components are used together. The separate `g1/` package is not covered by this card.
|
| 69 |
+
|
| 70 |
+
This card identifies the checkpoint as `MotionBricks-SOMA-RP-v1`. The accompanying software
|
| 71 |
+
release is v0.2.0. The checkpoint name and software version describe different artifacts.
|
| 72 |
+
|
| 73 |
+
## References
|
| 74 |
+
|
| 75 |
+
T. Wang, O. Dionne, M. De Ruyter, D. Minor, D. Rempe, K. Zhao, M. Petrovich, Y. Yuan, C. Li, Z. Luo, B. Robison, X. Blackwell, B. Antoniazzi, X. B. Peng, Y. Zhu and S. Yuen. **MotionBricks: Scalable Real-Time Motions with Modular Latent Generative Model and Smart Primitives**, 2026. [ACM Transactions on Graphics](https://doi.org/10.1145/3811334). [arXiv:2604.24833](https://arxiv.org/abs/2604.24833).
|
| 76 |
+
|
| 77 |
+
## Download and Files
|
| 78 |
+
|
| 79 |
+
Download the complete [`soma/` folder](https://huggingface.co/nvidia/MotionBricks/tree/main/soma)
|
| 80 |
+
and keep its directory structure intact. It contains separate directories for the pose
|
| 81 |
+
vector-quantized variational autoencoder (VQ-VAE), pose predictor, and root predictor.
|
| 82 |
+
No archive extraction is needed.
|
| 83 |
+
|
| 84 |
+
Each component includes `checkpoints/model-step=1500000.safetensors`, a JSON metadata sidecar,
|
| 85 |
+
and supporting configuration files. Normalization arrays and skeleton metadata define the
|
| 86 |
+
motion representation. Joint data is stored in `joints.npy`. Keep these files with the weights.
|
| 87 |
+
|
| 88 |
+
Use the [manifest](https://huggingface.co/nvidia/MotionBricks/blob/main/soma/manifest.json) to
|
| 89 |
+
identify package files and the [checksums](https://huggingface.co/nvidia/MotionBricks/blob/main/soma/SHA256SUMS)
|
| 90 |
+
to verify their integrity.
|
| 91 |
+
|
| 92 |
+
The package omits optimizer, scheduler, callback, and training-loop state. It provides weights
|
| 93 |
+
for inference or fine-tuning initialization with a compatible implementation, not exact
|
| 94 |
+
resumption of the original training run.
|
| 95 |
+
|
| 96 |
+
| Property | Value |
|
| 97 |
+
| --- | --- |
|
| 98 |
+
| Model family | MotionBricks |
|
| 99 |
+
| Task | Pose-conditioned motion generation and inbetweening |
|
| 100 |
+
| Skeleton | SOMA, 30 joints |
|
| 101 |
+
| Training dataset | RP1 |
|
| 102 |
+
| FPS | 30 |
|
| 103 |
+
| Checkpoint components | Pose VQ-VAE, pose masked motion model, root masked motion model |
|
| 104 |
+
| Checkpoint step | 1,500,000 for each component |
|
| 105 |
+
| Training precision | FP32 |
|
| 106 |
+
| Weight format | SafeTensors, `.safetensors` |
|
| 107 |
+
|
| 108 |
+
## Model Architecture
|
| 109 |
+
|
| 110 |
+
**Architecture Type:** Modular latent generative model.
|
| 111 |
+
|
| 112 |
+
**Network Architecture:** A pose vector-quantized variational autoencoder (VQ-VAE) encodes and decodes motion tokens. One transformer predicts motion tokens. Another predicts root motion and duration. The SOMA tokenizer uses five heads with 16 codes per head and 32 dimensions per head.
|
| 113 |
+
|
| 114 |
+
**Base Model:** The SOMA components were trained from scratch on RP1 motion. They are distinct from the original G1 model weights.
|
| 115 |
+
|
| 116 |
+
**Number of Model Parameters:** Approximately 200 million across the three components. The component counts below are rounded.
|
| 117 |
+
|
| 118 |
+
| Component | Approximate parameters |
|
| 119 |
+
| --- | ---: |
|
| 120 |
+
| Pose VQ-VAE | 23.4 million |
|
| 121 |
+
| Pose predictor | 136.5 million |
|
| 122 |
+
| Root predictor | 40.4 million |
|
| 123 |
+
|
| 124 |
+
Smart Primitives and locomotion controllers supply constraints at the application level. Text prompts are outside this model's conditioning interface. See the [MotionBricks paper](https://arxiv.org/abs/2604.24833) for the method. The paper reports experiments with the model configurations and datasets specified there.
|
| 125 |
+
|
| 126 |
+
## Inputs
|
| 127 |
+
|
| 128 |
+
**Input Type(s):** Skeletal-motion features, pose constraints, root-motion constraints, motion-token IDs, conditioning masks and duration constraints. There are no text, image, video or scene-geometry inputs in these checkpoint interfaces.
|
| 129 |
+
|
| 130 |
+
**Input Format(s):** Numeric tensors consumed by the matching PyTorch implementation. Motion features are FP32 with bundled normalization statistics. Token IDs and lengths are integers. Dense constraint and padding masks are Boolean.
|
| 131 |
+
|
| 132 |
+
**Input Parameters:** Component-specific batched tensor shapes are listed below. `N` is batch size, `L` is the number of motion-token positions and `T = 4L` is the number of frames.
|
| 133 |
+
|
| 134 |
+
**Other Properties Related to Input:** Generation uses 6 to 16 tokens, corresponding to 24 to 64 frames at 30 Hz. Shorter sequences can be padded with valid-length masks. The root predictor uses eight boundary frames, four context frames and four target frames. Practical batch sizes depend on memory and implementation. These are checkpoint-component interfaces after feature preparation. An application's pose interface or exported graph can differ.
|
| 135 |
+
|
| 136 |
+
For joint ordering, coordinates, normalization and reconstruction, use the matching MotionBricks implementation and package metadata.
|
| 137 |
+
|
| 138 |
+
### Pose VQ-VAE: tokenizer and decoder
|
| 139 |
+
|
| 140 |
+
| Tensor | Direction | Shape | Description |
|
| 141 |
+
| --- | --- | --- | --- |
|
| 142 |
+
| Pose features | Encoder input | `(N, T, 268)` | Root height, 29 non-root joint positions with three values each, and 30 joint rotations with six values each |
|
| 143 |
+
| Motion codes | Encoder output / decoder input | `(N, L, 5)` | Five codebook heads, each with IDs from 0 through 15 |
|
| 144 |
+
| Target pose features | Decoder input | `(N, T, 268)` | Pose constraints in the same representation |
|
| 145 |
+
| Target pose mask | Decoder input | `(N, T)` | Frames containing pose constraints |
|
| 146 |
+
| Local root velocity | Decoder input | `(N, T, 2)` | Ground root-motion conditioning |
|
| 147 |
+
| Valid-token mask | Decoder input, optional | `(N, L)` | Valid positions for padded sequences |
|
| 148 |
+
| Reconstructed motion | Decoder output | `(N, T, 365)` | Four local-root features, 87 joint-position values, 180 rotation values, 90 joint-velocity values and four foot-contact features |
|
| 149 |
+
|
| 150 |
+
Each token represents four frames. The quantized latent has 160 values per token, five heads times 32 values. The table uses separate per-head code IDs. The implementation also supports packing them into one integer per token.
|
| 151 |
+
|
| 152 |
+
### Pose predictor
|
| 153 |
+
|
| 154 |
+
| Tensor | Direction | Shape | Description |
|
| 155 |
+
| --- | --- | --- | --- |
|
| 156 |
+
| Motion tokens | Input | `(N, L, 5)` | IDs from 0 through 15, or mask ID 16 for unknown codes |
|
| 157 |
+
| Root trajectory | Input | `(N, T, 4)` | Ground root position and two-component heading, without root height |
|
| 158 |
+
| Pose constraints | Input | `(N, T, 268)` | Root height, joint positions and 6D rotations |
|
| 159 |
+
| Pose constraint mask | Input | `(N, T)` | Frames with supplied pose constraints |
|
| 160 |
+
| Valid token count | Input | `(N, 1)` | One length from 6 to 16 per sample |
|
| 161 |
+
| Pose-code logits | Output | `(N, L, 5, 16)` | Scores over each head's codebook. Selected codes feed the decoder. |
|
| 162 |
+
|
| 163 |
+
### Root predictor
|
| 164 |
+
|
| 165 |
+
Each sample can have its own constraints and duration.
|
| 166 |
+
|
| 167 |
+
| Tensor | Direction | Shape | Description |
|
| 168 |
+
| --- | --- | --- | --- |
|
| 169 |
+
| Global root constraints | Input | `(N, 8, 5)` | Root position with three values and heading with two values |
|
| 170 |
+
| Local root constraints | Input | `(N, 8, 4)` | Root angular velocity, ground velocity and height |
|
| 171 |
+
| Pose constraints | Input | `(N, 8, 268)` | Root height, joint positions and 6D rotations |
|
| 172 |
+
| Constraint masks | Input | Three tensors of `(N, 8)` | One mask for each constraint tensor above |
|
| 173 |
+
| Requested token count | Input | `(N, 1)` | Duration from 6 to 16, or unknown-duration token 18 |
|
| 174 |
+
| Allowed durations | Input, optional | `(N, 11)` | Flags for token counts from 6 to 16 |
|
| 175 |
+
| Duration logits | Output | `(N, 12)` | Eleven duration scores and an out-of-reach class |
|
| 176 |
+
| Predicted token count | Output | `(N,)` | Selected duration. Generation disables the out-of-reach class. |
|
| 177 |
+
| Predicted global root | Output | `(N, 64, 5)` | Padded root trajectory. Valid length is four times each sample's token count. |
|
| 178 |
+
|
| 179 |
+
## Outputs
|
| 180 |
+
|
| 181 |
+
**Output Type(s):** Motion codes and logits, reconstructed skeletal-motion features, root-motion predictions and valid duration. See the component tables above.
|
| 182 |
+
|
| 183 |
+
**Output Format(s):** Numeric tensors. Predicted motion features and root motion are FP32. Code IDs and selected lengths are integers. After denormalization and skeletal reconstruction, outputs can be represented as root translations `(N, T, 3)` and joint rotation matrices `(N, T, 30, 3, 3)`.
|
| 184 |
+
|
| 185 |
+
**Output Parameters:** The component tables specify dimensions and valid lengths. Output motion is represented at 30 Hz. Respect valid-length information rather than treating padded frames as generated content.
|
| 186 |
+
|
| 187 |
+
**Other Properties Related to Output:** Longer motion requires repeated generation. Predictions may become context for a later call. Export precision and backend can change results. The checkpoint interfaces are not the same as the derived ONNX interfaces.
|
| 188 |
+
|
| 189 |
+
The model was trained using NVIDIA GPUs. The CPU-based export utility converts these checkpoints
|
| 190 |
+
to ONNX. Its successful execution is not a real-time inference benchmark or a CPU-versus-GPU
|
| 191 |
+
performance comparison.
|
| 192 |
+
|
| 193 |
+
## Software Integration
|
| 194 |
+
|
| 195 |
+
**Runtime Engine(s):** PyTorch with the matching MotionBricks implementation, configuration,
|
| 196 |
+
normalization statistics, and skeleton metadata. The exporter requires Python 3.12,
|
| 197 |
+
PyTorch 2.14.0+cpu, NumPy 1.26.4, ONNX 1.23.2, and SafeTensors 0.8.0.
|
| 198 |
+
|
| 199 |
+
**Supported Hardware Microarchitecture Compatibility:** The exporter runs on the CPU.
|
| 200 |
+
A specific CPU model, minimum-memory requirement, and broader compatibility matrix are
|
| 201 |
+
not documented. For ONNX runtime requirements, see the [SOMA ONNX card](https://github.com/NVlabs/motionbricks/blob/main/docs/soma_model.md).
|
| 202 |
+
|
| 203 |
+
**Supported Operating System(s):** We tested checkpoint-to-ONNX conversion on Windows.
|
| 204 |
+
Tests on other operating systems are not reported.
|
| 205 |
+
|
| 206 |
+
The integration of foundation and fine-tuned models into AI systems requires additional testing using use-case-specific data to ensure safe and effective deployment. Following the V-model methodology, iterative testing and validation at both unit and system levels are essential to mitigate risks, meet technical and functional requirements, and ensure compliance with safety and ethical standards before deployment.
|
| 207 |
+
|
| 208 |
+
The [exporter](https://github.com/NVlabs/motionbricks/blob/main/tools/onnx/README.md) accepts the downloaded checkpoint folder.
|
| 209 |
+
Its loader checks required file sizes and SHA-256 hashes, reads SafeTensors weights,
|
| 210 |
+
and disables NumPy pickle loading. Keep the checkpoint and exporter versions matched.
|
| 211 |
+
Do not load untrusted checkpoints. These checks do not replace security scans or
|
| 212 |
+
validation in your application.
|
| 213 |
+
|
| 214 |
+
## Release Date
|
| 215 |
+
|
| 216 |
+
Hugging Face 10/23/2026 via the [MotionBricks SOMA checkpoint package](https://huggingface.co/nvidia/MotionBricks/tree/main/soma).
|
| 217 |
+
|
| 218 |
+
## Model Versions
|
| 219 |
+
|
| 220 |
+
`MotionBricks-SOMA-RP-v1` contains the three FP32 components at training step 1,500,000.
|
| 221 |
+
The [manifest](https://huggingface.co/nvidia/MotionBricks/blob/main/soma/manifest.json) and
|
| 222 |
+
[checksums](https://huggingface.co/nvidia/MotionBricks/blob/main/soma/SHA256SUMS) identify the package files.
|
| 223 |
+
|
| 224 |
+
The components are used together. The MotionBricks exporter combines them into FP32 or
|
| 225 |
+
mixed FP16 ONNX models. Those models have a [separate card](https://github.com/NVlabs/motionbricks/blob/main/docs/soma_model.md) and tensor
|
| 226 |
+
interface. Use that interface when integrating the ONNX runtime. The checkpoint-component
|
| 227 |
+
tensors are not interchangeable with the ONNX interface.
|
| 228 |
+
|
| 229 |
+
## Training, Testing and Evaluation Datasets
|
| 230 |
+
|
| 231 |
+
### Training Dataset
|
| 232 |
+
|
| 233 |
+
**Name/Identifier:** Bones RigPlay 1 (RP1).
|
| 234 |
+
|
| 235 |
+
**Data Modality:** Other: human skeletal motion capture, represented on the 30-joint SOMA skeleton at 30 Hz. Training used motion features without text embeddings.
|
| 236 |
+
|
| 237 |
+
**Training Data Size:** 313,526 human-motion clips in the selected training subset. The source
|
| 238 |
+
corpus contains approximately 350,000 clips and 700 hours of motion. The source-corpus duration
|
| 239 |
+
is not the selected training-subset duration.
|
| 240 |
+
|
| 241 |
+
**Data Collection Method:** Automatic/Sensors. Human performances were recorded in a motion-capture studio by Bones, then provided as skeletal motion. Training uses the processed uniform SOMA representation, not data captured directly on the SOMA skeleton.
|
| 242 |
+
|
| 243 |
+
**Labeling Method:** Automatic/Sensors for the captured skeletal motion, followed by automated preparation into uniform skeletal features. These motion-only runs use pose/motion values as their learning data and do not consume text embeddings or text annotations. The source dataset can include additional annotations, but those are not model conditioning inputs.
|
| 244 |
+
|
| 245 |
+
**Properties:** Training uses uniform SOMA motion features at 30 Hz, random first headings, and
|
| 246 |
+
random crops of up to 15 seconds. Root motion and joint features provide the motion representation.
|
| 247 |
+
Text embeddings and text augmentation are disabled. This package does not redistribute the
|
| 248 |
+
training corpus.
|
| 249 |
+
|
| 250 |
+
**Linguistic Characteristics:** Not applicable to the motion-feature inputs. Associated text
|
| 251 |
+
descriptions are dataset metadata, not model conditioning inputs.
|
| 252 |
+
|
| 253 |
+
All three checkpoint components were trained in FP32.
|
| 254 |
+
|
| 255 |
+
### Testing Dataset
|
| 256 |
+
|
| 257 |
+
**Name, Size and Role:** We used 313,526 clips for training and a separate, selected set of
|
| 258 |
+
4,881 clips for validation and evaluation during training. No clips are shared between these
|
| 259 |
+
sets. The 4,881 clips are a selection from the held-out pool, not the entire pool. A separate
|
| 260 |
+
untouched final-test set, a performer-disjoint split, and the selected subset's duration are
|
| 261 |
+
not documented.
|
| 262 |
+
|
| 263 |
+
**Data Collection Method:** Automatic/Sensors, from the same Bones studio motion-capture source and processed SOMA representation as the training set.
|
| 264 |
+
|
| 265 |
+
**Labeling Method:** Automatic/Sensors for captured skeletal motion, followed by automated preparation into the same motion features used for training. Text annotations are not consumed by the recorded motion-only validation path.
|
| 266 |
+
|
| 267 |
+
**Properties:** The validation inputs are 30 Hz skeletal-motion features in the same uniform SOMA
|
| 268 |
+
representation as the training inputs. Linguistic characteristics are not applicable to these
|
| 269 |
+
motion-only inputs. Disjoint clips alone do not rule out other forms of data leakage.
|
| 270 |
+
|
| 271 |
+
### Evaluation Dataset and Results
|
| 272 |
+
|
| 273 |
+
**Name/Size:** Evaluation uses the same 4,881-clip RP1 subset described under
|
| 274 |
+
[Testing Dataset](#testing-dataset). It is not an additional independent test set.
|
| 275 |
+
|
| 276 |
+
**Benchmark Score:** A complete end-to-end benchmark of these SOMA checkpoints is not included
|
| 277 |
+
with this package.
|
| 278 |
+
|
| 279 |
+
**Data Collection Method:** Automatic/Sensors. Same studio-captured Bones motion source, processed into the uniform SOMA representation.
|
| 280 |
+
|
| 281 |
+
**Labeling Method:** Automatic/Sensors for captured skeletal motion, with automated preparation into uniform motion features. Evaluation uses motion rather than text-conditioned labels.
|
| 282 |
+
|
| 283 |
+
**Properties:** Human skeletal motion represented on SOMA at 30 Hz. Linguistic characteristics
|
| 284 |
+
are not applicable to these motion-only inputs. Text annotations are not consumed. The selected
|
| 285 |
+
subset's duration is unspecified.
|
| 286 |
+
|
| 287 |
+
**Recorded Results:** The available evidence covers training-time observations and checkpoint
|
| 288 |
+
conversion, not a complete final-checkpoint benchmark.
|
| 289 |
+
|
| 290 |
+
| Check | Available evidence |
|
| 291 |
+
| --- | --- |
|
| 292 |
+
| Tokenizer | Reconstruction and foot-skating metrics recorded during training |
|
| 293 |
+
| Root predictor | Validation recorded during training |
|
| 294 |
+
| Pose predictor | Training loss recorded, without a complete validation result |
|
| 295 |
+
| Original checkpoints | Validated and exported in July 2026 |
|
| 296 |
+
| SafeTensors conversion | Tested on Windows with CPU PyTorch. See [Inference](#inference) for the environment. |
|
| 297 |
+
|
| 298 |
+
The [MotionBricks paper](https://arxiv.org/abs/2604.24833) reports method-level experiments with
|
| 299 |
+
the model and dataset configurations specified there. Those results are not an end-to-end
|
| 300 |
+
benchmark of this package.
|
| 301 |
+
|
| 302 |
+
## Inference
|
| 303 |
+
|
| 304 |
+
**Acceleration Engine:** The checkpoint implementation and exporter use PyTorch.
|
| 305 |
+
The exporter runs on the CPU. The separate ONNX runtime uses TensorRT 10.8.
|
| 306 |
+
|
| 307 |
+
**Test Hardware Set-Up:** We tested checkpoint-to-ONNX conversion on Windows using CPU PyTorch.
|
| 308 |
+
The CPU model, conversion time, and checkpoint-runtime latency and throughput are not reported.
|
| 309 |
+
The [ONNX card](https://github.com/NVlabs/motionbricks/blob/main/docs/soma_model.md) describes the separate Windows and RTX 4090 runtime.
|
| 310 |
+
Neither successful export nor runtime execution establishes safe physical robot tracking.
|
| 311 |
+
|
| 312 |
+
## Limitations
|
| 313 |
+
|
| 314 |
+
- Output is specific to the SOMA joint layout and proportions.
|
| 315 |
+
- Longer motion requires repeated generation from a short context window.
|
| 316 |
+
- Targets guide motion, but the model does not receive scene geometry. Applications handle obstacles and target placement.
|
| 317 |
+
- Generated motion can contain pose or contact artifacts and vary with numerical precision and inference backend.
|
| 318 |
+
- Kinematic motion generation does not establish physical feasibility or successful tracking by a robot controller.
|
| 319 |
+
|
| 320 |
+
## Ethical Considerations
|
| 321 |
+
|
| 322 |
+
NVIDIA believes Trustworthy AI is a shared responsibility and we have established policies and practices to enable development for a wide array of AI applications. Developers should work with their internal model team to ensure this model meets requirements for the relevant industry and use case and addresses unforeseen product misuse.
|
| 323 |
+
|
| 324 |
+
For more detailed information on ethical considerations for this model, see the [Bias](#bias-subcard), [Explainability](#explainability-subcard), [Safety & Security](#safety-and-security-subcard) and [Privacy](#privacy-subcard) subcards below.
|
| 325 |
+
|
| 326 |
+
Please report model quality, risk, security vulnerabilities or NVIDIA AI Concerns [here](https://www.nvidia.com/en-us/support/submit-security-vulnerability/).
|
| 327 |
+
|
| 328 |
+
## Bias Subcard
|
| 329 |
+
|
| 330 |
+
| Field | Response |
|
| 331 |
+
| --- | --- |
|
| 332 |
+
| Participation considerations from adversely impacted groups in model design and testing | Not reported. |
|
| 333 |
+
| Measures taken to mitigate unwanted bias | Specific measured mitigation is not reported. Applications should evaluate motion quality for their users and motion conditions. |
|
| 334 |
+
| Bias Metric, if measured | Demographic and body/motion coverage comparisons are not reported. |
|
| 335 |
+
|
| 336 |
+
The fixed SOMA representation does not establish equivalent quality across body proportions or motion categories.
|
| 337 |
+
|
| 338 |
+
## Explainability Subcard
|
| 339 |
+
|
| 340 |
+
| Field | Response |
|
| 341 |
+
| --- | --- |
|
| 342 |
+
| Intended Task/Domain | Pose-conditioned human skeletal motion generation and inbetweening. |
|
| 343 |
+
| Model Type | Modular latent generative model, with transformer predictors and learned pose tokenizer and decoder. |
|
| 344 |
+
| Intended Users | Developers and researchers building animation, robotics, and simulation workflows. |
|
| 345 |
+
| Output | Motion codes and logits, root predictions, duration and reconstructed skeletal-motion features, as detailed in the component tables. |
|
| 346 |
+
| Describe how the model works | The tokenizer represents motion as discrete codes. Pose and root predictors use recent motion and target constraints to predict a transition. The decoder and matching reconstruction produce skeletal motion. Applications can reuse the output as context. |
|
| 347 |
+
| Groups tested to produce comparable outcomes | Demographic subgroup comparisons are not reported. |
|
| 348 |
+
| Technical Limitations and Mitigation | Fixed skeleton, short context, no scene-geometry input and backend/precision variation. Validate application-specific motion, target placement and any physical execution separately. |
|
| 349 |
+
| Verified to have met prescribed NVIDIA quality standards | Yes |
|
| 350 |
+
| Performance Metrics | See [Evaluation Dataset and Results](#evaluation-dataset-and-results) for training metrics and [Inference](#inference) for runtime evidence. |
|
| 351 |
+
| Potential Known Risks | Pose/contact artifacts, unwanted motion under out-of-distribution constraints, and unsafe physical interpretation if generated poses are treated as validated robot commands. |
|
| 352 |
+
| Licensing | Use of this model is governed by the [NVIDIA Open Model Agreement](https://www.nvidia.com/en-us/agreements/enterprise-software/nvidia-open-model-agreement/). See [License and Terms of Use](#license-and-terms-of-use) for separate software and sample-data terms. |
|
| 353 |
+
|
| 354 |
+
## Privacy Subcard
|
| 355 |
+
|
| 356 |
+
Training used RP1 skeletal motion collected by Bones and supplied to NVIDIA under a negotiated data license. NVIDIA processed the motion into the SOMA representation.
|
| 357 |
+
|
| 358 |
+
The datasets used to train this model were reviewed before release. Training used motion features, not text annotations or interactions with this model.
|
| 359 |
+
|
| 360 |
+
The package does not include the training corpus. Local execution does not eliminate privacy risks associated with training data.
|
| 361 |
+
|
| 362 |
+
Please review [NVIDIA’s Privacy Policy](https://www.nvidia.com/en-us/about-nvidia/privacy-policy/) for more information.
|
| 363 |
+
|
| 364 |
+
## Safety and Security Subcard
|
| 365 |
+
|
| 366 |
+
| Field | Response |
|
| 367 |
+
| --- | --- |
|
| 368 |
+
| Model Application Fields | Industrial/Machinery and Robotics, Media & Entertainment. Generated motion is not validated for physical robot control. |
|
| 369 |
+
| Life-critical impact | Generated skeletal motion is not a validated physical controller. Misuse as robot commands can create physical risk. |
|
| 370 |
+
| Use Case Restrictions | Use of this model is governed by the [NVIDIA Open Model Agreement](https://www.nvidia.com/en-us/agreements/enterprise-software/nvidia-open-model-agreement/). See [License and Terms of Use](#license-and-terms-of-use) for separate software and sample-data terms. |
|
| 371 |
+
| Model and dataset restrictions | This package does not include the RP1 training corpus. Access to the dataset is governed separately from the model weights. |
|
| 372 |
+
|
| 373 |
+
Evaluate generated motion in the intended application. Physical execution requires a separate tracking and safety system. Hash verification and checkpoint loading alone do not establish complete security or safe downstream behavior.
|
| 374 |
+
|
soma/SHA256SUMS
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
50ac7be9443f1bd677a648c610f29b8dd9c6917dddc95a89f7bdbad410638744 README.md
|
| 2 |
+
9ae6cd2d4386b5178e62d47f03f7a1750326a729b919f545fe5cd4a4b966bff0 manifest.json
|
| 3 |
+
d7ead5ef043a9d1e99071b6f8aedc70753560fdc0a613cc1287f1561b50fce3c soma-v6-nova-4n8g-ea43dd8-fp32-v1/SHA256SUMS
|
| 4 |
+
4ad901e6eb008f40bb5eae22edf25a9d42b3ac553e0c55657a63a0e218d8d015 soma-v6-nova-4n8g-ea43dd8-fp32-v1/mmm-v6-soma-pose-nova-4n8g-ea43dd8-fp32-v1/version_0/checkpoints/model-step=1500000.json
|
| 5 |
+
8537d9d33a880ff1df6c16c28ed061d60c461a5918d70b1cf99251ff91a10a10 soma-v6-nova-4n8g-ea43dd8-fp32-v1/mmm-v6-soma-pose-nova-4n8g-ea43dd8-fp32-v1/version_0/checkpoints/model-step=1500000.safetensors
|
| 6 |
+
c2e3b54d5c6aaf0fbcd1e57b61c9306991bdaf841a609c088944c4a460012885 soma-v6-nova-4n8g-ea43dd8-fp32-v1/mmm-v6-soma-pose-nova-4n8g-ea43dd8-fp32-v1/version_0/config.yaml
|
| 7 |
+
57add41fb635ad9b43e85478954c05087b07d57184676ebb5cfe3c5864b5daac soma-v6-nova-4n8g-ea43dd8-fp32-v1/mmm-v6-soma-pose-nova-4n8g-ea43dd8-fp32-v1/version_0/skeleton/joints.npy
|
| 8 |
+
8c3ae89053844b00de3a011cad142b57ceed727a7662e51ad1fd4878a1693a91 soma-v6-nova-4n8g-ea43dd8-fp32-v1/mmm-v6-soma-pose-nova-4n8g-ea43dd8-fp32-v1/version_0/skeleton/skeleton.yaml
|
| 9 |
+
802f79631ea88a1a920cf44725f5d0e9973a0c8d7adb5359b01bd7a5af57492d soma-v6-nova-4n8g-ea43dd8-fp32-v1/mmm-v6-soma-pose-nova-4n8g-ea43dd8-fp32-v1/version_0/stats/motion/mean.npy
|
| 10 |
+
1a97818fea2a10e562de059013b081ecf7943d6815a36396f0d94f54ad26acb6 soma-v6-nova-4n8g-ea43dd8-fp32-v1/mmm-v6-soma-pose-nova-4n8g-ea43dd8-fp32-v1/version_0/stats/motion/std.npy
|
| 11 |
+
70571a550fda3cfa9fdb1bd3fed502dde27e1f3bcac58546af54a4e8e14705a3 soma-v6-nova-4n8g-ea43dd8-fp32-v1/mmm-v6-soma-root-nova-4n8g-ea43dd8-fp32-v1/version_0/checkpoints/model-step=1500000.json
|
| 12 |
+
a48d48c3d8ff98c825ca315797644789ae37f2db9069779a3118f42e84f4f29e soma-v6-nova-4n8g-ea43dd8-fp32-v1/mmm-v6-soma-root-nova-4n8g-ea43dd8-fp32-v1/version_0/checkpoints/model-step=1500000.safetensors
|
| 13 |
+
6ef85c1296e5ba860f79920222684383aa76573b9dbf3299378f05eaf7971d56 soma-v6-nova-4n8g-ea43dd8-fp32-v1/mmm-v6-soma-root-nova-4n8g-ea43dd8-fp32-v1/version_0/config.yaml
|
| 14 |
+
57add41fb635ad9b43e85478954c05087b07d57184676ebb5cfe3c5864b5daac soma-v6-nova-4n8g-ea43dd8-fp32-v1/mmm-v6-soma-root-nova-4n8g-ea43dd8-fp32-v1/version_0/skeleton/joints.npy
|
| 15 |
+
8c3ae89053844b00de3a011cad142b57ceed727a7662e51ad1fd4878a1693a91 soma-v6-nova-4n8g-ea43dd8-fp32-v1/mmm-v6-soma-root-nova-4n8g-ea43dd8-fp32-v1/version_0/skeleton/skeleton.yaml
|
| 16 |
+
802f79631ea88a1a920cf44725f5d0e9973a0c8d7adb5359b01bd7a5af57492d soma-v6-nova-4n8g-ea43dd8-fp32-v1/mmm-v6-soma-root-nova-4n8g-ea43dd8-fp32-v1/version_0/stats/motion/mean.npy
|
| 17 |
+
1a97818fea2a10e562de059013b081ecf7943d6815a36396f0d94f54ad26acb6 soma-v6-nova-4n8g-ea43dd8-fp32-v1/mmm-v6-soma-root-nova-4n8g-ea43dd8-fp32-v1/version_0/stats/motion/std.npy
|
| 18 |
+
f3518cde99c51f5177a08c1226a45d9992d23e9bb985e658847957cc287a9d00 soma-v6-nova-4n8g-ea43dd8-fp32-v1/vqvae-v6-soma-nova-4n8g-ea43dd8-fp32-v1/version_0/checkpoints/model-step=1500000.json
|
| 19 |
+
ba0d1db48ba7182ef5d1a72268bfaa1a196f1f1fbf00144c046d947b90684a1a soma-v6-nova-4n8g-ea43dd8-fp32-v1/vqvae-v6-soma-nova-4n8g-ea43dd8-fp32-v1/version_0/checkpoints/model-step=1500000.safetensors
|
| 20 |
+
826e58115a0baef638f5a4e42f477d12776a82ac6f0dcda16bc6b8454a88342e soma-v6-nova-4n8g-ea43dd8-fp32-v1/vqvae-v6-soma-nova-4n8g-ea43dd8-fp32-v1/version_0/config.yaml
|
| 21 |
+
57add41fb635ad9b43e85478954c05087b07d57184676ebb5cfe3c5864b5daac soma-v6-nova-4n8g-ea43dd8-fp32-v1/vqvae-v6-soma-nova-4n8g-ea43dd8-fp32-v1/version_0/skeleton/joints.npy
|
| 22 |
+
8c3ae89053844b00de3a011cad142b57ceed727a7662e51ad1fd4878a1693a91 soma-v6-nova-4n8g-ea43dd8-fp32-v1/vqvae-v6-soma-nova-4n8g-ea43dd8-fp32-v1/version_0/skeleton/skeleton.yaml
|
| 23 |
+
802f79631ea88a1a920cf44725f5d0e9973a0c8d7adb5359b01bd7a5af57492d soma-v6-nova-4n8g-ea43dd8-fp32-v1/vqvae-v6-soma-nova-4n8g-ea43dd8-fp32-v1/version_0/stats/motion/mean.npy
|
| 24 |
+
1a97818fea2a10e562de059013b081ecf7943d6815a36396f0d94f54ad26acb6 soma-v6-nova-4n8g-ea43dd8-fp32-v1/vqvae-v6-soma-nova-4n8g-ea43dd8-fp32-v1/version_0/stats/motion/std.npy
|
soma/manifest.json
ADDED
|
@@ -0,0 +1,136 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"schema_version": 2,
|
| 3 |
+
"model_family": "MotionBricks",
|
| 4 |
+
"model_variant": "SOMA, 30 joints",
|
| 5 |
+
"checkpoint_step": 1500000,
|
| 6 |
+
"weight_format": "safetensors",
|
| 7 |
+
"weights_only": true,
|
| 8 |
+
"archive": {
|
| 9 |
+
"filename": "motionbricks_soma_checkpoints.tar.gz",
|
| 10 |
+
"bytes": 744243657,
|
| 11 |
+
"sha256": "290dbdbf16bae9b372d63359d8c3637c40920dfc7f05994446a140a2a4aeb127",
|
| 12 |
+
"root_directory": "soma-v6-nova-4n8g-ea43dd8-fp32-v1"
|
| 13 |
+
},
|
| 14 |
+
"source_archive": {
|
| 15 |
+
"filename": "motionbricks_soma_checkpoints.tar.gz",
|
| 16 |
+
"bytes": 2193233205,
|
| 17 |
+
"sha256": "98f78fa9c46fd7bcd3a28dc00947f0cfb27bb114b011096fd1b11d1c001ba593",
|
| 18 |
+
"root_directory": "soma-v6-nova-4n8g-ea43dd8-fp32-v1"
|
| 19 |
+
},
|
| 20 |
+
"original_checkpoint_bytes_preserved": false,
|
| 21 |
+
"original_model_tensor_bytes_preserved": true,
|
| 22 |
+
"skeleton_tensor_bytes_preserved": true,
|
| 23 |
+
"training_resume_state_included": false,
|
| 24 |
+
"files": [
|
| 25 |
+
{
|
| 26 |
+
"path": "soma-v6-nova-4n8g-ea43dd8-fp32-v1/mmm-v6-soma-pose-nova-4n8g-ea43dd8-fp32-v1/version_0/checkpoints/model-step=1500000.json",
|
| 27 |
+
"bytes": 16954,
|
| 28 |
+
"sha256": "4ad901e6eb008f40bb5eae22edf25a9d42b3ac553e0c55657a63a0e218d8d015"
|
| 29 |
+
},
|
| 30 |
+
{
|
| 31 |
+
"path": "soma-v6-nova-4n8g-ea43dd8-fp32-v1/mmm-v6-soma-pose-nova-4n8g-ea43dd8-fp32-v1/version_0/checkpoints/model-step=1500000.safetensors",
|
| 32 |
+
"bytes": 546109841,
|
| 33 |
+
"sha256": "8537d9d33a880ff1df6c16c28ed061d60c461a5918d70b1cf99251ff91a10a10"
|
| 34 |
+
},
|
| 35 |
+
{
|
| 36 |
+
"path": "soma-v6-nova-4n8g-ea43dd8-fp32-v1/mmm-v6-soma-pose-nova-4n8g-ea43dd8-fp32-v1/version_0/config.yaml",
|
| 37 |
+
"bytes": 7751,
|
| 38 |
+
"sha256": "c2e3b54d5c6aaf0fbcd1e57b61c9306991bdaf841a609c088944c4a460012885"
|
| 39 |
+
},
|
| 40 |
+
{
|
| 41 |
+
"path": "soma-v6-nova-4n8g-ea43dd8-fp32-v1/mmm-v6-soma-pose-nova-4n8g-ea43dd8-fp32-v1/version_0/skeleton/joints.npy",
|
| 42 |
+
"bytes": 848,
|
| 43 |
+
"sha256": "57add41fb635ad9b43e85478954c05087b07d57184676ebb5cfe3c5864b5daac"
|
| 44 |
+
},
|
| 45 |
+
{
|
| 46 |
+
"path": "soma-v6-nova-4n8g-ea43dd8-fp32-v1/mmm-v6-soma-pose-nova-4n8g-ea43dd8-fp32-v1/version_0/skeleton/skeleton.yaml",
|
| 47 |
+
"bytes": 237,
|
| 48 |
+
"sha256": "8c3ae89053844b00de3a011cad142b57ceed727a7662e51ad1fd4878a1693a91"
|
| 49 |
+
},
|
| 50 |
+
{
|
| 51 |
+
"path": "soma-v6-nova-4n8g-ea43dd8-fp32-v1/mmm-v6-soma-pose-nova-4n8g-ea43dd8-fp32-v1/version_0/stats/motion/mean.npy",
|
| 52 |
+
"bytes": 3088,
|
| 53 |
+
"sha256": "802f79631ea88a1a920cf44725f5d0e9973a0c8d7adb5359b01bd7a5af57492d"
|
| 54 |
+
},
|
| 55 |
+
{
|
| 56 |
+
"path": "soma-v6-nova-4n8g-ea43dd8-fp32-v1/mmm-v6-soma-pose-nova-4n8g-ea43dd8-fp32-v1/version_0/stats/motion/std.npy",
|
| 57 |
+
"bytes": 3088,
|
| 58 |
+
"sha256": "1a97818fea2a10e562de059013b081ecf7943d6815a36396f0d94f54ad26acb6"
|
| 59 |
+
},
|
| 60 |
+
{
|
| 61 |
+
"path": "soma-v6-nova-4n8g-ea43dd8-fp32-v1/mmm-v6-soma-root-nova-4n8g-ea43dd8-fp32-v1/version_0/checkpoints/model-step=1500000.json",
|
| 62 |
+
"bytes": 18271,
|
| 63 |
+
"sha256": "70571a550fda3cfa9fdb1bd3fed502dde27e1f3bcac58546af54a4e8e14705a3"
|
| 64 |
+
},
|
| 65 |
+
{
|
| 66 |
+
"path": "soma-v6-nova-4n8g-ea43dd8-fp32-v1/mmm-v6-soma-root-nova-4n8g-ea43dd8-fp32-v1/version_0/checkpoints/model-step=1500000.safetensors",
|
| 67 |
+
"bytes": 161695084,
|
| 68 |
+
"sha256": "a48d48c3d8ff98c825ca315797644789ae37f2db9069779a3118f42e84f4f29e"
|
| 69 |
+
},
|
| 70 |
+
{
|
| 71 |
+
"path": "soma-v6-nova-4n8g-ea43dd8-fp32-v1/mmm-v6-soma-root-nova-4n8g-ea43dd8-fp32-v1/version_0/config.yaml",
|
| 72 |
+
"bytes": 6810,
|
| 73 |
+
"sha256": "6ef85c1296e5ba860f79920222684383aa76573b9dbf3299378f05eaf7971d56"
|
| 74 |
+
},
|
| 75 |
+
{
|
| 76 |
+
"path": "soma-v6-nova-4n8g-ea43dd8-fp32-v1/mmm-v6-soma-root-nova-4n8g-ea43dd8-fp32-v1/version_0/skeleton/joints.npy",
|
| 77 |
+
"bytes": 848,
|
| 78 |
+
"sha256": "57add41fb635ad9b43e85478954c05087b07d57184676ebb5cfe3c5864b5daac"
|
| 79 |
+
},
|
| 80 |
+
{
|
| 81 |
+
"path": "soma-v6-nova-4n8g-ea43dd8-fp32-v1/mmm-v6-soma-root-nova-4n8g-ea43dd8-fp32-v1/version_0/skeleton/skeleton.yaml",
|
| 82 |
+
"bytes": 237,
|
| 83 |
+
"sha256": "8c3ae89053844b00de3a011cad142b57ceed727a7662e51ad1fd4878a1693a91"
|
| 84 |
+
},
|
| 85 |
+
{
|
| 86 |
+
"path": "soma-v6-nova-4n8g-ea43dd8-fp32-v1/mmm-v6-soma-root-nova-4n8g-ea43dd8-fp32-v1/version_0/stats/motion/mean.npy",
|
| 87 |
+
"bytes": 3088,
|
| 88 |
+
"sha256": "802f79631ea88a1a920cf44725f5d0e9973a0c8d7adb5359b01bd7a5af57492d"
|
| 89 |
+
},
|
| 90 |
+
{
|
| 91 |
+
"path": "soma-v6-nova-4n8g-ea43dd8-fp32-v1/mmm-v6-soma-root-nova-4n8g-ea43dd8-fp32-v1/version_0/stats/motion/std.npy",
|
| 92 |
+
"bytes": 3088,
|
| 93 |
+
"sha256": "1a97818fea2a10e562de059013b081ecf7943d6815a36396f0d94f54ad26acb6"
|
| 94 |
+
},
|
| 95 |
+
{
|
| 96 |
+
"path": "soma-v6-nova-4n8g-ea43dd8-fp32-v1/SHA256SUMS",
|
| 97 |
+
"bytes": 3009,
|
| 98 |
+
"sha256": "d7ead5ef043a9d1e99071b6f8aedc70753560fdc0a613cc1287f1561b50fce3c"
|
| 99 |
+
},
|
| 100 |
+
{
|
| 101 |
+
"path": "soma-v6-nova-4n8g-ea43dd8-fp32-v1/vqvae-v6-soma-nova-4n8g-ea43dd8-fp32-v1/version_0/checkpoints/model-step=1500000.json",
|
| 102 |
+
"bytes": 13245,
|
| 103 |
+
"sha256": "f3518cde99c51f5177a08c1226a45d9992d23e9bb985e658847957cc287a9d00"
|
| 104 |
+
},
|
| 105 |
+
{
|
| 106 |
+
"path": "soma-v6-nova-4n8g-ea43dd8-fp32-v1/vqvae-v6-soma-nova-4n8g-ea43dd8-fp32-v1/version_0/checkpoints/model-step=1500000.safetensors",
|
| 107 |
+
"bytes": 93442464,
|
| 108 |
+
"sha256": "ba0d1db48ba7182ef5d1a72268bfaa1a196f1f1fbf00144c046d947b90684a1a"
|
| 109 |
+
},
|
| 110 |
+
{
|
| 111 |
+
"path": "soma-v6-nova-4n8g-ea43dd8-fp32-v1/vqvae-v6-soma-nova-4n8g-ea43dd8-fp32-v1/version_0/config.yaml",
|
| 112 |
+
"bytes": 6654,
|
| 113 |
+
"sha256": "826e58115a0baef638f5a4e42f477d12776a82ac6f0dcda16bc6b8454a88342e"
|
| 114 |
+
},
|
| 115 |
+
{
|
| 116 |
+
"path": "soma-v6-nova-4n8g-ea43dd8-fp32-v1/vqvae-v6-soma-nova-4n8g-ea43dd8-fp32-v1/version_0/skeleton/joints.npy",
|
| 117 |
+
"bytes": 848,
|
| 118 |
+
"sha256": "57add41fb635ad9b43e85478954c05087b07d57184676ebb5cfe3c5864b5daac"
|
| 119 |
+
},
|
| 120 |
+
{
|
| 121 |
+
"path": "soma-v6-nova-4n8g-ea43dd8-fp32-v1/vqvae-v6-soma-nova-4n8g-ea43dd8-fp32-v1/version_0/skeleton/skeleton.yaml",
|
| 122 |
+
"bytes": 237,
|
| 123 |
+
"sha256": "8c3ae89053844b00de3a011cad142b57ceed727a7662e51ad1fd4878a1693a91"
|
| 124 |
+
},
|
| 125 |
+
{
|
| 126 |
+
"path": "soma-v6-nova-4n8g-ea43dd8-fp32-v1/vqvae-v6-soma-nova-4n8g-ea43dd8-fp32-v1/version_0/stats/motion/mean.npy",
|
| 127 |
+
"bytes": 3088,
|
| 128 |
+
"sha256": "802f79631ea88a1a920cf44725f5d0e9973a0c8d7adb5359b01bd7a5af57492d"
|
| 129 |
+
},
|
| 130 |
+
{
|
| 131 |
+
"path": "soma-v6-nova-4n8g-ea43dd8-fp32-v1/vqvae-v6-soma-nova-4n8g-ea43dd8-fp32-v1/version_0/stats/motion/std.npy",
|
| 132 |
+
"bytes": 3088,
|
| 133 |
+
"sha256": "1a97818fea2a10e562de059013b081ecf7943d6815a36396f0d94f54ad26acb6"
|
| 134 |
+
}
|
| 135 |
+
]
|
| 136 |
+
}
|
soma/soma-v6-nova-4n8g-ea43dd8-fp32-v1/SHA256SUMS
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
4ad901e6eb008f40bb5eae22edf25a9d42b3ac553e0c55657a63a0e218d8d015 mmm-v6-soma-pose-nova-4n8g-ea43dd8-fp32-v1/version_0/checkpoints/model-step=1500000.json
|
| 2 |
+
8537d9d33a880ff1df6c16c28ed061d60c461a5918d70b1cf99251ff91a10a10 mmm-v6-soma-pose-nova-4n8g-ea43dd8-fp32-v1/version_0/checkpoints/model-step=1500000.safetensors
|
| 3 |
+
c2e3b54d5c6aaf0fbcd1e57b61c9306991bdaf841a609c088944c4a460012885 mmm-v6-soma-pose-nova-4n8g-ea43dd8-fp32-v1/version_0/config.yaml
|
| 4 |
+
57add41fb635ad9b43e85478954c05087b07d57184676ebb5cfe3c5864b5daac mmm-v6-soma-pose-nova-4n8g-ea43dd8-fp32-v1/version_0/skeleton/joints.npy
|
| 5 |
+
8c3ae89053844b00de3a011cad142b57ceed727a7662e51ad1fd4878a1693a91 mmm-v6-soma-pose-nova-4n8g-ea43dd8-fp32-v1/version_0/skeleton/skeleton.yaml
|
| 6 |
+
802f79631ea88a1a920cf44725f5d0e9973a0c8d7adb5359b01bd7a5af57492d mmm-v6-soma-pose-nova-4n8g-ea43dd8-fp32-v1/version_0/stats/motion/mean.npy
|
| 7 |
+
1a97818fea2a10e562de059013b081ecf7943d6815a36396f0d94f54ad26acb6 mmm-v6-soma-pose-nova-4n8g-ea43dd8-fp32-v1/version_0/stats/motion/std.npy
|
| 8 |
+
70571a550fda3cfa9fdb1bd3fed502dde27e1f3bcac58546af54a4e8e14705a3 mmm-v6-soma-root-nova-4n8g-ea43dd8-fp32-v1/version_0/checkpoints/model-step=1500000.json
|
| 9 |
+
a48d48c3d8ff98c825ca315797644789ae37f2db9069779a3118f42e84f4f29e mmm-v6-soma-root-nova-4n8g-ea43dd8-fp32-v1/version_0/checkpoints/model-step=1500000.safetensors
|
| 10 |
+
6ef85c1296e5ba860f79920222684383aa76573b9dbf3299378f05eaf7971d56 mmm-v6-soma-root-nova-4n8g-ea43dd8-fp32-v1/version_0/config.yaml
|
| 11 |
+
57add41fb635ad9b43e85478954c05087b07d57184676ebb5cfe3c5864b5daac mmm-v6-soma-root-nova-4n8g-ea43dd8-fp32-v1/version_0/skeleton/joints.npy
|
| 12 |
+
8c3ae89053844b00de3a011cad142b57ceed727a7662e51ad1fd4878a1693a91 mmm-v6-soma-root-nova-4n8g-ea43dd8-fp32-v1/version_0/skeleton/skeleton.yaml
|
| 13 |
+
802f79631ea88a1a920cf44725f5d0e9973a0c8d7adb5359b01bd7a5af57492d mmm-v6-soma-root-nova-4n8g-ea43dd8-fp32-v1/version_0/stats/motion/mean.npy
|
| 14 |
+
1a97818fea2a10e562de059013b081ecf7943d6815a36396f0d94f54ad26acb6 mmm-v6-soma-root-nova-4n8g-ea43dd8-fp32-v1/version_0/stats/motion/std.npy
|
| 15 |
+
f3518cde99c51f5177a08c1226a45d9992d23e9bb985e658847957cc287a9d00 vqvae-v6-soma-nova-4n8g-ea43dd8-fp32-v1/version_0/checkpoints/model-step=1500000.json
|
| 16 |
+
ba0d1db48ba7182ef5d1a72268bfaa1a196f1f1fbf00144c046d947b90684a1a vqvae-v6-soma-nova-4n8g-ea43dd8-fp32-v1/version_0/checkpoints/model-step=1500000.safetensors
|
| 17 |
+
826e58115a0baef638f5a4e42f477d12776a82ac6f0dcda16bc6b8454a88342e vqvae-v6-soma-nova-4n8g-ea43dd8-fp32-v1/version_0/config.yaml
|
| 18 |
+
57add41fb635ad9b43e85478954c05087b07d57184676ebb5cfe3c5864b5daac vqvae-v6-soma-nova-4n8g-ea43dd8-fp32-v1/version_0/skeleton/joints.npy
|
| 19 |
+
8c3ae89053844b00de3a011cad142b57ceed727a7662e51ad1fd4878a1693a91 vqvae-v6-soma-nova-4n8g-ea43dd8-fp32-v1/version_0/skeleton/skeleton.yaml
|
| 20 |
+
802f79631ea88a1a920cf44725f5d0e9973a0c8d7adb5359b01bd7a5af57492d vqvae-v6-soma-nova-4n8g-ea43dd8-fp32-v1/version_0/stats/motion/mean.npy
|
| 21 |
+
1a97818fea2a10e562de059013b081ecf7943d6815a36396f0d94f54ad26acb6 vqvae-v6-soma-nova-4n8g-ea43dd8-fp32-v1/version_0/stats/motion/std.npy
|
soma/soma-v6-nova-4n8g-ea43dd8-fp32-v1/mmm-v6-soma-pose-nova-4n8g-ea43dd8-fp32-v1/version_0/checkpoints/model-step=1500000.json
ADDED
|
@@ -0,0 +1,669 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"schema_version": 1,
|
| 3 |
+
"source_checkpoint_sha256": "e12bc7ae9148a817edd45023815da780b96212871023b2cf98ca36d90ef2da99",
|
| 4 |
+
"epoch": 19480,
|
| 5 |
+
"global_step": 1500000,
|
| 6 |
+
"pytorch_lightning_version": "2.4.0",
|
| 7 |
+
"state_dict_metadata": {
|
| 8 |
+
"": {
|
| 9 |
+
"version": 1
|
| 10 |
+
},
|
| 11 |
+
"mmm_net": {
|
| 12 |
+
"version": 1
|
| 13 |
+
},
|
| 14 |
+
"mmm_net.motion_rep": {
|
| 15 |
+
"version": 1
|
| 16 |
+
},
|
| 17 |
+
"mmm_net.motion_rep.skeleton": {
|
| 18 |
+
"version": 1
|
| 19 |
+
},
|
| 20 |
+
"mmm_net.motion_rep.dual_rep": {
|
| 21 |
+
"version": 1
|
| 22 |
+
},
|
| 23 |
+
"mmm_net.motion_rep.dual_rep.stats": {
|
| 24 |
+
"version": 1
|
| 25 |
+
},
|
| 26 |
+
"mmm_net.motion_rep.dual_rep.skeleton": {
|
| 27 |
+
"version": 1
|
| 28 |
+
},
|
| 29 |
+
"mmm_net.motion_rep.dual_rep.global_motion_rep": {
|
| 30 |
+
"version": 1
|
| 31 |
+
},
|
| 32 |
+
"mmm_net.motion_rep.dual_rep.global_motion_rep.skeleton": {
|
| 33 |
+
"version": 1
|
| 34 |
+
},
|
| 35 |
+
"mmm_net.motion_rep.dual_rep.global_motion_rep.stats": {
|
| 36 |
+
"version": 1
|
| 37 |
+
},
|
| 38 |
+
"mmm_net.motion_rep.dual_rep.local_motion_rep": {
|
| 39 |
+
"version": 1
|
| 40 |
+
},
|
| 41 |
+
"mmm_net.motion_rep.dual_rep.local_motion_rep.skeleton": {
|
| 42 |
+
"version": 1
|
| 43 |
+
},
|
| 44 |
+
"mmm_net.motion_rep.dual_rep.local_motion_rep.stats": {
|
| 45 |
+
"version": 1
|
| 46 |
+
},
|
| 47 |
+
"mmm_net.motion_rep.stats": {
|
| 48 |
+
"version": 1
|
| 49 |
+
},
|
| 50 |
+
"mmm_net.global_motion_rep": {
|
| 51 |
+
"version": 1
|
| 52 |
+
},
|
| 53 |
+
"mmm_net.global_motion_rep.skeleton": {
|
| 54 |
+
"version": 1
|
| 55 |
+
},
|
| 56 |
+
"mmm_net.global_motion_rep.stats": {
|
| 57 |
+
"version": 1
|
| 58 |
+
},
|
| 59 |
+
"mmm_net.local_motion_rep": {
|
| 60 |
+
"version": 1
|
| 61 |
+
},
|
| 62 |
+
"mmm_net.local_motion_rep.skeleton": {
|
| 63 |
+
"version": 1
|
| 64 |
+
},
|
| 65 |
+
"mmm_net.local_motion_rep.stats": {
|
| 66 |
+
"version": 1
|
| 67 |
+
},
|
| 68 |
+
"mmm_net._transformer_model": {
|
| 69 |
+
"version": 1
|
| 70 |
+
},
|
| 71 |
+
"mmm_net._transformer_model.layers": {
|
| 72 |
+
"version": 1
|
| 73 |
+
},
|
| 74 |
+
"mmm_net._transformer_model.layers.0": {
|
| 75 |
+
"version": 1
|
| 76 |
+
},
|
| 77 |
+
"mmm_net._transformer_model.layers.0.self_attn": {
|
| 78 |
+
"version": 1
|
| 79 |
+
},
|
| 80 |
+
"mmm_net._transformer_model.layers.0.self_attn.out_proj": {
|
| 81 |
+
"version": 1
|
| 82 |
+
},
|
| 83 |
+
"mmm_net._transformer_model.layers.0.linear1": {
|
| 84 |
+
"version": 1
|
| 85 |
+
},
|
| 86 |
+
"mmm_net._transformer_model.layers.0.dropout": {
|
| 87 |
+
"version": 1
|
| 88 |
+
},
|
| 89 |
+
"mmm_net._transformer_model.layers.0.linear2": {
|
| 90 |
+
"version": 1
|
| 91 |
+
},
|
| 92 |
+
"mmm_net._transformer_model.layers.0.norm1": {
|
| 93 |
+
"version": 1
|
| 94 |
+
},
|
| 95 |
+
"mmm_net._transformer_model.layers.0.norm2": {
|
| 96 |
+
"version": 1
|
| 97 |
+
},
|
| 98 |
+
"mmm_net._transformer_model.layers.0.dropout1": {
|
| 99 |
+
"version": 1
|
| 100 |
+
},
|
| 101 |
+
"mmm_net._transformer_model.layers.0.dropout2": {
|
| 102 |
+
"version": 1
|
| 103 |
+
},
|
| 104 |
+
"mmm_net._transformer_model.layers.1": {
|
| 105 |
+
"version": 1
|
| 106 |
+
},
|
| 107 |
+
"mmm_net._transformer_model.layers.1.self_attn": {
|
| 108 |
+
"version": 1
|
| 109 |
+
},
|
| 110 |
+
"mmm_net._transformer_model.layers.1.self_attn.out_proj": {
|
| 111 |
+
"version": 1
|
| 112 |
+
},
|
| 113 |
+
"mmm_net._transformer_model.layers.1.linear1": {
|
| 114 |
+
"version": 1
|
| 115 |
+
},
|
| 116 |
+
"mmm_net._transformer_model.layers.1.dropout": {
|
| 117 |
+
"version": 1
|
| 118 |
+
},
|
| 119 |
+
"mmm_net._transformer_model.layers.1.linear2": {
|
| 120 |
+
"version": 1
|
| 121 |
+
},
|
| 122 |
+
"mmm_net._transformer_model.layers.1.norm1": {
|
| 123 |
+
"version": 1
|
| 124 |
+
},
|
| 125 |
+
"mmm_net._transformer_model.layers.1.norm2": {
|
| 126 |
+
"version": 1
|
| 127 |
+
},
|
| 128 |
+
"mmm_net._transformer_model.layers.1.dropout1": {
|
| 129 |
+
"version": 1
|
| 130 |
+
},
|
| 131 |
+
"mmm_net._transformer_model.layers.1.dropout2": {
|
| 132 |
+
"version": 1
|
| 133 |
+
},
|
| 134 |
+
"mmm_net._transformer_model.layers.2": {
|
| 135 |
+
"version": 1
|
| 136 |
+
},
|
| 137 |
+
"mmm_net._transformer_model.layers.2.self_attn": {
|
| 138 |
+
"version": 1
|
| 139 |
+
},
|
| 140 |
+
"mmm_net._transformer_model.layers.2.self_attn.out_proj": {
|
| 141 |
+
"version": 1
|
| 142 |
+
},
|
| 143 |
+
"mmm_net._transformer_model.layers.2.linear1": {
|
| 144 |
+
"version": 1
|
| 145 |
+
},
|
| 146 |
+
"mmm_net._transformer_model.layers.2.dropout": {
|
| 147 |
+
"version": 1
|
| 148 |
+
},
|
| 149 |
+
"mmm_net._transformer_model.layers.2.linear2": {
|
| 150 |
+
"version": 1
|
| 151 |
+
},
|
| 152 |
+
"mmm_net._transformer_model.layers.2.norm1": {
|
| 153 |
+
"version": 1
|
| 154 |
+
},
|
| 155 |
+
"mmm_net._transformer_model.layers.2.norm2": {
|
| 156 |
+
"version": 1
|
| 157 |
+
},
|
| 158 |
+
"mmm_net._transformer_model.layers.2.dropout1": {
|
| 159 |
+
"version": 1
|
| 160 |
+
},
|
| 161 |
+
"mmm_net._transformer_model.layers.2.dropout2": {
|
| 162 |
+
"version": 1
|
| 163 |
+
},
|
| 164 |
+
"mmm_net._transformer_model.layers.3": {
|
| 165 |
+
"version": 1
|
| 166 |
+
},
|
| 167 |
+
"mmm_net._transformer_model.layers.3.self_attn": {
|
| 168 |
+
"version": 1
|
| 169 |
+
},
|
| 170 |
+
"mmm_net._transformer_model.layers.3.self_attn.out_proj": {
|
| 171 |
+
"version": 1
|
| 172 |
+
},
|
| 173 |
+
"mmm_net._transformer_model.layers.3.linear1": {
|
| 174 |
+
"version": 1
|
| 175 |
+
},
|
| 176 |
+
"mmm_net._transformer_model.layers.3.dropout": {
|
| 177 |
+
"version": 1
|
| 178 |
+
},
|
| 179 |
+
"mmm_net._transformer_model.layers.3.linear2": {
|
| 180 |
+
"version": 1
|
| 181 |
+
},
|
| 182 |
+
"mmm_net._transformer_model.layers.3.norm1": {
|
| 183 |
+
"version": 1
|
| 184 |
+
},
|
| 185 |
+
"mmm_net._transformer_model.layers.3.norm2": {
|
| 186 |
+
"version": 1
|
| 187 |
+
},
|
| 188 |
+
"mmm_net._transformer_model.layers.3.dropout1": {
|
| 189 |
+
"version": 1
|
| 190 |
+
},
|
| 191 |
+
"mmm_net._transformer_model.layers.3.dropout2": {
|
| 192 |
+
"version": 1
|
| 193 |
+
},
|
| 194 |
+
"mmm_net._transformer_model.layers.4": {
|
| 195 |
+
"version": 1
|
| 196 |
+
},
|
| 197 |
+
"mmm_net._transformer_model.layers.4.self_attn": {
|
| 198 |
+
"version": 1
|
| 199 |
+
},
|
| 200 |
+
"mmm_net._transformer_model.layers.4.self_attn.out_proj": {
|
| 201 |
+
"version": 1
|
| 202 |
+
},
|
| 203 |
+
"mmm_net._transformer_model.layers.4.linear1": {
|
| 204 |
+
"version": 1
|
| 205 |
+
},
|
| 206 |
+
"mmm_net._transformer_model.layers.4.dropout": {
|
| 207 |
+
"version": 1
|
| 208 |
+
},
|
| 209 |
+
"mmm_net._transformer_model.layers.4.linear2": {
|
| 210 |
+
"version": 1
|
| 211 |
+
},
|
| 212 |
+
"mmm_net._transformer_model.layers.4.norm1": {
|
| 213 |
+
"version": 1
|
| 214 |
+
},
|
| 215 |
+
"mmm_net._transformer_model.layers.4.norm2": {
|
| 216 |
+
"version": 1
|
| 217 |
+
},
|
| 218 |
+
"mmm_net._transformer_model.layers.4.dropout1": {
|
| 219 |
+
"version": 1
|
| 220 |
+
},
|
| 221 |
+
"mmm_net._transformer_model.layers.4.dropout2": {
|
| 222 |
+
"version": 1
|
| 223 |
+
},
|
| 224 |
+
"mmm_net._transformer_model.layers.5": {
|
| 225 |
+
"version": 1
|
| 226 |
+
},
|
| 227 |
+
"mmm_net._transformer_model.layers.5.self_attn": {
|
| 228 |
+
"version": 1
|
| 229 |
+
},
|
| 230 |
+
"mmm_net._transformer_model.layers.5.self_attn.out_proj": {
|
| 231 |
+
"version": 1
|
| 232 |
+
},
|
| 233 |
+
"mmm_net._transformer_model.layers.5.linear1": {
|
| 234 |
+
"version": 1
|
| 235 |
+
},
|
| 236 |
+
"mmm_net._transformer_model.layers.5.dropout": {
|
| 237 |
+
"version": 1
|
| 238 |
+
},
|
| 239 |
+
"mmm_net._transformer_model.layers.5.linear2": {
|
| 240 |
+
"version": 1
|
| 241 |
+
},
|
| 242 |
+
"mmm_net._transformer_model.layers.5.norm1": {
|
| 243 |
+
"version": 1
|
| 244 |
+
},
|
| 245 |
+
"mmm_net._transformer_model.layers.5.norm2": {
|
| 246 |
+
"version": 1
|
| 247 |
+
},
|
| 248 |
+
"mmm_net._transformer_model.layers.5.dropout1": {
|
| 249 |
+
"version": 1
|
| 250 |
+
},
|
| 251 |
+
"mmm_net._transformer_model.layers.5.dropout2": {
|
| 252 |
+
"version": 1
|
| 253 |
+
},
|
| 254 |
+
"mmm_net._transformer_model.layers.6": {
|
| 255 |
+
"version": 1
|
| 256 |
+
},
|
| 257 |
+
"mmm_net._transformer_model.layers.6.self_attn": {
|
| 258 |
+
"version": 1
|
| 259 |
+
},
|
| 260 |
+
"mmm_net._transformer_model.layers.6.self_attn.out_proj": {
|
| 261 |
+
"version": 1
|
| 262 |
+
},
|
| 263 |
+
"mmm_net._transformer_model.layers.6.linear1": {
|
| 264 |
+
"version": 1
|
| 265 |
+
},
|
| 266 |
+
"mmm_net._transformer_model.layers.6.dropout": {
|
| 267 |
+
"version": 1
|
| 268 |
+
},
|
| 269 |
+
"mmm_net._transformer_model.layers.6.linear2": {
|
| 270 |
+
"version": 1
|
| 271 |
+
},
|
| 272 |
+
"mmm_net._transformer_model.layers.6.norm1": {
|
| 273 |
+
"version": 1
|
| 274 |
+
},
|
| 275 |
+
"mmm_net._transformer_model.layers.6.norm2": {
|
| 276 |
+
"version": 1
|
| 277 |
+
},
|
| 278 |
+
"mmm_net._transformer_model.layers.6.dropout1": {
|
| 279 |
+
"version": 1
|
| 280 |
+
},
|
| 281 |
+
"mmm_net._transformer_model.layers.6.dropout2": {
|
| 282 |
+
"version": 1
|
| 283 |
+
},
|
| 284 |
+
"mmm_net._transformer_model.layers.7": {
|
| 285 |
+
"version": 1
|
| 286 |
+
},
|
| 287 |
+
"mmm_net._transformer_model.layers.7.self_attn": {
|
| 288 |
+
"version": 1
|
| 289 |
+
},
|
| 290 |
+
"mmm_net._transformer_model.layers.7.self_attn.out_proj": {
|
| 291 |
+
"version": 1
|
| 292 |
+
},
|
| 293 |
+
"mmm_net._transformer_model.layers.7.linear1": {
|
| 294 |
+
"version": 1
|
| 295 |
+
},
|
| 296 |
+
"mmm_net._transformer_model.layers.7.dropout": {
|
| 297 |
+
"version": 1
|
| 298 |
+
},
|
| 299 |
+
"mmm_net._transformer_model.layers.7.linear2": {
|
| 300 |
+
"version": 1
|
| 301 |
+
},
|
| 302 |
+
"mmm_net._transformer_model.layers.7.norm1": {
|
| 303 |
+
"version": 1
|
| 304 |
+
},
|
| 305 |
+
"mmm_net._transformer_model.layers.7.norm2": {
|
| 306 |
+
"version": 1
|
| 307 |
+
},
|
| 308 |
+
"mmm_net._transformer_model.layers.7.dropout1": {
|
| 309 |
+
"version": 1
|
| 310 |
+
},
|
| 311 |
+
"mmm_net._transformer_model.layers.7.dropout2": {
|
| 312 |
+
"version": 1
|
| 313 |
+
},
|
| 314 |
+
"mmm_net._transformer_model.layers.8": {
|
| 315 |
+
"version": 1
|
| 316 |
+
},
|
| 317 |
+
"mmm_net._transformer_model.layers.8.self_attn": {
|
| 318 |
+
"version": 1
|
| 319 |
+
},
|
| 320 |
+
"mmm_net._transformer_model.layers.8.self_attn.out_proj": {
|
| 321 |
+
"version": 1
|
| 322 |
+
},
|
| 323 |
+
"mmm_net._transformer_model.layers.8.linear1": {
|
| 324 |
+
"version": 1
|
| 325 |
+
},
|
| 326 |
+
"mmm_net._transformer_model.layers.8.dropout": {
|
| 327 |
+
"version": 1
|
| 328 |
+
},
|
| 329 |
+
"mmm_net._transformer_model.layers.8.linear2": {
|
| 330 |
+
"version": 1
|
| 331 |
+
},
|
| 332 |
+
"mmm_net._transformer_model.layers.8.norm1": {
|
| 333 |
+
"version": 1
|
| 334 |
+
},
|
| 335 |
+
"mmm_net._transformer_model.layers.8.norm2": {
|
| 336 |
+
"version": 1
|
| 337 |
+
},
|
| 338 |
+
"mmm_net._transformer_model.layers.8.dropout1": {
|
| 339 |
+
"version": 1
|
| 340 |
+
},
|
| 341 |
+
"mmm_net._transformer_model.layers.8.dropout2": {
|
| 342 |
+
"version": 1
|
| 343 |
+
},
|
| 344 |
+
"mmm_net._transformer_model.layers.9": {
|
| 345 |
+
"version": 1
|
| 346 |
+
},
|
| 347 |
+
"mmm_net._transformer_model.layers.9.self_attn": {
|
| 348 |
+
"version": 1
|
| 349 |
+
},
|
| 350 |
+
"mmm_net._transformer_model.layers.9.self_attn.out_proj": {
|
| 351 |
+
"version": 1
|
| 352 |
+
},
|
| 353 |
+
"mmm_net._transformer_model.layers.9.linear1": {
|
| 354 |
+
"version": 1
|
| 355 |
+
},
|
| 356 |
+
"mmm_net._transformer_model.layers.9.dropout": {
|
| 357 |
+
"version": 1
|
| 358 |
+
},
|
| 359 |
+
"mmm_net._transformer_model.layers.9.linear2": {
|
| 360 |
+
"version": 1
|
| 361 |
+
},
|
| 362 |
+
"mmm_net._transformer_model.layers.9.norm1": {
|
| 363 |
+
"version": 1
|
| 364 |
+
},
|
| 365 |
+
"mmm_net._transformer_model.layers.9.norm2": {
|
| 366 |
+
"version": 1
|
| 367 |
+
},
|
| 368 |
+
"mmm_net._transformer_model.layers.9.dropout1": {
|
| 369 |
+
"version": 1
|
| 370 |
+
},
|
| 371 |
+
"mmm_net._transformer_model.layers.9.dropout2": {
|
| 372 |
+
"version": 1
|
| 373 |
+
},
|
| 374 |
+
"mmm_net._transformer_model.layers.10": {
|
| 375 |
+
"version": 1
|
| 376 |
+
},
|
| 377 |
+
"mmm_net._transformer_model.layers.10.self_attn": {
|
| 378 |
+
"version": 1
|
| 379 |
+
},
|
| 380 |
+
"mmm_net._transformer_model.layers.10.self_attn.out_proj": {
|
| 381 |
+
"version": 1
|
| 382 |
+
},
|
| 383 |
+
"mmm_net._transformer_model.layers.10.linear1": {
|
| 384 |
+
"version": 1
|
| 385 |
+
},
|
| 386 |
+
"mmm_net._transformer_model.layers.10.dropout": {
|
| 387 |
+
"version": 1
|
| 388 |
+
},
|
| 389 |
+
"mmm_net._transformer_model.layers.10.linear2": {
|
| 390 |
+
"version": 1
|
| 391 |
+
},
|
| 392 |
+
"mmm_net._transformer_model.layers.10.norm1": {
|
| 393 |
+
"version": 1
|
| 394 |
+
},
|
| 395 |
+
"mmm_net._transformer_model.layers.10.norm2": {
|
| 396 |
+
"version": 1
|
| 397 |
+
},
|
| 398 |
+
"mmm_net._transformer_model.layers.10.dropout1": {
|
| 399 |
+
"version": 1
|
| 400 |
+
},
|
| 401 |
+
"mmm_net._transformer_model.layers.10.dropout2": {
|
| 402 |
+
"version": 1
|
| 403 |
+
},
|
| 404 |
+
"mmm_net._transformer_model.layers.11": {
|
| 405 |
+
"version": 1
|
| 406 |
+
},
|
| 407 |
+
"mmm_net._transformer_model.layers.11.self_attn": {
|
| 408 |
+
"version": 1
|
| 409 |
+
},
|
| 410 |
+
"mmm_net._transformer_model.layers.11.self_attn.out_proj": {
|
| 411 |
+
"version": 1
|
| 412 |
+
},
|
| 413 |
+
"mmm_net._transformer_model.layers.11.linear1": {
|
| 414 |
+
"version": 1
|
| 415 |
+
},
|
| 416 |
+
"mmm_net._transformer_model.layers.11.dropout": {
|
| 417 |
+
"version": 1
|
| 418 |
+
},
|
| 419 |
+
"mmm_net._transformer_model.layers.11.linear2": {
|
| 420 |
+
"version": 1
|
| 421 |
+
},
|
| 422 |
+
"mmm_net._transformer_model.layers.11.norm1": {
|
| 423 |
+
"version": 1
|
| 424 |
+
},
|
| 425 |
+
"mmm_net._transformer_model.layers.11.norm2": {
|
| 426 |
+
"version": 1
|
| 427 |
+
},
|
| 428 |
+
"mmm_net._transformer_model.layers.11.dropout1": {
|
| 429 |
+
"version": 1
|
| 430 |
+
},
|
| 431 |
+
"mmm_net._transformer_model.layers.11.dropout2": {
|
| 432 |
+
"version": 1
|
| 433 |
+
},
|
| 434 |
+
"mmm_net._transformer_model.layers.12": {
|
| 435 |
+
"version": 1
|
| 436 |
+
},
|
| 437 |
+
"mmm_net._transformer_model.layers.12.self_attn": {
|
| 438 |
+
"version": 1
|
| 439 |
+
},
|
| 440 |
+
"mmm_net._transformer_model.layers.12.self_attn.out_proj": {
|
| 441 |
+
"version": 1
|
| 442 |
+
},
|
| 443 |
+
"mmm_net._transformer_model.layers.12.linear1": {
|
| 444 |
+
"version": 1
|
| 445 |
+
},
|
| 446 |
+
"mmm_net._transformer_model.layers.12.dropout": {
|
| 447 |
+
"version": 1
|
| 448 |
+
},
|
| 449 |
+
"mmm_net._transformer_model.layers.12.linear2": {
|
| 450 |
+
"version": 1
|
| 451 |
+
},
|
| 452 |
+
"mmm_net._transformer_model.layers.12.norm1": {
|
| 453 |
+
"version": 1
|
| 454 |
+
},
|
| 455 |
+
"mmm_net._transformer_model.layers.12.norm2": {
|
| 456 |
+
"version": 1
|
| 457 |
+
},
|
| 458 |
+
"mmm_net._transformer_model.layers.12.dropout1": {
|
| 459 |
+
"version": 1
|
| 460 |
+
},
|
| 461 |
+
"mmm_net._transformer_model.layers.12.dropout2": {
|
| 462 |
+
"version": 1
|
| 463 |
+
},
|
| 464 |
+
"mmm_net._transformer_model.layers.13": {
|
| 465 |
+
"version": 1
|
| 466 |
+
},
|
| 467 |
+
"mmm_net._transformer_model.layers.13.self_attn": {
|
| 468 |
+
"version": 1
|
| 469 |
+
},
|
| 470 |
+
"mmm_net._transformer_model.layers.13.self_attn.out_proj": {
|
| 471 |
+
"version": 1
|
| 472 |
+
},
|
| 473 |
+
"mmm_net._transformer_model.layers.13.linear1": {
|
| 474 |
+
"version": 1
|
| 475 |
+
},
|
| 476 |
+
"mmm_net._transformer_model.layers.13.dropout": {
|
| 477 |
+
"version": 1
|
| 478 |
+
},
|
| 479 |
+
"mmm_net._transformer_model.layers.13.linear2": {
|
| 480 |
+
"version": 1
|
| 481 |
+
},
|
| 482 |
+
"mmm_net._transformer_model.layers.13.norm1": {
|
| 483 |
+
"version": 1
|
| 484 |
+
},
|
| 485 |
+
"mmm_net._transformer_model.layers.13.norm2": {
|
| 486 |
+
"version": 1
|
| 487 |
+
},
|
| 488 |
+
"mmm_net._transformer_model.layers.13.dropout1": {
|
| 489 |
+
"version": 1
|
| 490 |
+
},
|
| 491 |
+
"mmm_net._transformer_model.layers.13.dropout2": {
|
| 492 |
+
"version": 1
|
| 493 |
+
},
|
| 494 |
+
"mmm_net._transformer_model.layers.14": {
|
| 495 |
+
"version": 1
|
| 496 |
+
},
|
| 497 |
+
"mmm_net._transformer_model.layers.14.self_attn": {
|
| 498 |
+
"version": 1
|
| 499 |
+
},
|
| 500 |
+
"mmm_net._transformer_model.layers.14.self_attn.out_proj": {
|
| 501 |
+
"version": 1
|
| 502 |
+
},
|
| 503 |
+
"mmm_net._transformer_model.layers.14.linear1": {
|
| 504 |
+
"version": 1
|
| 505 |
+
},
|
| 506 |
+
"mmm_net._transformer_model.layers.14.dropout": {
|
| 507 |
+
"version": 1
|
| 508 |
+
},
|
| 509 |
+
"mmm_net._transformer_model.layers.14.linear2": {
|
| 510 |
+
"version": 1
|
| 511 |
+
},
|
| 512 |
+
"mmm_net._transformer_model.layers.14.norm1": {
|
| 513 |
+
"version": 1
|
| 514 |
+
},
|
| 515 |
+
"mmm_net._transformer_model.layers.14.norm2": {
|
| 516 |
+
"version": 1
|
| 517 |
+
},
|
| 518 |
+
"mmm_net._transformer_model.layers.14.dropout1": {
|
| 519 |
+
"version": 1
|
| 520 |
+
},
|
| 521 |
+
"mmm_net._transformer_model.layers.14.dropout2": {
|
| 522 |
+
"version": 1
|
| 523 |
+
},
|
| 524 |
+
"mmm_net._transformer_model.layers.15": {
|
| 525 |
+
"version": 1
|
| 526 |
+
},
|
| 527 |
+
"mmm_net._transformer_model.layers.15.self_attn": {
|
| 528 |
+
"version": 1
|
| 529 |
+
},
|
| 530 |
+
"mmm_net._transformer_model.layers.15.self_attn.out_proj": {
|
| 531 |
+
"version": 1
|
| 532 |
+
},
|
| 533 |
+
"mmm_net._transformer_model.layers.15.linear1": {
|
| 534 |
+
"version": 1
|
| 535 |
+
},
|
| 536 |
+
"mmm_net._transformer_model.layers.15.dropout": {
|
| 537 |
+
"version": 1
|
| 538 |
+
},
|
| 539 |
+
"mmm_net._transformer_model.layers.15.linear2": {
|
| 540 |
+
"version": 1
|
| 541 |
+
},
|
| 542 |
+
"mmm_net._transformer_model.layers.15.norm1": {
|
| 543 |
+
"version": 1
|
| 544 |
+
},
|
| 545 |
+
"mmm_net._transformer_model.layers.15.norm2": {
|
| 546 |
+
"version": 1
|
| 547 |
+
},
|
| 548 |
+
"mmm_net._transformer_model.layers.15.dropout1": {
|
| 549 |
+
"version": 1
|
| 550 |
+
},
|
| 551 |
+
"mmm_net._transformer_model.layers.15.dropout2": {
|
| 552 |
+
"version": 1
|
| 553 |
+
},
|
| 554 |
+
"mmm_net._pose_token_emb": {
|
| 555 |
+
"version": 1
|
| 556 |
+
},
|
| 557 |
+
"mmm_net._proj_pose_token_emb": {
|
| 558 |
+
"version": 1
|
| 559 |
+
},
|
| 560 |
+
"mmm_net._proj_pose_token_emb.forward_projection": {
|
| 561 |
+
"version": 1
|
| 562 |
+
},
|
| 563 |
+
"mmm_net._proj_pose_token_emb.fc_layers": {
|
| 564 |
+
"version": 1
|
| 565 |
+
},
|
| 566 |
+
"mmm_net._proj_pose_token_emb.fc_layers.0": {
|
| 567 |
+
"version": 1
|
| 568 |
+
},
|
| 569 |
+
"mmm_net._proj_pose_token_emb.fc_layers.1": {
|
| 570 |
+
"version": 1
|
| 571 |
+
},
|
| 572 |
+
"mmm_net._proj_pose_token_emb.relu_layers": {
|
| 573 |
+
"version": 1
|
| 574 |
+
},
|
| 575 |
+
"mmm_net._proj_pose_token_emb.relu_layers.0": {
|
| 576 |
+
"version": 1
|
| 577 |
+
},
|
| 578 |
+
"mmm_net._proj_pose_token_emb.relu_layers.1": {
|
| 579 |
+
"version": 1
|
| 580 |
+
},
|
| 581 |
+
"mmm_net._proj_local_root_values": {
|
| 582 |
+
"version": 1
|
| 583 |
+
},
|
| 584 |
+
"mmm_net._proj_local_pose": {
|
| 585 |
+
"version": 1
|
| 586 |
+
},
|
| 587 |
+
"mmm_net._proj_num_valid_positions": {
|
| 588 |
+
"version": 1
|
| 589 |
+
},
|
| 590 |
+
"mmm_net._proj_input": {
|
| 591 |
+
"version": 1
|
| 592 |
+
},
|
| 593 |
+
"mmm_net._proj_input.0": {
|
| 594 |
+
"version": 1
|
| 595 |
+
},
|
| 596 |
+
"mmm_net._proj_input.1": {
|
| 597 |
+
"version": 1
|
| 598 |
+
},
|
| 599 |
+
"mmm_net._position_emb": {
|
| 600 |
+
"version": 1
|
| 601 |
+
},
|
| 602 |
+
"mmm_net._position_emb.dropout": {
|
| 603 |
+
"version": 1
|
| 604 |
+
},
|
| 605 |
+
"mmm_net._proj_pose_output_logit": {
|
| 606 |
+
"version": 1
|
| 607 |
+
},
|
| 608 |
+
"motion_rep": {
|
| 609 |
+
"version": 1
|
| 610 |
+
},
|
| 611 |
+
"motion_rep.skeleton": {
|
| 612 |
+
"version": 1
|
| 613 |
+
},
|
| 614 |
+
"motion_rep.dual_rep": {
|
| 615 |
+
"version": 1
|
| 616 |
+
},
|
| 617 |
+
"motion_rep.dual_rep.stats": {
|
| 618 |
+
"version": 1
|
| 619 |
+
},
|
| 620 |
+
"motion_rep.dual_rep.skeleton": {
|
| 621 |
+
"version": 1
|
| 622 |
+
},
|
| 623 |
+
"motion_rep.dual_rep.global_motion_rep": {
|
| 624 |
+
"version": 1
|
| 625 |
+
},
|
| 626 |
+
"motion_rep.dual_rep.global_motion_rep.skeleton": {
|
| 627 |
+
"version": 1
|
| 628 |
+
},
|
| 629 |
+
"motion_rep.dual_rep.global_motion_rep.stats": {
|
| 630 |
+
"version": 1
|
| 631 |
+
},
|
| 632 |
+
"motion_rep.dual_rep.local_motion_rep": {
|
| 633 |
+
"version": 1
|
| 634 |
+
},
|
| 635 |
+
"motion_rep.dual_rep.local_motion_rep.skeleton": {
|
| 636 |
+
"version": 1
|
| 637 |
+
},
|
| 638 |
+
"motion_rep.dual_rep.local_motion_rep.stats": {
|
| 639 |
+
"version": 1
|
| 640 |
+
},
|
| 641 |
+
"motion_rep.stats": {
|
| 642 |
+
"version": 1
|
| 643 |
+
},
|
| 644 |
+
"global_motion_rep": {
|
| 645 |
+
"version": 1
|
| 646 |
+
},
|
| 647 |
+
"global_motion_rep.skeleton": {
|
| 648 |
+
"version": 1
|
| 649 |
+
},
|
| 650 |
+
"global_motion_rep.stats": {
|
| 651 |
+
"version": 1
|
| 652 |
+
},
|
| 653 |
+
"local_motion_rep": {
|
| 654 |
+
"version": 1
|
| 655 |
+
},
|
| 656 |
+
"local_motion_rep.skeleton": {
|
| 657 |
+
"version": 1
|
| 658 |
+
},
|
| 659 |
+
"local_motion_rep.stats": {
|
| 660 |
+
"version": 1
|
| 661 |
+
}
|
| 662 |
+
},
|
| 663 |
+
"omitted_training_state": [
|
| 664 |
+
"loops",
|
| 665 |
+
"callbacks",
|
| 666 |
+
"optimizer_states",
|
| 667 |
+
"lr_schedulers"
|
| 668 |
+
]
|
| 669 |
+
}
|
soma/soma-v6-nova-4n8g-ea43dd8-fp32-v1/mmm-v6-soma-pose-nova-4n8g-ea43dd8-fp32-v1/version_0/checkpoints/model-step=1500000.safetensors
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:8537d9d33a880ff1df6c16c28ed061d60c461a5918d70b1cf99251ff91a10a10
|
| 3 |
+
size 546109841
|
soma/soma-v6-nova-4n8g-ea43dd8-fp32-v1/mmm-v6-soma-pose-nova-4n8g-ea43dd8-fp32-v1/version_0/config.yaml
ADDED
|
@@ -0,0 +1,250 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
model:
|
| 2 |
+
mmm_network:
|
| 3 |
+
_target_: rnms.mmm.neural_modules.mmm_net_pose_v6.pose_mmm_network
|
| 4 |
+
motion_rep: ???
|
| 5 |
+
args:
|
| 6 |
+
pose_root_mode: ${model.args.pose_root_mode}
|
| 7 |
+
min_tokens: ${model.args.min_tokens}
|
| 8 |
+
max_tokens: ${model.args.max_tokens}
|
| 9 |
+
down_t: ${model.args.down_t}
|
| 10 |
+
pose_token_mlp_num_layers: 2
|
| 11 |
+
root_feat_width: 256
|
| 12 |
+
pose_feat_width: 640
|
| 13 |
+
token_length_feat_width: 128
|
| 14 |
+
text_emb_dim: 4096
|
| 15 |
+
text_embeddings: ${data.text_embeddings}
|
| 16 |
+
local_pose_feature: ${model.args.local_pose_feature}
|
| 17 |
+
cond_root_feature: ${model.args.cond_root_feature}
|
| 18 |
+
cond_root_feature_is_from_motion_rep: ${model.args.cond_root_feature_is_from_motion_rep}
|
| 19 |
+
n_embd: 1024
|
| 20 |
+
n_head: 16
|
| 21 |
+
n_layers: 16
|
| 22 |
+
pose_vqvae:
|
| 23 |
+
nb_code: ${model.pose_vqvae_network.nb_code}
|
| 24 |
+
code_dim: ${model.pose_vqvae_network.code_dim}
|
| 25 |
+
num_heads: ${model.pose_vqvae_network.num_heads}
|
| 26 |
+
has_codebook: ${oc.select:model.pose_vqvae_network.has_codebook,true}
|
| 27 |
+
root_vqvae:
|
| 28 |
+
nb_code: 1024
|
| 29 |
+
code_dim: 60
|
| 30 |
+
num_heads: 1
|
| 31 |
+
pose_vqvae_network:
|
| 32 |
+
_target_: rnms.vqvae.neural_modules.bones_vqvae_v6.VQVAE
|
| 33 |
+
pose_root_mode: pose
|
| 34 |
+
motion_rep: ???
|
| 35 |
+
encoder_state_dim: 241
|
| 36 |
+
decoder_state_dim: 329
|
| 37 |
+
decoder_target_cond_dim: 241
|
| 38 |
+
decoder_external_cond_dim: 2
|
| 39 |
+
feature_mode:
|
| 40 |
+
- joint_positions_and_rotations_and_hip_height
|
| 41 |
+
- pose
|
| 42 |
+
- joint_positions_and_rotations_and_hip_height
|
| 43 |
+
- root_without_hip_height_without_heading
|
| 44 |
+
quantizer_strategy: multihead_ema_reset
|
| 45 |
+
quantizer_mu: 0.99
|
| 46 |
+
nb_code: 1048576
|
| 47 |
+
code_dim: 160
|
| 48 |
+
output_emb_width: 160
|
| 49 |
+
down_t: 2
|
| 50 |
+
stride_t: 2
|
| 51 |
+
width: 512
|
| 52 |
+
depth: 4
|
| 53 |
+
dilation_growth_rate: 3
|
| 54 |
+
activation: relu
|
| 55 |
+
num_heads: 5
|
| 56 |
+
kmeans_init: false
|
| 57 |
+
norm: None
|
| 58 |
+
calculate_per_head_perplexity: true
|
| 59 |
+
cond_fusion_last_layer: false
|
| 60 |
+
_target_: rnms.mmm.models.MMM_pose_v6.MaskedMotionModel
|
| 61 |
+
motion_rep: ???
|
| 62 |
+
root_vqvae_network: null
|
| 63 |
+
pose_vqvae_motion_rep: local
|
| 64 |
+
denoiser:
|
| 65 |
+
backbone:
|
| 66 |
+
llm_shape: null
|
| 67 |
+
args:
|
| 68 |
+
min_tokens: 6
|
| 69 |
+
max_tokens: 16
|
| 70 |
+
down_t: 2
|
| 71 |
+
vqvae_model_ckpt_path: /lustre/fsw/portfolios/edgeai/projects/edgeai_a2x/users/odionne/rnms/results/vqvae-v6-soma-nova-4n8g-ea43dd8-fp32-v1/version_0/checkpoints/model-step=1500000.ckpt
|
| 72 |
+
pose_vqvae_motion_rep: ${model.pose_vqvae_motion_rep}
|
| 73 |
+
incorrect_token_ratio_min: 0.0
|
| 74 |
+
incorrect_token_ratio_max: 1.0
|
| 75 |
+
masked_token_ratio: 0.8
|
| 76 |
+
batchsize_mul_factor: 2
|
| 77 |
+
pose_root_mode: pose
|
| 78 |
+
local_pose_feature: joint_positions_and_rotations_and_hip_height
|
| 79 |
+
cond_root_feature: root_without_hip_height
|
| 80 |
+
cond_root_feature_is_from_motion_rep: global
|
| 81 |
+
max_num_start_keyframes: 4
|
| 82 |
+
no_start_keyframe_prob: 0.0
|
| 83 |
+
max_num_end_keyframes: 4
|
| 84 |
+
no_end_keyframe_prob: 0.0
|
| 85 |
+
max_num_middle_keyframes: 8
|
| 86 |
+
no_middle_keyframe_prob: 0.5
|
| 87 |
+
prob_provide_text_emb: 0.2
|
| 88 |
+
keyframe_num_warmup_steps: 200000
|
| 89 |
+
floor_estimation: null
|
| 90 |
+
floor_estimation_window_time: 1.0
|
| 91 |
+
optimizer:
|
| 92 |
+
_target_: adam_atan2_pytorch.AdamAtan2
|
| 93 |
+
_partial_: true
|
| 94 |
+
lr: 2.0e-05
|
| 95 |
+
weight_decay: 0.0
|
| 96 |
+
scheduler:
|
| 97 |
+
_target_: mfm.train.scheduler.WarmupCosineScheduler
|
| 98 |
+
_partial_: true
|
| 99 |
+
num_warmup_steps: 10000
|
| 100 |
+
num_training_steps: ${trainer.max_steps}
|
| 101 |
+
final_lr: 1.0e-07
|
| 102 |
+
last_epoch: -1
|
| 103 |
+
lt_kwargs:
|
| 104 |
+
interval: step
|
| 105 |
+
frequency: 1
|
| 106 |
+
trainer:
|
| 107 |
+
_target_: pytorch_lightning.Trainer
|
| 108 |
+
precision: 32
|
| 109 |
+
enable_progress_bar: false
|
| 110 |
+
profiler: null
|
| 111 |
+
check_val_every_n_epoch: null
|
| 112 |
+
detect_anomaly: false
|
| 113 |
+
num_sanity_val_steps: 0
|
| 114 |
+
max_steps: 1500001
|
| 115 |
+
gradient_clip_val: 0.5
|
| 116 |
+
log_every_n_steps: 100
|
| 117 |
+
val_check_interval: 50000
|
| 118 |
+
devices: 8
|
| 119 |
+
num_nodes: 4
|
| 120 |
+
accelerator: gpu
|
| 121 |
+
strategy: ddp
|
| 122 |
+
use_distributed_sampler: true
|
| 123 |
+
loggers:
|
| 124 |
+
out_dir: ${out_dir}
|
| 125 |
+
cfg_id: ${id}
|
| 126 |
+
max_steps: ${trainer.max_steps}
|
| 127 |
+
log_nsteps: ${trainer.log_every_n_steps}
|
| 128 |
+
use_wandb: false
|
| 129 |
+
wandb_run: ${wandb_run}
|
| 130 |
+
wandb_group: null
|
| 131 |
+
wandb_project: rnms_mmm
|
| 132 |
+
wandb_entity: nv-gear
|
| 133 |
+
onelogger_project: mfm
|
| 134 |
+
wandb_run_name: null
|
| 135 |
+
callbacks:
|
| 136 |
+
callback_dict:
|
| 137 |
+
checkpoint_epoch_cb:
|
| 138 |
+
_target_: mfm.train.callbacks.ckpt.ReadPermissionModelCheckpoint
|
| 139 |
+
monitor: null
|
| 140 |
+
dirpath: /lustre/fsw/portfolios/edgeai/projects/edgeai_a2x/users/odionne/rnms/results/mmm-v6-soma-pose-nova-4n8g-ea43dd8-fp32-v1/version_0/checkpoints
|
| 141 |
+
filename: model-{step:07d}
|
| 142 |
+
save_last: false
|
| 143 |
+
save_top_k: -1
|
| 144 |
+
mode: min
|
| 145 |
+
every_n_train_steps: 50000
|
| 146 |
+
learning_rate_monitor:
|
| 147 |
+
_target_: pytorch_lightning.callbacks.LearningRateMonitor
|
| 148 |
+
logging_interval: step
|
| 149 |
+
autoresume:
|
| 150 |
+
_target_: mfm.train.callbacks.autoresume.AutoResumeCallback
|
| 151 |
+
autoresume_after: 12600
|
| 152 |
+
save_checkpoint_on_exception: true
|
| 153 |
+
mmm_evaluate:
|
| 154 |
+
_target_: rnms.mmm.callbacks.evaluation.MMM_Evaluate
|
| 155 |
+
every_n_steps: 50001
|
| 156 |
+
train_dataloader: ???
|
| 157 |
+
val_dataloader: ???
|
| 158 |
+
seed: 2333
|
| 159 |
+
batch_size: 32
|
| 160 |
+
max_num_data: 40000
|
| 161 |
+
max_num_visualization: 32
|
| 162 |
+
out_dir: ${run_dir}/vis
|
| 163 |
+
train_end:
|
| 164 |
+
_target_: mfm.train.callbacks.train_end.TrainEndCallback
|
| 165 |
+
only_rank_zero:
|
| 166 |
+
- learning_rate_monitor
|
| 167 |
+
- mmm_evaluate
|
| 168 |
+
- train_end
|
| 169 |
+
need_version: []
|
| 170 |
+
need_dataloaders:
|
| 171 |
+
- mmm_evaluate
|
| 172 |
+
need_ema: []
|
| 173 |
+
need_mfm_test: []
|
| 174 |
+
need_log:
|
| 175 |
+
- mmm_evaluate
|
| 176 |
+
need_autoresume:
|
| 177 |
+
- mmm_evaluate
|
| 178 |
+
need_mask_cond_sampler: []
|
| 179 |
+
need_one_logger_callback:
|
| 180 |
+
- autoresume
|
| 181 |
+
dataloader:
|
| 182 |
+
_target_: torch.utils.data.DataLoader
|
| 183 |
+
batch_size: 128
|
| 184 |
+
num_workers: 15
|
| 185 |
+
shuffle: ???
|
| 186 |
+
pin_memory: true
|
| 187 |
+
persistent_workers: true
|
| 188 |
+
collate_fn:
|
| 189 |
+
_target_: mfm.data.utils.collate_batch
|
| 190 |
+
_partial_: true
|
| 191 |
+
llm_shape: ${model.denoiser.backbone.llm_shape}
|
| 192 |
+
num_frames: null
|
| 193 |
+
train_split: train_nova
|
| 194 |
+
val_split: unique_test_nova
|
| 195 |
+
data:
|
| 196 |
+
_target_: mfm.data.motion_dataset.MotionDataset
|
| 197 |
+
name: rigplay1-v1
|
| 198 |
+
folder: ${data_root}/${.name}
|
| 199 |
+
data_variation_folder: anims_uniform
|
| 200 |
+
text_embeddings: null
|
| 201 |
+
split: ???
|
| 202 |
+
motion_sampler:
|
| 203 |
+
_target_: mfm.data.motion_sampler.MaxDurationRandomCrop
|
| 204 |
+
max_seconds: 15
|
| 205 |
+
motion_loading_mode: memmap
|
| 206 |
+
text_fields:
|
| 207 |
+
natural_desc_1: 0.125
|
| 208 |
+
natural_desc_2: 0.125
|
| 209 |
+
natural_desc_3: 0.125
|
| 210 |
+
short_description: 0.125
|
| 211 |
+
nv_overview_desc: 0.5
|
| 212 |
+
drop_text_prob: 0.1
|
| 213 |
+
augment_text: false
|
| 214 |
+
aug_text_suffix: _qwen
|
| 215 |
+
aug_text_prob: null
|
| 216 |
+
load_neutral_joints: false
|
| 217 |
+
timelines_mode: false
|
| 218 |
+
timelines_name: null
|
| 219 |
+
dataset_sampler: null
|
| 220 |
+
dataset_sampler_only_at_train: true
|
| 221 |
+
to_canonicalize: false
|
| 222 |
+
randomize_first_heading: true
|
| 223 |
+
loading_mode: motion_only
|
| 224 |
+
skeleton:
|
| 225 |
+
base_name: novaskel30
|
| 226 |
+
folder: ${data.folder}/features/motion_rep/${motion_rep.name}_fps_${fps}/skeleton
|
| 227 |
+
t_pose: standard
|
| 228 |
+
orig_prefix: ''
|
| 229 |
+
name: ${skeleton.orig_prefix}${skeleton.base_name}
|
| 230 |
+
_target_: mfm.core.skeletons.nova.NovaSkeleton30
|
| 231 |
+
motion_rep:
|
| 232 |
+
name: ${skeleton.name}_dual_root_global_joints
|
| 233 |
+
stats:
|
| 234 |
+
_target_: mfm.core.utils.stats.Stats
|
| 235 |
+
folder: ${data.folder}/features/motion_rep/${motion_rep.name}_fps_${fps}/stats
|
| 236 |
+
_target_: mfm.core.motion_reps.dual_root_global_joints.GlobalRootGlobalJoints
|
| 237 |
+
fps: 30
|
| 238 |
+
wandb_run: null
|
| 239 |
+
resume: false
|
| 240 |
+
version: null
|
| 241 |
+
cp: last_epoch
|
| 242 |
+
matmul_precision: high
|
| 243 |
+
seed: 7
|
| 244 |
+
id: ${hydra:runtime.choices.exp}_gpu${trainer.devices}_node${trainer.num_nodes}
|
| 245 |
+
out_dir: /lustre/fsw/portfolios/edgeai/projects/edgeai_a2x/users/odionne/rnms/results/mmm-v6-soma-pose-nova-4n8g-ea43dd8-fp32-v1
|
| 246 |
+
run_dir: /lustre/fsw/portfolios/edgeai/projects/edgeai_a2x/users/odionne/rnms/results/mmm-v6-soma-pose-nova-4n8g-ea43dd8-fp32-v1/version_0
|
| 247 |
+
pure_testing: false
|
| 248 |
+
config_version: 4
|
| 249 |
+
data_root: /lustre/fsw/portfolios/nvr/projects/nvr_torontoai_humanmotionfm/datasets
|
| 250 |
+
tmr_checkpoints_root: /lustre/fsw/portfolios/nvr/projects/nvr_torontoai_humanmotionfm/models/TMR
|
soma/soma-v6-nova-4n8g-ea43dd8-fp32-v1/mmm-v6-soma-pose-nova-4n8g-ea43dd8-fp32-v1/version_0/skeleton/joints.npy
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:57add41fb635ad9b43e85478954c05087b07d57184676ebb5cfe3c5864b5daac
|
| 3 |
+
size 848
|
soma/soma-v6-nova-4n8g-ea43dd8-fp32-v1/mmm-v6-soma-pose-nova-4n8g-ea43dd8-fp32-v1/version_0/skeleton/skeleton.yaml
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
base_name: novaskel30
|
| 2 |
+
folder: ${data.folder}/features/motion_rep/${motion_rep.name}_fps_${fps}/skeleton
|
| 3 |
+
t_pose: standard
|
| 4 |
+
orig_prefix: ''
|
| 5 |
+
name: ${skeleton.orig_prefix}${skeleton.base_name}
|
| 6 |
+
_target_: mfm.core.skeletons.nova.NovaSkeleton30
|
soma/soma-v6-nova-4n8g-ea43dd8-fp32-v1/mmm-v6-soma-pose-nova-4n8g-ea43dd8-fp32-v1/version_0/stats/motion/mean.npy
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:802f79631ea88a1a920cf44725f5d0e9973a0c8d7adb5359b01bd7a5af57492d
|
| 3 |
+
size 3088
|
soma/soma-v6-nova-4n8g-ea43dd8-fp32-v1/mmm-v6-soma-pose-nova-4n8g-ea43dd8-fp32-v1/version_0/stats/motion/std.npy
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:1a97818fea2a10e562de059013b081ecf7943d6815a36396f0d94f54ad26acb6
|
| 3 |
+
size 3088
|
soma/soma-v6-nova-4n8g-ea43dd8-fp32-v1/mmm-v6-soma-root-nova-4n8g-ea43dd8-fp32-v1/version_0/checkpoints/model-step=1500000.json
ADDED
|
@@ -0,0 +1,705 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"schema_version": 1,
|
| 3 |
+
"source_checkpoint_sha256": "5059d7949376fe45a95f9b6869e386a7038840f6cfa6d778747c44ae82f87a93",
|
| 4 |
+
"epoch": 1224,
|
| 5 |
+
"global_step": 1500000,
|
| 6 |
+
"pytorch_lightning_version": "2.4.0",
|
| 7 |
+
"state_dict_metadata": {
|
| 8 |
+
"": {
|
| 9 |
+
"version": 1
|
| 10 |
+
},
|
| 11 |
+
"mmm_net": {
|
| 12 |
+
"version": 1
|
| 13 |
+
},
|
| 14 |
+
"mmm_net.motion_rep": {
|
| 15 |
+
"version": 1
|
| 16 |
+
},
|
| 17 |
+
"mmm_net.motion_rep.skeleton": {
|
| 18 |
+
"version": 1
|
| 19 |
+
},
|
| 20 |
+
"mmm_net.motion_rep.dual_rep": {
|
| 21 |
+
"version": 1
|
| 22 |
+
},
|
| 23 |
+
"mmm_net.motion_rep.dual_rep.stats": {
|
| 24 |
+
"version": 1
|
| 25 |
+
},
|
| 26 |
+
"mmm_net.motion_rep.dual_rep.skeleton": {
|
| 27 |
+
"version": 1
|
| 28 |
+
},
|
| 29 |
+
"mmm_net.motion_rep.dual_rep.global_motion_rep": {
|
| 30 |
+
"version": 1
|
| 31 |
+
},
|
| 32 |
+
"mmm_net.motion_rep.dual_rep.global_motion_rep.skeleton": {
|
| 33 |
+
"version": 1
|
| 34 |
+
},
|
| 35 |
+
"mmm_net.motion_rep.dual_rep.global_motion_rep.stats": {
|
| 36 |
+
"version": 1
|
| 37 |
+
},
|
| 38 |
+
"mmm_net.motion_rep.dual_rep.local_motion_rep": {
|
| 39 |
+
"version": 1
|
| 40 |
+
},
|
| 41 |
+
"mmm_net.motion_rep.dual_rep.local_motion_rep.skeleton": {
|
| 42 |
+
"version": 1
|
| 43 |
+
},
|
| 44 |
+
"mmm_net.motion_rep.dual_rep.local_motion_rep.stats": {
|
| 45 |
+
"version": 1
|
| 46 |
+
},
|
| 47 |
+
"mmm_net.motion_rep.stats": {
|
| 48 |
+
"version": 1
|
| 49 |
+
},
|
| 50 |
+
"mmm_net.global_motion_rep": {
|
| 51 |
+
"version": 1
|
| 52 |
+
},
|
| 53 |
+
"mmm_net.global_motion_rep.skeleton": {
|
| 54 |
+
"version": 1
|
| 55 |
+
},
|
| 56 |
+
"mmm_net.global_motion_rep.stats": {
|
| 57 |
+
"version": 1
|
| 58 |
+
},
|
| 59 |
+
"mmm_net.local_motion_rep": {
|
| 60 |
+
"version": 1
|
| 61 |
+
},
|
| 62 |
+
"mmm_net.local_motion_rep.skeleton": {
|
| 63 |
+
"version": 1
|
| 64 |
+
},
|
| 65 |
+
"mmm_net.local_motion_rep.stats": {
|
| 66 |
+
"version": 1
|
| 67 |
+
},
|
| 68 |
+
"mmm_net._shared_transformer_model": {
|
| 69 |
+
"version": 1
|
| 70 |
+
},
|
| 71 |
+
"mmm_net._shared_transformer_model.layers": {
|
| 72 |
+
"version": 1
|
| 73 |
+
},
|
| 74 |
+
"mmm_net._shared_transformer_model.layers.0": {
|
| 75 |
+
"version": 1
|
| 76 |
+
},
|
| 77 |
+
"mmm_net._shared_transformer_model.layers.0.self_attn": {
|
| 78 |
+
"version": 1
|
| 79 |
+
},
|
| 80 |
+
"mmm_net._shared_transformer_model.layers.0.self_attn.out_proj": {
|
| 81 |
+
"version": 1
|
| 82 |
+
},
|
| 83 |
+
"mmm_net._shared_transformer_model.layers.0.linear1": {
|
| 84 |
+
"version": 1
|
| 85 |
+
},
|
| 86 |
+
"mmm_net._shared_transformer_model.layers.0.dropout": {
|
| 87 |
+
"version": 1
|
| 88 |
+
},
|
| 89 |
+
"mmm_net._shared_transformer_model.layers.0.linear2": {
|
| 90 |
+
"version": 1
|
| 91 |
+
},
|
| 92 |
+
"mmm_net._shared_transformer_model.layers.0.norm1": {
|
| 93 |
+
"version": 1
|
| 94 |
+
},
|
| 95 |
+
"mmm_net._shared_transformer_model.layers.0.norm2": {
|
| 96 |
+
"version": 1
|
| 97 |
+
},
|
| 98 |
+
"mmm_net._shared_transformer_model.layers.0.dropout1": {
|
| 99 |
+
"version": 1
|
| 100 |
+
},
|
| 101 |
+
"mmm_net._shared_transformer_model.layers.0.dropout2": {
|
| 102 |
+
"version": 1
|
| 103 |
+
},
|
| 104 |
+
"mmm_net._shared_transformer_model.layers.1": {
|
| 105 |
+
"version": 1
|
| 106 |
+
},
|
| 107 |
+
"mmm_net._shared_transformer_model.layers.1.self_attn": {
|
| 108 |
+
"version": 1
|
| 109 |
+
},
|
| 110 |
+
"mmm_net._shared_transformer_model.layers.1.self_attn.out_proj": {
|
| 111 |
+
"version": 1
|
| 112 |
+
},
|
| 113 |
+
"mmm_net._shared_transformer_model.layers.1.linear1": {
|
| 114 |
+
"version": 1
|
| 115 |
+
},
|
| 116 |
+
"mmm_net._shared_transformer_model.layers.1.dropout": {
|
| 117 |
+
"version": 1
|
| 118 |
+
},
|
| 119 |
+
"mmm_net._shared_transformer_model.layers.1.linear2": {
|
| 120 |
+
"version": 1
|
| 121 |
+
},
|
| 122 |
+
"mmm_net._shared_transformer_model.layers.1.norm1": {
|
| 123 |
+
"version": 1
|
| 124 |
+
},
|
| 125 |
+
"mmm_net._shared_transformer_model.layers.1.norm2": {
|
| 126 |
+
"version": 1
|
| 127 |
+
},
|
| 128 |
+
"mmm_net._shared_transformer_model.layers.1.dropout1": {
|
| 129 |
+
"version": 1
|
| 130 |
+
},
|
| 131 |
+
"mmm_net._shared_transformer_model.layers.1.dropout2": {
|
| 132 |
+
"version": 1
|
| 133 |
+
},
|
| 134 |
+
"mmm_net._shared_transformer_model.layers.2": {
|
| 135 |
+
"version": 1
|
| 136 |
+
},
|
| 137 |
+
"mmm_net._shared_transformer_model.layers.2.self_attn": {
|
| 138 |
+
"version": 1
|
| 139 |
+
},
|
| 140 |
+
"mmm_net._shared_transformer_model.layers.2.self_attn.out_proj": {
|
| 141 |
+
"version": 1
|
| 142 |
+
},
|
| 143 |
+
"mmm_net._shared_transformer_model.layers.2.linear1": {
|
| 144 |
+
"version": 1
|
| 145 |
+
},
|
| 146 |
+
"mmm_net._shared_transformer_model.layers.2.dropout": {
|
| 147 |
+
"version": 1
|
| 148 |
+
},
|
| 149 |
+
"mmm_net._shared_transformer_model.layers.2.linear2": {
|
| 150 |
+
"version": 1
|
| 151 |
+
},
|
| 152 |
+
"mmm_net._shared_transformer_model.layers.2.norm1": {
|
| 153 |
+
"version": 1
|
| 154 |
+
},
|
| 155 |
+
"mmm_net._shared_transformer_model.layers.2.norm2": {
|
| 156 |
+
"version": 1
|
| 157 |
+
},
|
| 158 |
+
"mmm_net._shared_transformer_model.layers.2.dropout1": {
|
| 159 |
+
"version": 1
|
| 160 |
+
},
|
| 161 |
+
"mmm_net._shared_transformer_model.layers.2.dropout2": {
|
| 162 |
+
"version": 1
|
| 163 |
+
},
|
| 164 |
+
"mmm_net._shared_transformer_model.layers.3": {
|
| 165 |
+
"version": 1
|
| 166 |
+
},
|
| 167 |
+
"mmm_net._shared_transformer_model.layers.3.self_attn": {
|
| 168 |
+
"version": 1
|
| 169 |
+
},
|
| 170 |
+
"mmm_net._shared_transformer_model.layers.3.self_attn.out_proj": {
|
| 171 |
+
"version": 1
|
| 172 |
+
},
|
| 173 |
+
"mmm_net._shared_transformer_model.layers.3.linear1": {
|
| 174 |
+
"version": 1
|
| 175 |
+
},
|
| 176 |
+
"mmm_net._shared_transformer_model.layers.3.dropout": {
|
| 177 |
+
"version": 1
|
| 178 |
+
},
|
| 179 |
+
"mmm_net._shared_transformer_model.layers.3.linear2": {
|
| 180 |
+
"version": 1
|
| 181 |
+
},
|
| 182 |
+
"mmm_net._shared_transformer_model.layers.3.norm1": {
|
| 183 |
+
"version": 1
|
| 184 |
+
},
|
| 185 |
+
"mmm_net._shared_transformer_model.layers.3.norm2": {
|
| 186 |
+
"version": 1
|
| 187 |
+
},
|
| 188 |
+
"mmm_net._shared_transformer_model.layers.3.dropout1": {
|
| 189 |
+
"version": 1
|
| 190 |
+
},
|
| 191 |
+
"mmm_net._shared_transformer_model.layers.3.dropout2": {
|
| 192 |
+
"version": 1
|
| 193 |
+
},
|
| 194 |
+
"mmm_net._shared_transformer_model.layers.4": {
|
| 195 |
+
"version": 1
|
| 196 |
+
},
|
| 197 |
+
"mmm_net._shared_transformer_model.layers.4.self_attn": {
|
| 198 |
+
"version": 1
|
| 199 |
+
},
|
| 200 |
+
"mmm_net._shared_transformer_model.layers.4.self_attn.out_proj": {
|
| 201 |
+
"version": 1
|
| 202 |
+
},
|
| 203 |
+
"mmm_net._shared_transformer_model.layers.4.linear1": {
|
| 204 |
+
"version": 1
|
| 205 |
+
},
|
| 206 |
+
"mmm_net._shared_transformer_model.layers.4.dropout": {
|
| 207 |
+
"version": 1
|
| 208 |
+
},
|
| 209 |
+
"mmm_net._shared_transformer_model.layers.4.linear2": {
|
| 210 |
+
"version": 1
|
| 211 |
+
},
|
| 212 |
+
"mmm_net._shared_transformer_model.layers.4.norm1": {
|
| 213 |
+
"version": 1
|
| 214 |
+
},
|
| 215 |
+
"mmm_net._shared_transformer_model.layers.4.norm2": {
|
| 216 |
+
"version": 1
|
| 217 |
+
},
|
| 218 |
+
"mmm_net._shared_transformer_model.layers.4.dropout1": {
|
| 219 |
+
"version": 1
|
| 220 |
+
},
|
| 221 |
+
"mmm_net._shared_transformer_model.layers.4.dropout2": {
|
| 222 |
+
"version": 1
|
| 223 |
+
},
|
| 224 |
+
"mmm_net._shared_transformer_model.layers.5": {
|
| 225 |
+
"version": 1
|
| 226 |
+
},
|
| 227 |
+
"mmm_net._shared_transformer_model.layers.5.self_attn": {
|
| 228 |
+
"version": 1
|
| 229 |
+
},
|
| 230 |
+
"mmm_net._shared_transformer_model.layers.5.self_attn.out_proj": {
|
| 231 |
+
"version": 1
|
| 232 |
+
},
|
| 233 |
+
"mmm_net._shared_transformer_model.layers.5.linear1": {
|
| 234 |
+
"version": 1
|
| 235 |
+
},
|
| 236 |
+
"mmm_net._shared_transformer_model.layers.5.dropout": {
|
| 237 |
+
"version": 1
|
| 238 |
+
},
|
| 239 |
+
"mmm_net._shared_transformer_model.layers.5.linear2": {
|
| 240 |
+
"version": 1
|
| 241 |
+
},
|
| 242 |
+
"mmm_net._shared_transformer_model.layers.5.norm1": {
|
| 243 |
+
"version": 1
|
| 244 |
+
},
|
| 245 |
+
"mmm_net._shared_transformer_model.layers.5.norm2": {
|
| 246 |
+
"version": 1
|
| 247 |
+
},
|
| 248 |
+
"mmm_net._shared_transformer_model.layers.5.dropout1": {
|
| 249 |
+
"version": 1
|
| 250 |
+
},
|
| 251 |
+
"mmm_net._shared_transformer_model.layers.5.dropout2": {
|
| 252 |
+
"version": 1
|
| 253 |
+
},
|
| 254 |
+
"mmm_net._root_token_transformer_model": {
|
| 255 |
+
"version": 1
|
| 256 |
+
},
|
| 257 |
+
"mmm_net._root_token_transformer_model.layers": {
|
| 258 |
+
"version": 1
|
| 259 |
+
},
|
| 260 |
+
"mmm_net._root_token_transformer_model.layers.0": {
|
| 261 |
+
"version": 1
|
| 262 |
+
},
|
| 263 |
+
"mmm_net._root_token_transformer_model.layers.0.self_attn": {
|
| 264 |
+
"version": 1
|
| 265 |
+
},
|
| 266 |
+
"mmm_net._root_token_transformer_model.layers.0.self_attn.out_proj": {
|
| 267 |
+
"version": 1
|
| 268 |
+
},
|
| 269 |
+
"mmm_net._root_token_transformer_model.layers.0.linear1": {
|
| 270 |
+
"version": 1
|
| 271 |
+
},
|
| 272 |
+
"mmm_net._root_token_transformer_model.layers.0.dropout": {
|
| 273 |
+
"version": 1
|
| 274 |
+
},
|
| 275 |
+
"mmm_net._root_token_transformer_model.layers.0.linear2": {
|
| 276 |
+
"version": 1
|
| 277 |
+
},
|
| 278 |
+
"mmm_net._root_token_transformer_model.layers.0.norm1": {
|
| 279 |
+
"version": 1
|
| 280 |
+
},
|
| 281 |
+
"mmm_net._root_token_transformer_model.layers.0.norm2": {
|
| 282 |
+
"version": 1
|
| 283 |
+
},
|
| 284 |
+
"mmm_net._root_token_transformer_model.layers.0.dropout1": {
|
| 285 |
+
"version": 1
|
| 286 |
+
},
|
| 287 |
+
"mmm_net._root_token_transformer_model.layers.0.dropout2": {
|
| 288 |
+
"version": 1
|
| 289 |
+
},
|
| 290 |
+
"mmm_net._root_token_transformer_model.layers.1": {
|
| 291 |
+
"version": 1
|
| 292 |
+
},
|
| 293 |
+
"mmm_net._root_token_transformer_model.layers.1.self_attn": {
|
| 294 |
+
"version": 1
|
| 295 |
+
},
|
| 296 |
+
"mmm_net._root_token_transformer_model.layers.1.self_attn.out_proj": {
|
| 297 |
+
"version": 1
|
| 298 |
+
},
|
| 299 |
+
"mmm_net._root_token_transformer_model.layers.1.linear1": {
|
| 300 |
+
"version": 1
|
| 301 |
+
},
|
| 302 |
+
"mmm_net._root_token_transformer_model.layers.1.dropout": {
|
| 303 |
+
"version": 1
|
| 304 |
+
},
|
| 305 |
+
"mmm_net._root_token_transformer_model.layers.1.linear2": {
|
| 306 |
+
"version": 1
|
| 307 |
+
},
|
| 308 |
+
"mmm_net._root_token_transformer_model.layers.1.norm1": {
|
| 309 |
+
"version": 1
|
| 310 |
+
},
|
| 311 |
+
"mmm_net._root_token_transformer_model.layers.1.norm2": {
|
| 312 |
+
"version": 1
|
| 313 |
+
},
|
| 314 |
+
"mmm_net._root_token_transformer_model.layers.1.dropout1": {
|
| 315 |
+
"version": 1
|
| 316 |
+
},
|
| 317 |
+
"mmm_net._root_token_transformer_model.layers.1.dropout2": {
|
| 318 |
+
"version": 1
|
| 319 |
+
},
|
| 320 |
+
"mmm_net._conv_output": {
|
| 321 |
+
"version": 1
|
| 322 |
+
},
|
| 323 |
+
"mmm_net._conv_output.model": {
|
| 324 |
+
"version": 1
|
| 325 |
+
},
|
| 326 |
+
"mmm_net._conv_output.model.0": {
|
| 327 |
+
"version": 1
|
| 328 |
+
},
|
| 329 |
+
"mmm_net._conv_output.model.1": {
|
| 330 |
+
"version": 1
|
| 331 |
+
},
|
| 332 |
+
"mmm_net._conv_output.model.2": {
|
| 333 |
+
"version": 1
|
| 334 |
+
},
|
| 335 |
+
"mmm_net._conv_output.model.2.0": {
|
| 336 |
+
"version": 1
|
| 337 |
+
},
|
| 338 |
+
"mmm_net._conv_output.model.2.0.model": {
|
| 339 |
+
"version": 1
|
| 340 |
+
},
|
| 341 |
+
"mmm_net._conv_output.model.2.0.model.0": {
|
| 342 |
+
"version": 1
|
| 343 |
+
},
|
| 344 |
+
"mmm_net._conv_output.model.2.0.model.0.norm1": {
|
| 345 |
+
"version": 1
|
| 346 |
+
},
|
| 347 |
+
"mmm_net._conv_output.model.2.0.model.0.norm2": {
|
| 348 |
+
"version": 1
|
| 349 |
+
},
|
| 350 |
+
"mmm_net._conv_output.model.2.0.model.0.activation1": {
|
| 351 |
+
"version": 1
|
| 352 |
+
},
|
| 353 |
+
"mmm_net._conv_output.model.2.0.model.0.activation2": {
|
| 354 |
+
"version": 1
|
| 355 |
+
},
|
| 356 |
+
"mmm_net._conv_output.model.2.0.model.0.conv1": {
|
| 357 |
+
"version": 1
|
| 358 |
+
},
|
| 359 |
+
"mmm_net._conv_output.model.2.0.model.0.conv2": {
|
| 360 |
+
"version": 1
|
| 361 |
+
},
|
| 362 |
+
"mmm_net._conv_output.model.2.0.model.1": {
|
| 363 |
+
"version": 1
|
| 364 |
+
},
|
| 365 |
+
"mmm_net._conv_output.model.2.0.model.1.norm1": {
|
| 366 |
+
"version": 1
|
| 367 |
+
},
|
| 368 |
+
"mmm_net._conv_output.model.2.0.model.1.norm2": {
|
| 369 |
+
"version": 1
|
| 370 |
+
},
|
| 371 |
+
"mmm_net._conv_output.model.2.0.model.1.activation1": {
|
| 372 |
+
"version": 1
|
| 373 |
+
},
|
| 374 |
+
"mmm_net._conv_output.model.2.0.model.1.activation2": {
|
| 375 |
+
"version": 1
|
| 376 |
+
},
|
| 377 |
+
"mmm_net._conv_output.model.2.0.model.1.conv1": {
|
| 378 |
+
"version": 1
|
| 379 |
+
},
|
| 380 |
+
"mmm_net._conv_output.model.2.0.model.1.conv2": {
|
| 381 |
+
"version": 1
|
| 382 |
+
},
|
| 383 |
+
"mmm_net._conv_output.model.2.0.model.2": {
|
| 384 |
+
"version": 1
|
| 385 |
+
},
|
| 386 |
+
"mmm_net._conv_output.model.2.0.model.2.norm1": {
|
| 387 |
+
"version": 1
|
| 388 |
+
},
|
| 389 |
+
"mmm_net._conv_output.model.2.0.model.2.norm2": {
|
| 390 |
+
"version": 1
|
| 391 |
+
},
|
| 392 |
+
"mmm_net._conv_output.model.2.0.model.2.activation1": {
|
| 393 |
+
"version": 1
|
| 394 |
+
},
|
| 395 |
+
"mmm_net._conv_output.model.2.0.model.2.activation2": {
|
| 396 |
+
"version": 1
|
| 397 |
+
},
|
| 398 |
+
"mmm_net._conv_output.model.2.0.model.2.conv1": {
|
| 399 |
+
"version": 1
|
| 400 |
+
},
|
| 401 |
+
"mmm_net._conv_output.model.2.0.model.2.conv2": {
|
| 402 |
+
"version": 1
|
| 403 |
+
},
|
| 404 |
+
"mmm_net._conv_output.model.2.0.model.3": {
|
| 405 |
+
"version": 1
|
| 406 |
+
},
|
| 407 |
+
"mmm_net._conv_output.model.2.0.model.3.norm1": {
|
| 408 |
+
"version": 1
|
| 409 |
+
},
|
| 410 |
+
"mmm_net._conv_output.model.2.0.model.3.norm2": {
|
| 411 |
+
"version": 1
|
| 412 |
+
},
|
| 413 |
+
"mmm_net._conv_output.model.2.0.model.3.activation1": {
|
| 414 |
+
"version": 1
|
| 415 |
+
},
|
| 416 |
+
"mmm_net._conv_output.model.2.0.model.3.activation2": {
|
| 417 |
+
"version": 1
|
| 418 |
+
},
|
| 419 |
+
"mmm_net._conv_output.model.2.0.model.3.conv1": {
|
| 420 |
+
"version": 1
|
| 421 |
+
},
|
| 422 |
+
"mmm_net._conv_output.model.2.0.model.3.conv2": {
|
| 423 |
+
"version": 1
|
| 424 |
+
},
|
| 425 |
+
"mmm_net._conv_output.model.2.1": {
|
| 426 |
+
"version": 1
|
| 427 |
+
},
|
| 428 |
+
"mmm_net._conv_output.model.2.2": {
|
| 429 |
+
"version": 1
|
| 430 |
+
},
|
| 431 |
+
"mmm_net._conv_output.model.3": {
|
| 432 |
+
"version": 1
|
| 433 |
+
},
|
| 434 |
+
"mmm_net._conv_output.model.3.0": {
|
| 435 |
+
"version": 1
|
| 436 |
+
},
|
| 437 |
+
"mmm_net._conv_output.model.3.0.model": {
|
| 438 |
+
"version": 1
|
| 439 |
+
},
|
| 440 |
+
"mmm_net._conv_output.model.3.0.model.0": {
|
| 441 |
+
"version": 1
|
| 442 |
+
},
|
| 443 |
+
"mmm_net._conv_output.model.3.0.model.0.norm1": {
|
| 444 |
+
"version": 1
|
| 445 |
+
},
|
| 446 |
+
"mmm_net._conv_output.model.3.0.model.0.norm2": {
|
| 447 |
+
"version": 1
|
| 448 |
+
},
|
| 449 |
+
"mmm_net._conv_output.model.3.0.model.0.activation1": {
|
| 450 |
+
"version": 1
|
| 451 |
+
},
|
| 452 |
+
"mmm_net._conv_output.model.3.0.model.0.activation2": {
|
| 453 |
+
"version": 1
|
| 454 |
+
},
|
| 455 |
+
"mmm_net._conv_output.model.3.0.model.0.conv1": {
|
| 456 |
+
"version": 1
|
| 457 |
+
},
|
| 458 |
+
"mmm_net._conv_output.model.3.0.model.0.conv2": {
|
| 459 |
+
"version": 1
|
| 460 |
+
},
|
| 461 |
+
"mmm_net._conv_output.model.3.0.model.1": {
|
| 462 |
+
"version": 1
|
| 463 |
+
},
|
| 464 |
+
"mmm_net._conv_output.model.3.0.model.1.norm1": {
|
| 465 |
+
"version": 1
|
| 466 |
+
},
|
| 467 |
+
"mmm_net._conv_output.model.3.0.model.1.norm2": {
|
| 468 |
+
"version": 1
|
| 469 |
+
},
|
| 470 |
+
"mmm_net._conv_output.model.3.0.model.1.activation1": {
|
| 471 |
+
"version": 1
|
| 472 |
+
},
|
| 473 |
+
"mmm_net._conv_output.model.3.0.model.1.activation2": {
|
| 474 |
+
"version": 1
|
| 475 |
+
},
|
| 476 |
+
"mmm_net._conv_output.model.3.0.model.1.conv1": {
|
| 477 |
+
"version": 1
|
| 478 |
+
},
|
| 479 |
+
"mmm_net._conv_output.model.3.0.model.1.conv2": {
|
| 480 |
+
"version": 1
|
| 481 |
+
},
|
| 482 |
+
"mmm_net._conv_output.model.3.0.model.2": {
|
| 483 |
+
"version": 1
|
| 484 |
+
},
|
| 485 |
+
"mmm_net._conv_output.model.3.0.model.2.norm1": {
|
| 486 |
+
"version": 1
|
| 487 |
+
},
|
| 488 |
+
"mmm_net._conv_output.model.3.0.model.2.norm2": {
|
| 489 |
+
"version": 1
|
| 490 |
+
},
|
| 491 |
+
"mmm_net._conv_output.model.3.0.model.2.activation1": {
|
| 492 |
+
"version": 1
|
| 493 |
+
},
|
| 494 |
+
"mmm_net._conv_output.model.3.0.model.2.activation2": {
|
| 495 |
+
"version": 1
|
| 496 |
+
},
|
| 497 |
+
"mmm_net._conv_output.model.3.0.model.2.conv1": {
|
| 498 |
+
"version": 1
|
| 499 |
+
},
|
| 500 |
+
"mmm_net._conv_output.model.3.0.model.2.conv2": {
|
| 501 |
+
"version": 1
|
| 502 |
+
},
|
| 503 |
+
"mmm_net._conv_output.model.3.0.model.3": {
|
| 504 |
+
"version": 1
|
| 505 |
+
},
|
| 506 |
+
"mmm_net._conv_output.model.3.0.model.3.norm1": {
|
| 507 |
+
"version": 1
|
| 508 |
+
},
|
| 509 |
+
"mmm_net._conv_output.model.3.0.model.3.norm2": {
|
| 510 |
+
"version": 1
|
| 511 |
+
},
|
| 512 |
+
"mmm_net._conv_output.model.3.0.model.3.activation1": {
|
| 513 |
+
"version": 1
|
| 514 |
+
},
|
| 515 |
+
"mmm_net._conv_output.model.3.0.model.3.activation2": {
|
| 516 |
+
"version": 1
|
| 517 |
+
},
|
| 518 |
+
"mmm_net._conv_output.model.3.0.model.3.conv1": {
|
| 519 |
+
"version": 1
|
| 520 |
+
},
|
| 521 |
+
"mmm_net._conv_output.model.3.0.model.3.conv2": {
|
| 522 |
+
"version": 1
|
| 523 |
+
},
|
| 524 |
+
"mmm_net._conv_output.model.3.1": {
|
| 525 |
+
"version": 1
|
| 526 |
+
},
|
| 527 |
+
"mmm_net._conv_output.model.3.2": {
|
| 528 |
+
"version": 1
|
| 529 |
+
},
|
| 530 |
+
"mmm_net._conv_output.model.4": {
|
| 531 |
+
"version": 1
|
| 532 |
+
},
|
| 533 |
+
"mmm_net._conv_output.model.5": {
|
| 534 |
+
"version": 1
|
| 535 |
+
},
|
| 536 |
+
"mmm_net._conv_output.model.6": {
|
| 537 |
+
"version": 1
|
| 538 |
+
},
|
| 539 |
+
"mmm_net._conv_output.external_cond_blocks": {
|
| 540 |
+
"version": 1
|
| 541 |
+
},
|
| 542 |
+
"mmm_net._conv_output.external_cond_blocks.0": {
|
| 543 |
+
"version": 1
|
| 544 |
+
},
|
| 545 |
+
"mmm_net._conv_output.external_cond_blocks.1": {
|
| 546 |
+
"version": 1
|
| 547 |
+
},
|
| 548 |
+
"mmm_net._conv_output.external_cond_blocks.2": {
|
| 549 |
+
"version": 1
|
| 550 |
+
},
|
| 551 |
+
"mmm_net._conv_output.external_cond_blocks.3": {
|
| 552 |
+
"version": 1
|
| 553 |
+
},
|
| 554 |
+
"mmm_net._conv_output.target_cond_blocks": {
|
| 555 |
+
"version": 1
|
| 556 |
+
},
|
| 557 |
+
"mmm_net._conv_output.target_cond_blocks.0": {
|
| 558 |
+
"version": 1
|
| 559 |
+
},
|
| 560 |
+
"mmm_net._conv_output.target_cond_blocks.1": {
|
| 561 |
+
"version": 1
|
| 562 |
+
},
|
| 563 |
+
"mmm_net._conv_output.target_cond_blocks.2": {
|
| 564 |
+
"version": 1
|
| 565 |
+
},
|
| 566 |
+
"mmm_net._conv_output.target_cond_blocks.3": {
|
| 567 |
+
"version": 1
|
| 568 |
+
},
|
| 569 |
+
"mmm_net._proj_local_pose": {
|
| 570 |
+
"version": 1
|
| 571 |
+
},
|
| 572 |
+
"mmm_net._proj_local_root_value": {
|
| 573 |
+
"version": 1
|
| 574 |
+
},
|
| 575 |
+
"mmm_net._proj_global_root_value": {
|
| 576 |
+
"version": 1
|
| 577 |
+
},
|
| 578 |
+
"mmm_net._proj_start_input": {
|
| 579 |
+
"version": 1
|
| 580 |
+
},
|
| 581 |
+
"mmm_net._proj_start_input.forward_projection": {
|
| 582 |
+
"version": 1
|
| 583 |
+
},
|
| 584 |
+
"mmm_net._proj_start_input.fc_layers": {
|
| 585 |
+
"version": 1
|
| 586 |
+
},
|
| 587 |
+
"mmm_net._proj_start_input.fc_layers.0": {
|
| 588 |
+
"version": 1
|
| 589 |
+
},
|
| 590 |
+
"mmm_net._proj_start_input.fc_layers.1": {
|
| 591 |
+
"version": 1
|
| 592 |
+
},
|
| 593 |
+
"mmm_net._proj_start_input.relu_layers": {
|
| 594 |
+
"version": 1
|
| 595 |
+
},
|
| 596 |
+
"mmm_net._proj_start_input.relu_layers.0": {
|
| 597 |
+
"version": 1
|
| 598 |
+
},
|
| 599 |
+
"mmm_net._proj_start_input.relu_layers.1": {
|
| 600 |
+
"version": 1
|
| 601 |
+
},
|
| 602 |
+
"mmm_net._proj_end_input": {
|
| 603 |
+
"version": 1
|
| 604 |
+
},
|
| 605 |
+
"mmm_net._proj_end_input.forward_projection": {
|
| 606 |
+
"version": 1
|
| 607 |
+
},
|
| 608 |
+
"mmm_net._proj_end_input.fc_layers": {
|
| 609 |
+
"version": 1
|
| 610 |
+
},
|
| 611 |
+
"mmm_net._proj_end_input.fc_layers.0": {
|
| 612 |
+
"version": 1
|
| 613 |
+
},
|
| 614 |
+
"mmm_net._proj_end_input.fc_layers.1": {
|
| 615 |
+
"version": 1
|
| 616 |
+
},
|
| 617 |
+
"mmm_net._proj_end_input.relu_layers": {
|
| 618 |
+
"version": 1
|
| 619 |
+
},
|
| 620 |
+
"mmm_net._proj_end_input.relu_layers.0": {
|
| 621 |
+
"version": 1
|
| 622 |
+
},
|
| 623 |
+
"mmm_net._proj_end_input.relu_layers.1": {
|
| 624 |
+
"version": 1
|
| 625 |
+
},
|
| 626 |
+
"mmm_net._input_position_emb": {
|
| 627 |
+
"version": 1
|
| 628 |
+
},
|
| 629 |
+
"mmm_net._proj_input_num_tokens": {
|
| 630 |
+
"version": 1
|
| 631 |
+
},
|
| 632 |
+
"mmm_net._position_emb": {
|
| 633 |
+
"version": 1
|
| 634 |
+
},
|
| 635 |
+
"mmm_net._position_emb.dropout": {
|
| 636 |
+
"version": 1
|
| 637 |
+
},
|
| 638 |
+
"mmm_net._proj_num_token_output_logit": {
|
| 639 |
+
"version": 1
|
| 640 |
+
},
|
| 641 |
+
"mmm_net._middle_token_emb": {
|
| 642 |
+
"version": 1
|
| 643 |
+
},
|
| 644 |
+
"motion_rep": {
|
| 645 |
+
"version": 1
|
| 646 |
+
},
|
| 647 |
+
"motion_rep.skeleton": {
|
| 648 |
+
"version": 1
|
| 649 |
+
},
|
| 650 |
+
"motion_rep.dual_rep": {
|
| 651 |
+
"version": 1
|
| 652 |
+
},
|
| 653 |
+
"motion_rep.dual_rep.stats": {
|
| 654 |
+
"version": 1
|
| 655 |
+
},
|
| 656 |
+
"motion_rep.dual_rep.skeleton": {
|
| 657 |
+
"version": 1
|
| 658 |
+
},
|
| 659 |
+
"motion_rep.dual_rep.global_motion_rep": {
|
| 660 |
+
"version": 1
|
| 661 |
+
},
|
| 662 |
+
"motion_rep.dual_rep.global_motion_rep.skeleton": {
|
| 663 |
+
"version": 1
|
| 664 |
+
},
|
| 665 |
+
"motion_rep.dual_rep.global_motion_rep.stats": {
|
| 666 |
+
"version": 1
|
| 667 |
+
},
|
| 668 |
+
"motion_rep.dual_rep.local_motion_rep": {
|
| 669 |
+
"version": 1
|
| 670 |
+
},
|
| 671 |
+
"motion_rep.dual_rep.local_motion_rep.skeleton": {
|
| 672 |
+
"version": 1
|
| 673 |
+
},
|
| 674 |
+
"motion_rep.dual_rep.local_motion_rep.stats": {
|
| 675 |
+
"version": 1
|
| 676 |
+
},
|
| 677 |
+
"motion_rep.stats": {
|
| 678 |
+
"version": 1
|
| 679 |
+
},
|
| 680 |
+
"global_motion_rep": {
|
| 681 |
+
"version": 1
|
| 682 |
+
},
|
| 683 |
+
"global_motion_rep.skeleton": {
|
| 684 |
+
"version": 1
|
| 685 |
+
},
|
| 686 |
+
"global_motion_rep.stats": {
|
| 687 |
+
"version": 1
|
| 688 |
+
},
|
| 689 |
+
"local_motion_rep": {
|
| 690 |
+
"version": 1
|
| 691 |
+
},
|
| 692 |
+
"local_motion_rep.skeleton": {
|
| 693 |
+
"version": 1
|
| 694 |
+
},
|
| 695 |
+
"local_motion_rep.stats": {
|
| 696 |
+
"version": 1
|
| 697 |
+
}
|
| 698 |
+
},
|
| 699 |
+
"omitted_training_state": [
|
| 700 |
+
"loops",
|
| 701 |
+
"callbacks",
|
| 702 |
+
"optimizer_states",
|
| 703 |
+
"lr_schedulers"
|
| 704 |
+
]
|
| 705 |
+
}
|
soma/soma-v6-nova-4n8g-ea43dd8-fp32-v1/mmm-v6-soma-root-nova-4n8g-ea43dd8-fp32-v1/version_0/checkpoints/model-step=1500000.safetensors
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:a48d48c3d8ff98c825ca315797644789ae37f2db9069779a3118f42e84f4f29e
|
| 3 |
+
size 161695084
|
soma/soma-v6-nova-4n8g-ea43dd8-fp32-v1/mmm-v6-soma-root-nova-4n8g-ea43dd8-fp32-v1/version_0/config.yaml
ADDED
|
@@ -0,0 +1,228 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
model:
|
| 2 |
+
mmm_network:
|
| 3 |
+
_target_: rnms.mmm.neural_modules.mmm_net_root_v6.root_mmm_network
|
| 4 |
+
motion_rep: ???
|
| 5 |
+
args:
|
| 6 |
+
min_tokens: ${model.args.min_tokens}
|
| 7 |
+
max_tokens: ${model.args.max_tokens}
|
| 8 |
+
down_t: ${model.args.down_t}
|
| 9 |
+
use_hard_num_token_emb_for_root_prediction: ${model.args.use_hard_num_token_emb_for_root_prediction}
|
| 10 |
+
local_root_feature: ${model.args.local_root_feature}
|
| 11 |
+
global_root_feature: ${model.args.global_root_feature}
|
| 12 |
+
local_pose_feature: ${model.args.local_pose_feature}
|
| 13 |
+
pose_feat_dim: 256
|
| 14 |
+
local_root_feat_dim: 64
|
| 15 |
+
global_root_feat_dim: 64
|
| 16 |
+
text_emb_dim: 4096
|
| 17 |
+
text_embeddings: ${data.text_embeddings}
|
| 18 |
+
input_feat_mlp_num_layers: 2
|
| 19 |
+
n_embd: 512
|
| 20 |
+
n_head: 16
|
| 21 |
+
n_layers_shared: 6
|
| 22 |
+
n_layers_root_token: 2
|
| 23 |
+
width: 512
|
| 24 |
+
depth: 4
|
| 25 |
+
dilation_growth_rate: 3
|
| 26 |
+
activation: relu
|
| 27 |
+
norm: None
|
| 28 |
+
pose_vqvae:
|
| 29 |
+
nb_code: 1024
|
| 30 |
+
code_dim: 60
|
| 31 |
+
num_heads: 1
|
| 32 |
+
root_vqvae:
|
| 33 |
+
nb_code: 1024
|
| 34 |
+
code_dim: 60
|
| 35 |
+
num_heads: 1
|
| 36 |
+
_target_: rnms.mmm.models.MMM_root_v6.MaskedMotionModel
|
| 37 |
+
motion_rep: ???
|
| 38 |
+
root_vqvae_network: null
|
| 39 |
+
pose_vqvae_network: null
|
| 40 |
+
denoiser:
|
| 41 |
+
backbone:
|
| 42 |
+
llm_shape: null
|
| 43 |
+
args:
|
| 44 |
+
pose_root_mode: root
|
| 45 |
+
local_pose_feature: joint_positions_and_rotations_and_hip_height
|
| 46 |
+
local_root_feature: root
|
| 47 |
+
global_root_feature: root
|
| 48 |
+
min_tokens: 6
|
| 49 |
+
max_tokens: 16
|
| 50 |
+
use_hard_num_token_emb_for_root_prediction: true
|
| 51 |
+
min_off_target_tokens_to_sample: 25
|
| 52 |
+
max_off_target_tokens_to_sample: 40
|
| 53 |
+
prob_off_range_target_token: 0.0
|
| 54 |
+
prob_provide_num_tokens: 0.0
|
| 55 |
+
down_t: 2
|
| 56 |
+
vqvae_model_ckpt_path: null
|
| 57 |
+
batchsize_mul_factor: 2
|
| 58 |
+
max_num_start_keyframes: 4
|
| 59 |
+
no_start_keyframe_prob: 0.0
|
| 60 |
+
max_num_end_keyframes: 4
|
| 61 |
+
no_end_keyframe_prob: 0.0
|
| 62 |
+
prob_provide_text_emb: 0.0
|
| 63 |
+
num_token_loss_coeff: 1.0
|
| 64 |
+
global_root_loss_coeff: 2.0
|
| 65 |
+
local_root_loss_coeff: 1.0
|
| 66 |
+
keyframe_num_warmup_steps: 200000
|
| 67 |
+
floor_estimation: null
|
| 68 |
+
floor_estimation_window_time: 1.0
|
| 69 |
+
optimizer:
|
| 70 |
+
_target_: adam_atan2_pytorch.AdamAtan2
|
| 71 |
+
_partial_: true
|
| 72 |
+
lr: 2.0e-05
|
| 73 |
+
weight_decay: 0.0
|
| 74 |
+
scheduler:
|
| 75 |
+
_target_: mfm.train.scheduler.WarmupCosineScheduler
|
| 76 |
+
_partial_: true
|
| 77 |
+
num_warmup_steps: 10000
|
| 78 |
+
num_training_steps: ${trainer.max_steps}
|
| 79 |
+
final_lr: 1.0e-07
|
| 80 |
+
last_epoch: -1
|
| 81 |
+
lt_kwargs:
|
| 82 |
+
interval: step
|
| 83 |
+
frequency: 1
|
| 84 |
+
trainer:
|
| 85 |
+
_target_: pytorch_lightning.Trainer
|
| 86 |
+
precision: 32
|
| 87 |
+
enable_progress_bar: false
|
| 88 |
+
profiler: null
|
| 89 |
+
check_val_every_n_epoch: null
|
| 90 |
+
detect_anomaly: false
|
| 91 |
+
num_sanity_val_steps: 0
|
| 92 |
+
max_steps: 1500001
|
| 93 |
+
gradient_clip_val: 0.5
|
| 94 |
+
log_every_n_steps: 100
|
| 95 |
+
val_check_interval: 50000
|
| 96 |
+
devices: 8
|
| 97 |
+
num_nodes: 4
|
| 98 |
+
accelerator: gpu
|
| 99 |
+
strategy: ddp
|
| 100 |
+
use_distributed_sampler: true
|
| 101 |
+
loggers:
|
| 102 |
+
out_dir: ${out_dir}
|
| 103 |
+
cfg_id: ${id}
|
| 104 |
+
max_steps: ${trainer.max_steps}
|
| 105 |
+
log_nsteps: ${trainer.log_every_n_steps}
|
| 106 |
+
use_wandb: false
|
| 107 |
+
wandb_run: ${wandb_run}
|
| 108 |
+
wandb_group: null
|
| 109 |
+
wandb_project: rnms_mmm
|
| 110 |
+
wandb_entity: nv-gear
|
| 111 |
+
onelogger_project: mfm
|
| 112 |
+
wandb_run_name: null
|
| 113 |
+
callbacks:
|
| 114 |
+
callback_dict:
|
| 115 |
+
checkpoint_epoch_cb:
|
| 116 |
+
_target_: mfm.train.callbacks.ckpt.ReadPermissionModelCheckpoint
|
| 117 |
+
monitor: null
|
| 118 |
+
dirpath: /lustre/fsw/portfolios/edgeai/projects/edgeai_a2x/users/odionne/rnms/results/mmm-v6-soma-root-nova-4n8g-ea43dd8-fp32-v1/version_0/checkpoints
|
| 119 |
+
filename: model-{step:07d}
|
| 120 |
+
save_last: false
|
| 121 |
+
save_top_k: -1
|
| 122 |
+
mode: min
|
| 123 |
+
every_n_train_steps: 50000
|
| 124 |
+
learning_rate_monitor:
|
| 125 |
+
_target_: pytorch_lightning.callbacks.LearningRateMonitor
|
| 126 |
+
logging_interval: step
|
| 127 |
+
autoresume:
|
| 128 |
+
_target_: mfm.train.callbacks.autoresume.AutoResumeCallback
|
| 129 |
+
autoresume_after: 12600
|
| 130 |
+
save_checkpoint_on_exception: true
|
| 131 |
+
mmm_evaluate:
|
| 132 |
+
_target_: rnms.mmm.callbacks.evaluation.MMM_Evaluate
|
| 133 |
+
every_n_steps: 50001
|
| 134 |
+
train_dataloader: ???
|
| 135 |
+
val_dataloader: ???
|
| 136 |
+
seed: 2333
|
| 137 |
+
batch_size: 32
|
| 138 |
+
max_num_data: 40000
|
| 139 |
+
max_num_visualization: 32
|
| 140 |
+
out_dir: ${run_dir}/vis
|
| 141 |
+
train_end:
|
| 142 |
+
_target_: mfm.train.callbacks.train_end.TrainEndCallback
|
| 143 |
+
only_rank_zero:
|
| 144 |
+
- learning_rate_monitor
|
| 145 |
+
- mmm_evaluate
|
| 146 |
+
- train_end
|
| 147 |
+
need_version: []
|
| 148 |
+
need_dataloaders:
|
| 149 |
+
- mmm_evaluate
|
| 150 |
+
need_ema: []
|
| 151 |
+
need_mfm_test: []
|
| 152 |
+
need_log:
|
| 153 |
+
- mmm_evaluate
|
| 154 |
+
need_autoresume:
|
| 155 |
+
- mmm_evaluate
|
| 156 |
+
need_mask_cond_sampler: []
|
| 157 |
+
need_one_logger_callback:
|
| 158 |
+
- autoresume
|
| 159 |
+
dataloader:
|
| 160 |
+
_target_: torch.utils.data.DataLoader
|
| 161 |
+
batch_size: 8
|
| 162 |
+
num_workers: 15
|
| 163 |
+
shuffle: ???
|
| 164 |
+
pin_memory: true
|
| 165 |
+
persistent_workers: true
|
| 166 |
+
collate_fn:
|
| 167 |
+
_target_: mfm.data.utils.collate_batch
|
| 168 |
+
_partial_: true
|
| 169 |
+
llm_shape: ${model.denoiser.backbone.llm_shape}
|
| 170 |
+
num_frames: null
|
| 171 |
+
train_split: train_nova
|
| 172 |
+
val_split: unique_test_nova
|
| 173 |
+
data:
|
| 174 |
+
_target_: mfm.data.motion_dataset.MotionDataset
|
| 175 |
+
name: rigplay1-v1
|
| 176 |
+
folder: ${data_root}/${.name}
|
| 177 |
+
data_variation_folder: anims_uniform
|
| 178 |
+
text_embeddings: null
|
| 179 |
+
split: ???
|
| 180 |
+
motion_sampler:
|
| 181 |
+
_target_: mfm.data.motion_sampler.MaxDurationRandomCrop
|
| 182 |
+
max_seconds: 15
|
| 183 |
+
motion_loading_mode: memmap
|
| 184 |
+
text_fields:
|
| 185 |
+
natural_desc_1: 0.125
|
| 186 |
+
natural_desc_2: 0.125
|
| 187 |
+
natural_desc_3: 0.125
|
| 188 |
+
short_description: 0.125
|
| 189 |
+
nv_overview_desc: 0.5
|
| 190 |
+
drop_text_prob: 0.1
|
| 191 |
+
augment_text: false
|
| 192 |
+
aug_text_suffix: _qwen
|
| 193 |
+
aug_text_prob: null
|
| 194 |
+
load_neutral_joints: false
|
| 195 |
+
timelines_mode: false
|
| 196 |
+
timelines_name: null
|
| 197 |
+
dataset_sampler: null
|
| 198 |
+
dataset_sampler_only_at_train: true
|
| 199 |
+
to_canonicalize: false
|
| 200 |
+
randomize_first_heading: true
|
| 201 |
+
loading_mode: motion_only
|
| 202 |
+
skeleton:
|
| 203 |
+
base_name: novaskel30
|
| 204 |
+
folder: ${data.folder}/features/motion_rep/${motion_rep.name}_fps_${fps}/skeleton
|
| 205 |
+
t_pose: standard
|
| 206 |
+
orig_prefix: ''
|
| 207 |
+
name: ${skeleton.orig_prefix}${skeleton.base_name}
|
| 208 |
+
_target_: mfm.core.skeletons.nova.NovaSkeleton30
|
| 209 |
+
motion_rep:
|
| 210 |
+
name: ${skeleton.name}_dual_root_global_joints
|
| 211 |
+
stats:
|
| 212 |
+
_target_: mfm.core.utils.stats.Stats
|
| 213 |
+
folder: ${data.folder}/features/motion_rep/${motion_rep.name}_fps_${fps}/stats
|
| 214 |
+
_target_: mfm.core.motion_reps.dual_root_global_joints.GlobalRootGlobalJoints
|
| 215 |
+
fps: 30
|
| 216 |
+
wandb_run: null
|
| 217 |
+
resume: false
|
| 218 |
+
version: null
|
| 219 |
+
cp: last_epoch
|
| 220 |
+
matmul_precision: high
|
| 221 |
+
seed: 7
|
| 222 |
+
id: ${hydra:runtime.choices.exp}_gpu${trainer.devices}_node${trainer.num_nodes}
|
| 223 |
+
out_dir: /lustre/fsw/portfolios/edgeai/projects/edgeai_a2x/users/odionne/rnms/results/mmm-v6-soma-root-nova-4n8g-ea43dd8-fp32-v1
|
| 224 |
+
run_dir: /lustre/fsw/portfolios/edgeai/projects/edgeai_a2x/users/odionne/rnms/results/mmm-v6-soma-root-nova-4n8g-ea43dd8-fp32-v1/version_0
|
| 225 |
+
pure_testing: false
|
| 226 |
+
config_version: 4
|
| 227 |
+
data_root: /lustre/fsw/portfolios/nvr/projects/nvr_torontoai_humanmotionfm/datasets
|
| 228 |
+
tmr_checkpoints_root: /lustre/fsw/portfolios/nvr/projects/nvr_torontoai_humanmotionfm/models/TMR
|