CoolFace
Modelpublic

ZeyuLing/Motius-MotionGPT-HumanML3D

sourceHugging Faceupdated 2mo agoView on Hugging Face
0likes
Model Card

<h1 align="center">MotionGPT Model Card</h1>

<p align="center"> <strong>Motion-language generation with discrete motion tokens, packaged as a Motius pipeline.</strong> </p>

<p align="center"> <a href="https://arxiv.org/abs/2306.14795">Paper</a> | <a href="https://motion-gpt.github.io/">Project Page</a> | <a href="https://github.com/OpenMotionLab/MotionGPT">Original GitHub</a> | <a href="https://huggingface.co/ZeyuLing/Motius-MotionGPT-HumanML3D">Motius Checkpoint</a> </p>

MotionGPT is the motion-language baseline from MotionGPT: Human Motion as a Foreign Language (Jiang et al., NeurIPS 2023). This Motius release packages the HumanML3D motion tokenizer, FLAN-T5-base-style language model with motion tokens, HumanML3D statistics, and task-facing text-to-motion / motion-to-text pipeline methods without requiring the original checkout.

Preview

HumanML3D SampleInput TextSMPL Preview
001840someone executes a roundhouse kick with their left foot.MotionGPT HumanML3D 001840 SMPL demo
004545a person jumping while raising both hands and moving apart legs.MotionGPT HumanML3D 004545 SMPL demo
006944a person moves their right hand left, right, up, and down.MotionGPT HumanML3D 006944 SMPL demo

512px / 30fps GIF previews rendered from released HumanML3D test outputs.

Release Snapshot

ItemValue
MethodMotionGPT, language modeling over text and motion tokens
TasksT2M, M2T
VenueNeurIPS 2023
Motion representationHumanML3D-263, 20 fps
Language backboneFLAN-T5-base-style encoder-decoder with motion tokens
Motion tokenizerVQ-VAE, 512-code codebook
Checkpoint`ZeyuLing/Motius-MotionGPT-HumanML3D`
Pipelinemotius.pipelines.motiongpt.MotionGPTPipeline

The checkpoint artifact contains motiongpt_s3_h3d.tar, assets/meta/mean.npy, assets/meta/std.npy, deps/flan-t5-base/, and model_index.json.

Usage

python
from motius.pipelines.motiongpt import MotionGPTPipeline

pipe = MotionGPTPipeline.from_pretrained(
    "ZeyuLing/Motius-MotionGPT-HumanML3D",
    bundle_kwargs={"local_files_only": False},
    device="cuda",
)

motions = pipe.infer_t2m(
    ["a person walks forward then sits down"],
    [120],
)

motions is a list of NumPy arrays. Each array has shape (T, 263) and is denormalized to HumanML3D physical scale. The same pipeline also exposes infer_m2t for captioning denormalized HumanML3D-263 motions.

python
caption = pipe.infer_m2t(
    [motions[0]],
    lengths=[len(motions[0])],
)[0]

Evaluation Results

Protocol: HumanML3D Official uses the selected-caption HumanML3D test protocol. MotionStreamer Evaluator and Motius Joint-Position Evaluator are computed after converting outputs through the shared SMPL-22 evaluation bridge. For FID and MM-Dist, lower is better.

EvaluatorVariantSamplesR@1R@2R@3FIDMM-DistDiversityStatus
HumanML3D OfficialDefault3,9620.4340.6000.6860.1563.9209.747Measured
MotionStreamer EvaluatorDefault4,0420.4940.6350.69423.68119.67825.541Measured
Motius Joint-Position EvaluatorDefault4,0340.4320.5800.662188.12538.45356.885Measured

Motion-to-Text

ProtocolSamplesBLEU-4ROUGE-LCIDErBERT F1R@1R@2R@3Matching
HumanML3D M2T4,400--------

Motion Representation

MotionGPT generates HumanML3D-263 features at 20 fps. Per frame:

SliceDimMeaning
root_rot_vel1root angular velocity
root_lin_vel2root linear velocity in the horizontal plane
root_y1root height
ric_data63local joint positions
rot_data126local joint rotations in continuous 6D format
local_vel66local joint velocities
foot_contact4binary foot-contact labels

The VQ-VAE converts normalized HumanML3D features into discrete motion tokens. MotionGPT then treats those tokens as a language vocabulary item alongside text tokens.

Motius Components

ComponentPath
Pipelinemotius.pipelines.motiongpt.MotionGPTPipeline
Bundlemotius.models.motiongpt.MotionGPTBundle
Runtimemotius.models.motiongpt.network.mGPT.archs

Only the inference-time MotionGPT modules required by the bundle are included in this public package.

Citation

bibtex
@inproceedings{jiang2023motiongpt,
  title={MotionGPT: Human Motion as a Foreign Language},
  author={Jiang, Biao and Chen, Xin and Liu, Wen and Yu, Jingyi and Yu, Gang and Chen, Tao},
  booktitle={Advances in Neural Information Processing Systems},
  year={2023}
}

Direct Loading

python
from motius import Pipeline

pipeline = Pipeline.from_pretrained("ZeyuLing/Motius-MotionGPT-HumanML3D")