Motion flow demo

Text-to-motion flow models. Generate a clip from a prompt, regenerate the middle of an existing clip while keeping its ends exact, drive the upper and lower body from two different prompts, or make the figure pass through a pose you author by dragging joints.

interactive demo awaiting GPU 3 flow models HumanML3D · 20 fps · 22 joints checkpoints ↗

What it produces

Every clip below was generated by the models in this repository and rendered with the same rasteriser the app ships. Nothing is hand-animated.

A skeleton walking forward and turning around

Generate
“a person walks forward and then turns around”

120 frames from the latent flow model at 50 ODE steps. Bone-length error 0.0 mm — the constraint projection makes it exact rather than approximately right.

A skeleton clip whose middle has been regenerated, with kept frames drawn in green

In-betweening
Keep both ends, regenerate the middle

Green bones are frames taken from the reference clip. They are written back at every integration step, so they are exact, not approximated toward.

A skeleton walking forward while waving both hands

Compose
“waves both hands” + “walks forward”

Two prompts, one body. Blending the finished trajectories keeps both the arms and the full walk; blending the velocity fields instead keeps the walk and loses the arms.

The models

Three flow models over the same HumanML3D representation, differing in what they integrate.

ModelIntegratesWhy it is here
LFM the 49×256 RVQ-VAE latent The main latent model.
CDFM the 196×263 representation directly Frame and joint masks are exact in this space, so it drives in-betweening, composition and pose keyframes.
Reflow the same latent space, rectified Usable at 1–4 steps. Always sampled at guidance 1.0 — its training pairs already had guidance applied, so guiding again double-applies it.

Why this page is static

The interactive app is built and working; it just has nowhere to run yet. The full Gradio app is in this repository, written for ZeroGPU — @spaces.GPU on every sampling call, checkpoints placed on cuda at module scope, weights pulled from the model repo at startup. Hosting it needs GPU hardware this account does not currently have. A community grant has been requested; when it lands, sdk: in the README flips from static to gradio and the demo goes live at this same URL.

Run it yourself

Everything needed is public. A CUDA GPU is recommended but not required.

# the app, the weights and the dataset statistics
git clone https://huggingface.co/spaces/Anonymousresearch101/motion-flow-demo
cd motion-flow-demo

# torch first, matching your CUDA — see README section 1.1
pip install torch --index-url https://download.pytorch.org/whl/cu126
pip install -r requirements-local.txt

# pulls the checkpoints from the model repo on first run
MOTION_WEIGHTS_REPO=Anonymousresearch101/motion-flow-weights python app.py
Meshes are not in this build. The SMPL body model is not redistributable, so neither this Space nor the checkpoint repo contains it. Register at smpl.is.tue.mpg.de, drop SMPL_NEUTRAL.npz into smpl_models/, and run app_streamlit.py instead — that version adds mesh fitting, mesh GIFs and .obj / SMPL-parameter exports on top of everything shown here.