Kimodo Generate (AnimoFlow)
NVIDIA's text-to-motion model, GPU-only and worth it
- bvh_b64
- soma_raw_b64
- npz_b64
- native_fps
AnimoFlow_Kimodo is the pack's flagship and its exception. Every other generator in AnimoFlow runs on CPU; Kimodo - NVIDIA's 2026 controllable human-motion model - is GPU-only by design. When the pack was announced, the community reaction to Kimodo was a mix of excitement and "17GB of VRAM for the text encoder, really?" - and this node is how that model ends up in a ComfyUI graph instead of on a research page. If you have a modern NVIDIA card, it's the highest-quality output in the pack. If you don't, this node just errors, and that's correct behavior - it's not even started without --gpu.
It's also the most controllable generator here. Beyond the text prompt, Kimodo accepts a root2d_json - a sparse or dense root trajectory constraint - so you get the same "draw the path" power as priorMDM, but baked into the model's native output rather than a post-hoc prior. That's where the draw-pad nodes in this pack (AnimoFlow_DrawTrajectory for a freehand curve, AnimoFlow_DrawWaypoints for numbered pins) come in: their root2d_json output wires straight into this node's optional input.
Inputs that matter
- prompt - multiline English, default "a person walks forward".
- duration - 1–30 seconds (default 5). Kimodo is the one generator that thinks in seconds rather than frames, because it generates at 30 fps natively, not 20 like the HumanML3D-lineage models. 5 seconds = 150 frames.
- model - two choices:
Kimodo-SOMA-RP-v1andKimodo-SOMA-SEED-v1. SOMA is NVIDIA's skeleton format; RP and SEED are two checkpoints. Start with RP, which is the reference-quality one. - output -
BVH (22-joint rig),BVH (native SOMA), orSOMA raw. This is genuinely useful: you can skip the whole NPZ→IK stage by asking for the rigged BVH directly. The 22-joint rig drops you intoAnimoFlow_Rigwith one less node in the chain. - steps - 10–200, default 100. Standard diffusion sampling steps.
- cfg_text and cfg_constraint - both default 2. Two separate guidance scales: one for the prompt, one for how hard to obey your trajectory constraint. Bump
cfg_constraintwhen the character isn't following your drawn path tightly enough. - seed - default -1 means random each run; set a positive number for reproducibility.
Outputs
bvh_b64 (an ANIMOFLOW_BVH), soma_raw_b64 (ANIMOFLOW_SOMA), npz_b64 (ANIMOFLOW_NPZ), and native_fps (30). Wire bvh_b64 into AnimoFlow_Rig and you're on the standard export path; the text_kimodo_video workflow drives a full pose-conditioned Wan 2.2 Fun-Control video generation off this node.
Install and the GPU gotchas
Everything in this pack needs the Docker backend, but Kimodo has three extra requirements on top:
cd comfyui-animoflow
./install.sh doctor
./install.sh up --gpu # the --gpu flag is what starts the kimodo container
First, it's behind a GPU compose profile - ./install.sh up alone won't start it. Second, the weights are pulled from Hugging Face on first container start, which needs an HF_TOKEN in .env. Third, the NVIDIA container runtime must actually work - nvidia-smi inside docker run --gpus all has to succeed. First start takes around five minutes. The "container unreachable at http://localhost:8005" error on a CPU machine isn't a mystery: Kimodo simply isn't started there. The README's fallback advice - use MDM, priorMDM, or MoMask on CPU - is the correct answer, not a workaround.
Inputs (9)
| Name | Type | Default | Description |
|---|---|---|---|
| prompt | STRING | a person walks forward | — |
| duration | FLOAT | 5.01–30 | — |
| model | COMBO | 2 options: Kimodo-SOMA-RP-v1, Kimodo-SOMA-SEED-v1 | |
| output | COMBO | 3 options: BVH (22-joint rig), BVH (native SOMA), SOMA raw | |
| steps | INT | 10010–200 | — |
| cfg_text | FLOAT | 2.00.5–10 | — |
| cfg_constraint | FLOAT | 2.00.5–10 | — |
| seed | INT | -1-1–2147483647 | — |
| root2d_jsonopt | STRING | — |
Outputs (4)
| Name | Type | Description |
|---|---|---|
| bvh_b64 | ANIMOFLOW_BVH | — |
| soma_raw_b64 | ANIMOFLOW_SOMA | — |
| npz_b64 | ANIMOFLOW_NPZ | — |
| native_fps | INT | — |