Nodes/Kimodo Motion Bridge/Kimodo Export BVH
ComfyUI Node

Kimodo Export BVH

The one format every animation tool already speaks

By GuardSkill·Created a day ago·Updated a day ago· 0
Kimodo Export BVH
  • motion
  • file_path
filename_prefixkimodo_motion
sample_index0

BVH is the lingua franca of motion capture data - Blender, Maya, MotionBuilder, and a dozen other tools open it without ceremony. Kimodo Export BVH takes the generated motion from Kimodo Sampler and writes a BVH file you can drop straight into your animation pipeline. It's the simplest export in the pack, and for many people it's the only one they need.

Inputs and output

  • motion - from the sampler (or Post Process).
  • filename_prefix - default kimodo_motion.
  • sample_index - which sample from a batch to export (0-indexed).

It writes to ComfyUI's output folder with a timestamp + UID suffix and returns the file_path string. Wire that string into any node that displays text, or just grab the file from your output directory.

The mechanism - and the one rule you must remember

Under the hood it converts the motion's global rotation matrices to local rotations (BVH is a hierarchical local-rotation format), takes the root trajectory for translation, and writes it at the model's native FPS. The critical constraint, stated plainly in the node source and README: BVH export only supports SOMA skeletons. SOMA is the default human skeleton (Kimodo-SOMA-RP-v1 or -SEED), so if you stayed on the default model you're fine. If you generated with the SMPLX or G1 robot variants, this node prints a warning and returns an empty path - those skeletons have no BVH path in this pack, so don't fight it; use NPZ or switch models.

Install

Part of Kimodo Motion Bridge - ComfyUI Manager, search the pack title, 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 under Kimodo.

Using the file

Drop the .bvh into Blender via File → Import → Motion Capture (.bvh), and you'll see a stick figure doing your text prompt. From there it's the usual BVH dance: it's raw skeleton motion, so you'll be retargeting it onto a real character mesh in Blender or via Mixamo's auto-rigger. That's expected - BVH is the neutral exchange format, not the final render.

Caveats

  • Retargeting is on you. Unlike the Mixamo FBX node, there's no character retargeting built in - BVH just captures the SOMA skeleton's motion. If your target is a specific game-ready character, the Kimodo Export FBX (Mixamo) node skips most of that work.
  • Quality in equals quality out. Feed it un-post-processed motion and the exported clip has the foot-slide; chain Kimodo Post Process first for clean feet.
  • Check your tool's import scale - some apps assume different units for BVH, so a character can come in huge or tiny (root positions are in meters; your app decides how to interpret them).

It's the low-friction "get the motion out of ComfyUI" button - just remember the SOMA-only rule and you're set.

CategoryKimodo

Inputs (3)

NameTypeDefaultDescription
motionKIMODO_MOTION
filename_prefixSTRINGkimodo_motion
sample_indexINT00–15Which sample to export (0-indexed)

Outputs (1)

NameTypeDescription
file_pathSTRING