Nodes/ComfyUI MotionDiff/MotionGPT Text2Motion
ComfyUI Node

MotionGPT Text2Motion

MotionGPT Text2Motion

By Fannovel16·Created 3 years ago·Updated 2 years ago· 212
MotionGPT Text2Motion
  • mgpt_model
  • motion_data
motion_length196
seed0
textmake the person jump and turn around

MotionGPT Text2Motion is where the pack's language-model approach to motion actually pays off. Feed it a sentence like "make the person jump and turn around" and it returns a motion sequence - an autoregressive GPT generating joint positions the way a chatbot generates words. It's the mGPT half of the pack, and its whole appeal is that you can prompt it more like you'd talk to an LLM than like you're writing dataset captions. The output plugs straight into Smplify Motion Data → render, or into the Motion Data Visualizer for a quick look.

If the diffusion path (MotionDiff Loader + MotionCLIP Text Encode + MotionDiff Simple Sampler) is the careful, controllable route, this is the fast, slightly more playful one. Both end at the same MOTION_DATA doorstep, so you can even use them interchangeably downstream.

How it works

The node takes your prompt, runs it through the model's placeholder-formatting (it wraps the text into the motion-prompt template the model was trained with), and lets the transformer generate a joint sequence autoregressively. The seed input controls the randomness, so you can lock a seed and explore variations by nudging it. The output MOTION_DATA contains raw joints, which the rest of the pipeline treats the same as diffusion output.

The inputs that matter

  • mgpt_model - the model from MotionGPT Model Loader.
  • text - the prompt. Default: "make the person jump and turn around". Unlike the diffusion models' dataset-style captions, mGPT tolerates (and enjoys) more natural phrasing - you can ask for a sequence of actions in a sentence.
  • motion_length - target frames, default 196, max 196. Fair warning from the code: the actual length is largely determined by the prompt, up to the 196 cap, so treat this as an upper bound rather than a precise count.
  • seed - sampling seed for reproducible results.

Output: MOTION_DATA, wired into Smplify Motion Data or Motion Data Visualizer.

Installation

Part of Fannovel16/ComfyUI-MotionDiff. Install via ComfyUI Manager (search "ComfyUI MotionDiff") or clone into ComfyUI/custom_nodes and install requirements, then restart. mGPT adds spacy, bert-score, omegaconf and pytorch_lightning to the already-heavy install, and the model checkpoint auto-downloads on first load from the Kijai/AnimationGPT_pruned repo.

Gotchas

Prompting is the real skill here. mGPT was trained on short action descriptions, so "a person walks forward then does a cartwheel" beats vague vibe prompts, and multi-action sequences in one sentence usually work better than ultra-minimal captions. The motion_length lie is the other gotcha - if you ask for 196 frames but the model generates less, it's not broken, the prompt just produced a shorter motion; rephrase to include more action. And because the model is autoregressive, a bad early token can derail the whole sequence - bump the seed a few times before judging it.

CategoryMotionDiff/mGPT

Inputs (4)

NameTypeDefaultDescription
mgpt_modelMGPTMODEL
motion_lengthINT1961–196
seedINT00–18446744073709550000
textSTRINGmake the person jump and turn around

Outputs (1)

NameTypeDescription
motion_dataMOTION_DATA