MoMask Generate (AnimoFlow)
The text-to-motion node that's actually fun to play with
- npz_b64
- native_fps
AnimoFlow_MoMask is the pack's crowd-pleaser. MoMask is the 2023 masked-motion model - it treats human motion like a language of discrete tokens and reconstructs poses from a mask, which gives you two things at once: quality and sampling speed. It's the node the curated text_momask workflow starts with, and if you only install one generator from this pack, this is the one to reach for. It generates solid, prompt-following motion with a handful of knobs that are actually worth turning.
Mechanically it works like the other generators in the pack: an HTTP client that POSTs your prompt to the MoMask container on localhost:8003 and polls /progress/{job_id} until the NPZ pose tensor comes back. The node itself is trivial - the model lives in Docker, which is the whole point of the pack's design. Each research model gets its own container so their conflicting pinned dependencies never meet. MoMask's weights are baked into its image at build time, so unlike MDM there's no manual weight download - ./install.sh up is the whole job.
The inputs that matter
- prompt - multiline English descriptions, same HumanML3D caption style as MDM. "A person walks forward" is the shipped default and works.
- max_frames - 40–196, default 120, step 4. The step-4 constraint is the giveaway that MoMask generates in chunks: RVQ-VAE token sequences live on frame counts divisible by four. Don't fight it.
- cfg - default 5, a middle ground versus MDM's 7.5. MoMask is more instruction-following, so it needs less shoving.
- time_steps - default 10, range 1–30. This is your speed/quality tradeoff. Fewer steps, much faster, slightly rougher motion. 10 is a good default; don't go below ~5 unless you're iterating quickly.
- temperature - default 1.0, range 0.1–2.0. This is the fun one. Below 1.0 the motion gets more deterministic and a bit mechanical; above 1.0 you get wilder, more expressive output. It's the closest thing this pack has to a "chaos" slider, and it's where people spend their time once they've seen the first run.
- seed - default 42, same story as the rest of the pack.
Outputs and the pipeline
npz_b64 (the ANIMOFLOW_NPZ pose tensor) and native_fps (20 for MoMask). From there the standard chain applies: AnimoFlow_Resample up to 30 fps → AnimoFlow_IK to BVH → AnimoFlow_Rig onto a character → AnimoFlow_GLBExport → the 3D viewport. The text_momask workflow in workflows/ is pre-wired, so the drag-and-drop path gets you a playable skeleton on the canvas in one Queue.
Installing and gotchas
Nodes via ComfyUI Manager (search "AnimoFlow") or git clone https://github.com/AnimoFlow/comfyui-animoflow.git into custom_nodes/, then:
cd comfyui-animoflow
./install.sh doctor
./install.sh up # MoMask weights are baked in - no separate weights step
MoMask is CPU-friendly, but it's also the model the README warns gets OOM-killed. The T5 text encoder it loads at first boot takes ~60 seconds, which is longer than the container health-check start period - a container stuck in starting is normal, not broken, give it a minute. If Docker Desktop is dying under load, docker stats shows MoMask as the hungry one and the fix is raising the VM's memory. And one ComfyUI-side quirk: the interactive-widget nodes in this pack have a known shrinking bug under the Nodes 2.0 frontend, but that doesn't touch the generator nodes - MoMask is just sliders and text, which the modern UI handles fine.
Inputs (6)
| Name | Type | Default | Description |
|---|---|---|---|
| prompt | STRING | a person walks forward | — |
| max_frames | INT | 12040–196 | — |
| cfg | FLOAT | 5.01–15 | — |
| seed | INT | 420–2147483647 | — |
| time_steps | INT | 101–30 | — |
| temperature | FLOAT | 1.00.1–2 | — |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| npz_b64 | ANIMOFLOW_NPZ | — |
| native_fps | INT | — |