Kimodo Export BVH
The one format every animation tool already speaks
- motion
- file_path
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- defaultkimodo_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.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| motion | KIMODO_MOTION | — | |
| filename_prefix | STRING | kimodo_motion | — |
| sample_index | INT | 00–15 | Which sample to export (0-indexed) |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| file_path | STRING | — |