Saltar al contenido
ModelPublicadoExterno
Descargar

ViBES T2M

research-only

TipoText modelVersiónDcalidad

Fuente del modelo

Tipo
Text model
Tamaño del archivo
821 MB
Versión
vmodel
Actualizado
9 oct 2026
Descargas
18
Fuente
Hugging Face

Descripción de la fuente

ViBES-T2M (Qwen-MoME): frozen-LLM text-to-motion at specialist-SOTA quality

Text-to-motion model in the ViBES AR-MoME (mixture-of-modality-experts) architecture: a fully frozen Qwen3-1.7B text backbone plus a narrow trainable motion expert (~0.27B). The text LLM is untouched — a visibility rule (text attends only to text; motion attends causally to text+motion) makes freezing exact, so the base model's language ability is fully preserved.

Results (HumanML3D test, Guo et al. protocol, 20 replications)

ModelParams (trainable)Frozen text LLMR@1R@3FID
T2M-GPTfullno0.4920.6790.141
MoMaskfullno0.5210.8070.045
ViBES-T2M (this)0.27Byes0.4890.7690.265

R@1 on par with T2M-GPT while keeping the entire conversational LLM intact.

Demos

GT | ViBES-T2M (frozen 1.7B) | ViBES-9B:

"a man walks forward, then squats to pick something up with both hands, stands back up, and resumes walking"

demo1

"the man runs backwards"

demo2

Files

  • vibes_t2m_qwen_mome_1p7b.pt — motion-expert weights (mot_state), training config, metrics. The frozen base is downloaded from Qwen/Qwen3-1.7B at load time.
  • modeling_qwen_mome.py — self-contained model definition (needs transformers with Qwen3).

Motion tokenizer

MotionGPT's public HumanML3D VQ-VAE (motiongpt_s3_h3d.tar, 512 codes, 4x temporal downsample, 263-D HumanML3D features). Motion vocab = 514 (512 codes + BOS/EOS). Decode generated codes with that VQ-VAE + the Comp_v6_KLD01 mean/std.

Usage

import torch
from modeling_qwen_mome import QwenMoMEForT2M

ck = torch.load("vibes_t2m_qwen_mome_1p7b.pt", map_location="cpu", weights_only=False)
model = QwenMoMEForT2M("Qwen/Qwen3-1.7B", d_mot=512, ffn_mot=4096, mot_vocab=514)
model.load_state_dict(ck["mot_state"], strict=False)   # base.* comes from the HF download
model = model.cuda().eval()

from transformers import AutoTokenizer
tok = AutoTokenizer.from_pretrained("Qwen/Qwen3-1.7B")
text = "Give me a gesture that corresponds to a person walks forward then squats down"
ids = torch.tensor([tok(text, add_special_tokens=False)["input_ids"]]).cuda()
codes = model.generate_motion(ids, max_new=60, greedy=False,
                              temperature=0.7, top_p=0.9, cfg_scale=2.5)
# codes: MotionGPT-512 VQ indices -> decode with motiongpt_s3_h3d.tar to 263-D motion

Recommended decoding: sampling temperature=0.7, top_p=0.9 with classifier-free guidance cfg_scale 2.5–3 (the model was trained with 10% caption dropout).

Training recipe (for reproduction)

Frozen Qwen3-1.7B; per-layer motion expert (q/k/v/o + q/k-norm + RMSNorms + SwiGLU 512→4096), own 514-token embedding and untied head; plain-arange positions; motion-only shifted CE; bs 16, lr 2e-4 cosine, wd 0.05, clip 1.0, caption-dropout 0.1; peak at ~10k steps (select checkpoints by generation quality on the official val split, not teacher-forced loss). Plain PyTorch bf16 (no DeepSpeed).

License

Research use only. The frozen backbone follows the Qwen3 license; the motion tokenizer follows MotionGPT's license; HumanML3D data terms apply.

Part of the ViBES project (speech-language-behavior modeling).

Fuentes

1 fuente
Hugging FacePrincipalVersión 1a251012b91ec1e2ff1002531f6c96a53a93dd57
huggingface.co/JuzeZhang/ViBES-T2M/tree/1a251012b91ec1e2ff1002531f6c96a53a93dd57

Verificado 15 sept

Artefactos del modelo

1 artefacto

model.safetensors

safetensors · 821 MB · SHA-256 4c7e5daa5e77…3394 · Hugging Face

Descargar

Extractos de fuentes

2 extractos

--- license: other license_name: research-only tags: - text-to-motion - motion-generation - humanml3d - mixture-of-experts language: en --- # ViBES-T2M (Qwen-MoME): frozen-LLM text-to-motion at specialist-SOTA quality Text-to-motion model in the ViBES AR-MoME (mixture-of-modality-experts) architecture: a **fully frozen Qwen3-1.7B** text backbone plus a narrow trainable motion expert (~0.27B). The text LLM is untouched — a visibility rule (text attends only to text; motion attends causally to text+motion) makes freezing exact, so the base model's language ability is fully preserved. ## Results (HumanML3D test, Guo et al. protocol, 20 replications) | Model | Params (trainable) | Frozen text LLM | R@1 | R@3 | FID | |---|---|---|---|---|---| | T2M-GPT | full | no | 0.492 | 0.679 | 0.141 | | MoMask | full | no | 0.521 | 0.807 | 0.045 | | **ViBES-T2M (this)** | **0.27B** | **yes** | **0.489** | **0.769** | **0.265** | R@1 on par with T2M-GPT while keeping the entire conversational LLM intact. ## Demos GT | ViBES-T2M (frozen 1.7B) | ViBES-9B: *"a man walks forward, then squats to pick something up with both hands, stands back up, and resumes walking"* ![demo1](assets/demo_008463.gif) *"the man runs backwards"* ![demo2](assets/demo_009613.gif) ## Files - `vibes_t2m_qwen_mome_1p7b.pt` — motion-expert weights (`mot_state`), training config, metrics. The frozen base is downloaded from `Qwen/Qwen3-1.7B` at load time. - `modeling_qwen_mome.py` — self-contained model definition (needs `transformers` with Qwen3). ## Motion tokenizer MotionGPT's public HumanML3D VQ-VAE (`motiongpt_s3_h3d.tar`, 512 codes, 4x temporal downsample, 263-D HumanML3D features). Motion vocab = 514 (512 codes + BOS/EOS). Decode generated codes with that VQ-VAE + the Comp_v6_KLD01 mean/std. ## Usage ```python import torch from modeling_qwen_mome import QwenMoMEForT2M ck = torch.load("vibes_t2m_qwen_mome_1p7b.pt", map_location="cpu", weights_only=False) model = QwenMoMEForT2M("Qwen/Qwen3-1.7B", d_mot=512, ffn_mot=4096, mot_vocab=514) model.load_state_dict(ck["mot_state"], strict=False) # base.* comes from the HF download model = model.cuda().eval() from transformers import AutoTokenizer tok = AutoTokenizer.from_pretrained("Qwen/Qwen3-1.7B") text = "Give me a gesture that corresponds to a person walks forward then squats down" ids = torch.tensor([tok(text, add_special_tokens=Fals...

Source context: 18 downloads · 0 likes · Repo JuzeZhang/ViBES-T2M