ONNX
GGUF
English
text-to-motion
motion-generation
animation
3d-animation
character-animation
skeletal-animation
game-development
flow-matching
cpu-inference
qtmesheditor
feature-extraction
Instructions to use fernandotonon/QtMeshEditor-t2m with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- llama.cpp
How to use fernandotonon/QtMeshEditor-t2m with llama.cpp:
Install (macOS, Linux)
curl -LsSf https://llama.app/install.sh | sh # Start a local OpenAI-compatible embeddings server: llama serve -hf fernandotonon/QtMeshEditor-t2m:Q8_0 --embeddings
Install from WinGet (Windows)
winget install llama.cpp # Start a local OpenAI-compatible embeddings server: llama serve -hf fernandotonon/QtMeshEditor-t2m:Q8_0 --embeddings
Build from source code
git clone https://github.com/ggml-org/llama.cpp.git cd llama.cpp cmake -B build cmake --build build -j --target llama-app # Start a local OpenAI-compatible embeddings server: ./build/bin/llama serve -hf fernandotonon/QtMeshEditor-t2m:Q8_0 --embeddings
- Llama new
- LM Studio
- Jan
- Ollama
How to use fernandotonon/QtMeshEditor-t2m with Ollama:
ollama run hf.co/fernandotonon/QtMeshEditor-t2m:Q8_0
- Unsloth Desktop
- Docker Model Runner
How to use fernandotonon/QtMeshEditor-t2m with Docker Model Runner:
docker model run hf.co/fernandotonon/QtMeshEditor-t2m:Q8_0
- Lemonade
How to use fernandotonon/QtMeshEditor-t2m with Lemonade:
Pull the model
# Download Lemonade from https://lemonade-server.ai/ lemonade pull fernandotonon/QtMeshEditor-t2m:Q8_0
Run and chat with the model
lemonade run user.QtMeshEditor-t2m-Q8_0
List all available models
lemonade list
- Atomic Chat
Experimental from-scratch text-to-motion model (#411): CMU+Quaternius CC0, ONNX
Browse files- README.md +53 -0
- t2m-vocab.json +1 -0
- t2m.onnx +3 -0
README.md
ADDED
|
@@ -0,0 +1,53 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
---
|
| 2 |
+
license: cc0-1.0
|
| 3 |
+
tags:
|
| 4 |
+
- text-to-motion
|
| 5 |
+
- skeletal-animation
|
| 6 |
+
- qtmesheditor
|
| 7 |
+
- experimental
|
| 8 |
+
---
|
| 9 |
+
|
| 10 |
+
# QtMeshEditor Text-to-Motion (experimental, #411)
|
| 11 |
+
|
| 12 |
+
A small, **experimental** from-scratch text-to-motion model for
|
| 13 |
+
[QtMeshEditor](https://github.com/fernandotonon/QtMeshEditor). Given a text
|
| 14 |
+
prompt (an action keyword), it generates a 40-frame, 22-joint **canonical**
|
| 15 |
+
skeletal clip that QtMeshEditor retargets onto an arbitrary humanoid rig.
|
| 16 |
+
|
| 17 |
+
## Status: experimental
|
| 18 |
+
|
| 19 |
+
Render-verified quality is **action-dependent**: locomotion (e.g. `walk`) is
|
| 20 |
+
coherent; gestures (`wave`, `run`) can drift in the last few frames. The shipped
|
| 21 |
+
default in QtMeshEditor is the deterministic **template-clip retarget**; this
|
| 22 |
+
model is an opt-in (`--model` / GUI checkbox / MCP `model:true`) that **falls
|
| 23 |
+
back to the template** automatically when unavailable or out of vocabulary.
|
| 24 |
+
|
| 25 |
+
## Training data — permissive only
|
| 26 |
+
|
| 27 |
+
Trained from scratch on **clean, dynamic, single-action windows** mined from:
|
| 28 |
+
- **CMU MoCap** (commercial-OK) — the bulk.
|
| 29 |
+
- **Quaternius Universal Animation Library** (CC0) — supplementary.
|
| 30 |
+
|
| 31 |
+
AMASS / HumanML3D / KIT-ML were **excluded** (non-commercial). Idle/near-static
|
| 32 |
+
and multi-action-labelled windows were filtered out (they dominated the raw set
|
| 33 |
+
and caused pose collapse).
|
| 34 |
+
|
| 35 |
+
## Architecture
|
| 36 |
+
|
| 37 |
+
6D-rotation representation, cross-attention decoder with a delta-integration
|
| 38 |
+
(cumsum) head for temporal continuity, CVAE latent, balanced sampling. ~7.6M
|
| 39 |
+
params. Exports to ONNX (one forward pass).
|
| 40 |
+
|
| 41 |
+
## I/O contract
|
| 42 |
+
|
| 43 |
+
```
|
| 44 |
+
input "tokens" float32 [1, V] one-hot over the fixed action vocab (see t2m-vocab.json)
|
| 45 |
+
input "seed" float32 [1, Z] latent (zeros = mean clip)
|
| 46 |
+
output "motion" float32 [1, T, C] C = 22*10 per-joint [tx,ty,tz, qx,qy,qz,qw, sx,sy,sz]
|
| 47 |
+
```
|
| 48 |
+
|
| 49 |
+
`t2m-vocab.json` ships the `{vocab, Z, T, C, J, joints}` the host needs to build
|
| 50 |
+
the input and interpret the output.
|
| 51 |
+
|
| 52 |
+
Vocabulary: walk, run, jog, jump, dance, march, climb, kick, punch, sit,
|
| 53 |
+
stretch, throw, wave, boxing, turn, forward.
|
t2m-vocab.json
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
{"vocab": ["walk", "run", "jog", "jump", "dance", "march", "climb", "kick", "punch", "sit", "stretch", "throw", "wave", "boxing", "turn", "forward"], "Z": 24, "T": 40, "C": 220, "J": 22, "joints": ["hip", "abdomen", "chest", "neck", "neck1", "head", "rcollar", "rshoulder", "relbow", "rhand", "lcollar", "lshoulder", "lelbow", "lhand", "rbuttock", "rhip", "rknee", "rfoot", "lbuttock", "lhip", "lknee", "lfoot"]}
|
t2m.onnx
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:41da066e3ce127a4985a1b2aff2ccc0987153ff51904d1f5422cf35c16b9d704
|
| 3 |
+
size 17569325
|