CoolFace
Modelpublic

ZeyuLing/hftrainer-prism-1.0-humanml3d-iter15000

sourceHugging Faceotherupdated 3mo agoView on Hugging Face
0likes
Model Card

<!-- This model card is synchronized from docs/modelzoo/prism.md by tools/syncmodelzoocards.py. -->

PRISM 1.0 - Iter15000 HumanML3D Checkpoint

PRISM 1.0 is the original PRISM text-to-motion checkpoint used for the no-KT-RoPE / no-KAFS baseline. It is the sequential-RoPE iter_15000 checkpoint from work_dirs/prism_1b_tp2m_multiframe, evaluated on the HumanML3D official test split through the hftrainer PRISM inference stack.

TaskText-to-Motion (T2M)
Bundle / PipelinePrismBundle / PrismPipeline
Checkpoint artifact`ZeyuLing/hftrainer-prism-1.0-humanml3d-iter15000`
Checkpoint typeraw hftrainer checkpoint package (model.pt + meta.pt + reproduction configs)
Motion representationPRISM / VerMo motion_138: [transl_abs(3), transl_rel(3), 22xrot6d], column-major, 30 fps
Text encoderWan2.1 VACE UMT5 text encoder (resolved from shared checkpoints)
VAEwanmo_vae2d_aug
Variantsequential RoPE; no KT-RoPE; no KAFS at inference

Weights

This artifact is a raw checkpoint package rather than a fully self-contained PrismPipeline.from_pretrained directory. It intentionally stores the released train checkpoint and the exact inference config needed to replay it.

ArtifactLocationContentsStatus
PRISM 1.0 HumanML3D iter15000`ZeyuLing/hftrainer-prism-1.0-humanml3d-iter15000`model.pt, meta.pt, model_index.json, and config/*.pypublic Hub checkpoint package
local mirrorcheckpoints/prism/prism_1_0_humanml3d_iter15000same layoutoptional local cache

Download:

bash
huggingface-cli download ZeyuLing/hftrainer-prism-1.0-humanml3d-iter15000 \
    --local-dir checkpoints/prism/prism_1_0_humanml3d_iter15000

The original local checkpoint source is:

text
work_dirs/prism_1b_tp2m_multiframe/checkpoint-iter_15000

meta.pt records global_step=15000 and current_epoch=8.

Inference

Use the packaged config config/prism_1b_tp2m_multiframe_iter15k.py. The key compatibility detail is the VAE: this checkpoint was trained with wanmo_vae2d_aug, not the newer vermo_vae default. Decoding it with the wrong VAE gives invalid motions.

Example single-node generation:

bash
CONFIG=checkpoints/prism/prism_1_0_humanml3d_iter15000/config/prism_1b_tp2m_multiframe_iter15k.py \
CKPT=checkpoints/prism/prism_1_0_humanml3d_iter15000 \
MODE=none \
ANNO=data/annotation/test_hml3d_official272_gtlen.json \
DATA=. \
OUT=outputs/evaluation/t2m/humanml3d_official_test/_runs/prism_1_0_h3d \
NSHARDS=8 SHARD_START=0 NGPU=8 NUM_INFER=50 \
    bash scripts/eval/run_gen_node.sh

For the full HumanML3D test run used in the model card, the repo used the strict official-272 PRISM ablation runner:

bash
VARIANT=iter15k_no_kt_no_kafs \
RUN_ROOT=outputs/evaluation/t2m/humanml3d_official_test/ms272/_suites/prism_kafs_kt_compare_20260621 \
    bash scripts/eval/run_prism_kafs_kt_compare_gen_20260621.sh

Representation

PRISM natively uses motion_138:

text
motion_138 = [transl_abs(3), transl_rel(3), 22 x rot6d_column(132)]

The HumanML3D leaderboard viewer and SMPL mesh comparisons use repacked motion_135:

text
motion_135 = [transl_abs(3), 22 x rot6d_row(132)]

For MotionStreamer-272 evaluation, PRISM outputs are converted through:

text
PRISM raw SMPL params -> motion_135 -> MotionStreamer-272

HumanML3D Evaluation

PRISM 1.0 was evaluated on the HumanML3D official test split with the corrected official-length generation protocol and selected GT captions.

Metric setSamplesR@1R@2R@3FIDMM-DistDiversity
MotionStreamer-272 evaluator39680.7104-0.880522.487416.299427.2828
MotionCLIP-135, L2-normalized legacy protocol39720.77090.88200.92230.40961.069021.9964
MotionCLIP-135, raw/no-L2 protocol40420.59150.71870.7764541.416741.576522.0501

The raw/no-L2 MotionCLIP FID is currently treated as a diagnostic number rather than a final quality ranking. The same PRISM outputs have good retrieval under the L2-normalized protocol, and the raw protocol shows a large embedding-mean shift for several methods.

Physical Metrics

MetricPRISM 1.0
Foot slide4.8457
Float21.4024
Jitter7.4677
Dynamic penetration28.4771

Implementation Notes

  • —Checkpoint identity: work_dirs/prism_1b_tp2m_multiframe/checkpoint-iter_15000, global_step=15000, current_epoch=8.
  • —Version name: PRISM 1.0 means sequential RoPE, no KT-RoPE, and KAFS disabled at inference.
  • —VAE compatibility: use checkpoints/wanmo_vae2d_aug. The newer vermo_vae latent space is incompatible with this checkpoint.
  • —Runtime dependencies: the artifact expects the hftrainer PRISM code, Wan2.1 VACE tokenizer/text encoder, wanmo_vae2d_aug, and SMPL assets to be available locally.
  • —Future packaging: a full PrismPipeline.from_pretrained artifact should split transformer, VAE, tokenizer, text encoder, scheduler, and smpl_pose_processor.json into a self-contained directory. This checkpoint package preserves the exact raw training checkpoint first.