Nodes/Kimodo Motion Bridge/Kimodo Post Process
ComfyUI Node

Kimodo Post Process

The foot-skate eraser (when the C++ gods smile on you)

By GuardSkill·Created a day ago·Updated a day ago· 0
Kimodo Post Process
  • motion
  • motion
root_margin0.04

Raw Kimodo output has a classic procedural-animation problem: the character's feet slide on the floor like they're on ice skates during steps. Kimodo Post Process is the cleanup pass that fixes that - it takes a motion from Kimodo Sampler, corrects foot contacts so the feet plant properly, and hands back a cleaned motion you feed into previews and exporters. It's optional but recommended for anything humanoid you plan to export, and it sits between the sampler and the rest of your graph.

What it does

The mechanism is foot-contact cleanup: Kimodo already predicts which frames each foot is planted (foot_contacts labels), and this node adjusts the root and limb motion so planted feet stop drifting - the correction is constrained so it doesn't fight your kinematic constraints (if you passed any to the sampler, they're carried along and respected). You get one real knob:

  • root_margin - root correction margin in meters, default 0.04. It's the tolerance for how much root movement is allowed before correction kicks in; the default is sensible, nudge it up if the fix itself looks stiff or down if feet still slide.

Input: motion. Output: motion, same KIMODO_MOTION type - so it slots inline between the sampler and anything downstream.

Two skeletons get skipped automatically: the G1 robot (no foot-skate concept worth correcting) and anything where the model's skeleton info isn't available - in those cases the node quietly returns the motion untouched.

The catch: it needs the C++ module

This is the fiddly node of the pack, and the README is honest about it. The cleanup runs through motion_correction, a compiled C++ module. The sampler deliberately runs without it; Post Process needs it installed. If it's missing, the node catches the error and returns your uncorrected motion - no crash, but no fix either, which can look like "Post Process does nothing."

Two ways to get it:

# Option A: prebuilt, Windows + Python 3.11 only
#   copy prebuilt/win_amd64_cp311 into your Python site-packages
#   (or add that folder to PYTHONPATH)

# Option B: build from source (any platform, needs CMake 3.15+ and a C++17 compiler)
cd ComfyUI/custom_nodes/ComfyUI-Kimodo-Bridge/kimodo/MotionCorrection
pip install -e .
python -c "import motion_correction; print('OK')"

That "build from source" path is where people hit the classic dependency whack-a-mole - CMake versions, MSVC vs MinGW on Windows, missing compilers. If pip install -e . fails on the C++ extension, that's the culprit, not your ComfyUI install. The original Kimodo repo's compile pain was a recurring community complaint, so expect the same here; the prebuilt Windows binary is there precisely to dodge it.

Install and usage

Part of the Kimodo Motion Bridge pack (Manager → search the title, or git clone + pip install -r requirements.txt + python install.py, then restart). Node appears under Kimodo.

Graph: Load Model → Text Encode → Sampler → Post Process → Preview / Export. If you skip it, motion still works - you just get the skating artifacts in BVH, FBX, and Unity output, which you'll then fight in Blender or Unity instead. Worth the compile.

CategoryKimodo

Inputs (2)

NameTypeDefaultDescription
motionKIMODO_MOTION
root_marginoptFLOAT0.040–1Root correction margin in meters

Outputs (1)

NameTypeDescription
motionKIMODO_MOTION