ZeyuLing/Motius-MotionStreamer-HumanML272
<!-- This model card is synchronized from docs/modelzoo/motionstreamer.md by tools/syncmodelzoocards.py. -->
MotionStreamer
Streaming/autoregressive text-to-motion baseline integrated into the motius Model Zoo. Our reproduction is fully self-contained and independent of `ref_repo`: the causal TAE, the LLaMA autoregressive transformer, the per-token diffusion head and the OpenAI-style Gaussian-diffusion sampler are all vendored into motius.models.motion.motionstreamer._ms. The save_pretrained / from_pretrained round-trip is bit-identical (max-abs-diff = 0.0 for both the TAE and the AR weights).
Weights
Current motius artifact (diffusers-style from_pretrained):
Use directly from the Hub:
from motius.pipelines.motionstreamer import MotionStreamerPipeline
pipe = MotionStreamerPipeline.from_pretrained(
"ZeyuLing/Motius-MotionStreamer-HumanML272",
device="cuda",
)
motions = pipe.infer_t2m(["a person walks forward then turns around"], [120]) # list of (T, 272)Complete text-encoder packaging is still pending for the current public MotionStreamer artifact: the TAE/AR weights reload through MotionStreamerPipeline.from_pretrained, but SentenceT5-XXL is currently resolved by name rather than stored inside the repo.
Or download to disk first:
huggingface-cli download ZeyuLing/Motius-MotionStreamer-HumanML272 \
--local-dir checkpoints/motionstreamer/t2m_humanml272Motion representation
MotionStreamer-272, a 272-dim global motion representation at 30 fps (see the 272-dim representation repo). Generation path:
text -> SentenceT5-XXL -> LLaMA AR (CFG, per-token diffusion sampling)
-> latent tokens (dim 16) -> causal TAE decoder (×4 upsample) -> 272-dim motionConvert to/from HumanML3D-263 with motius.motion.representation.convert (hml263_to_motion272, etc.).
Evaluation
Generation pairs mirror MotionStreamer272Evaluator.load_test_pairs() (per (name, caption) on the released humanml3d_272 test split); each prediction is scored against its GT/caption with the persisted MS-272 evaluator. Reproduce with:
# 1) generate (8-GPU sharded)
bash scripts/eval/_run_ms_h3d272_shards.sh
# 2) score
python3 scripts/eval/eval_ms_h3d272.py --pred_dir outputs/evaluation/ms_h3d272/ms_272MotionStreamer-272 evaluator (native space)
The motius MotionStreamer272Evaluator is the same TMR-style evaluator used in the paper (matching feature scale: MM-Dist ≈ 15, Diversity ≈ 27). Paper numbers below are from the ICCV 2025 HumanML3D test-set table.
Full-set generation (7412 pairs, 8 GPUs) is in progress; the `motius` column is filled in once scoring completes.
The GT(real) row already reproduces the MotionStreamer paper Real motion row, confirming the evaluator; the model row follows once generation finishes.
Implementation notes
- Vendored, ref_repo-independent:
motius/models/motionstreamer/_ms/holdstae.py/causal_cnn.py/resnet.py(causal TAE),llama_model.py(LLaMA AR),diffloss.py+diffusion/(per-token diffusion head). Only relative imports were changed from the upstream source. - Text encoder reloaded by name: SentenceT5-XXL is frozen and not duplicated into the artifact (like CLIP for MDM).
- Guidance: classifier-free, default scale
4.0, token unit length4.
Direct Loading
from motius import Pipeline
pipeline = Pipeline.from_pretrained("ZeyuLing/Motius-MotionStreamer-HumanML272")