ComfyUI Node

Kimodo Sampler

The node that actually makes the motion happen

By GuardSkill·Created a day ago·Updated a day ago· 0
Kimodo Sampler
  • model
  • conditioning
  • motion
duration5.0
seed42
num_samples1
diffusion_steps100
constraints_json

This is the heart of the Kimodo Motion Bridge pack: it takes the conditioning from Kimodo Text Encode and the model from Kimodo Load Model and runs the actual diffusion sampling that produces the motion. Everything downstream - previews, NPZ, BVH, Mixamo FBX, Unity, Rive - is just moving what this node hands you. If you use one node in this pack, it's the chain that ends here.

The inputs that matter

It's a diffusion sampler, so the knob set will feel familiar:

  • duration - seconds per segment, 0.5–30. Default 5.0. If your prompt had three period-separated segments, each one gets 5 seconds, so the clip is 15s. This trips people up constantly.
  • seed - reproducibility. Same seed + same prompt + same everything = same motion.
  • num_samples - 1–16. Generates a batch of variations from one prompt in a single run, which is your variation knob.
  • diffusion_steps - 10–500, default 100. More is cleaner and slower; this is the quality/speed dial.
  • constraints_json (optional) - path to a JSON file of kinematic constraints: pose keyframes, end-effector positions, 2D paths. Leave blank unless you know you need them; it's the pack's power-user path.

Inputs: model and conditioning. Output: one motion object (type KIMODO_MOTION) - a bundle holding joint positions [T, J, 3], global rotation matrices [T, J, 3, 3], root trajectory, foot-contact labels, and heading. That single object feeds every preview and exporter in the pack.

How the sampling actually works

Under the hood it's Kimodo's diffusion model denoising over diffusion_steps iterations to produce frames at the model's native FPS, with your prompt segments stitched into one timeline (multi-prompt segments get smooth transitions handled by the model). Worth knowing: this node deliberately runs without post-processing - foot-skate cleanup was split out into Kimodo Post Process, which you optionally chain after this. G1 (robot) skeletons don't benefit from that cleanup anyway.

Install and first run

Node ships in the whole pack. ComfyUI Manager, search Kimodo Motion Bridge, or:

cd ComfyUI/custom_nodes
git clone https://github.com/GuardSkill/ComfyUI-Kimodo-Bridge.git
cd ComfyUI-Kimodo-Bridge
python -m pip install -r requirements.txt
python install.py

Restart ComfyUI, node lives under Kimodo. Wire Load Model → Text Encode → Sampler, hook a Kimodo Preview onto motion, and queue.

Where people get burned

  • Thinking duration is the whole clip. It's per segment. Prompt with two sentences and leave duration at 5 → you get 10s.
  • VRAM. Sampling is where the ~17GB appetite of this model shows up in practice. If it OOMs, lower num_samples to 1 first - batches multiply memory - before you touch steps.
  • Foot sliding out of the box. The sampler doesn't clean up foot contact; that's by design. If your character's feet skate across the floor, add Kimodo Post Process rather than blaming the sampler.
  • First queue is slow. Model download + load happens on the first run, so don't judge speeds on queue #1.

Start at 100 steps, one sample. Find a motion you like, then raise num_samples to explore, or push steps only if quality needs it.

CategoryKimodo

Inputs (7)

NameTypeDefaultDescription
modelKIMODO_MODEL
conditioningKIMODO_COND
durationFLOAT5.00.5–30Duration in seconds per segment
seedINT420–4294967295
num_samplesINT11–16
diffusion_stepsINT10010–500
constraints_jsonoptSTRINGPath to constraints JSON file (optional)

Outputs (1)

NameTypeDescription
motionKIMODO_MOTION