> ## Documentation Index
> Fetch the complete documentation index at: https://docs.comfy.org/llms.txt
> Use this file to discover all available pages before exploring further.

# BuildPoseFile - ComfyUI Built-in Node Documentation

> This node builds a ready-to-save 3D animation file from pose data.

This node builds a ready-to-save 3D animation file from pose data. You can export an animated GLB in several visual styles — a full body mesh, joints-only preview, OpenPose skeleton, or SCAIL capsule rig — or save a BVH motion-capture clip instead. The output plugs into a file-saving node such as Save 3D Model to write the file to disk.

## Inputs

### Common Inputs

| Parameter | Description | Data Type | Required | Range |
| - | - | - | - | - |
| `pose_data` | 3D pose data. Accepts MHR pose data (model/shape/expression parameters, MHR70 keypoints, canonical colors, hand vertex mask) or Kimodo pose data (external Y-up rig with per-frame predicted vertices and camera). | MHR\_POSE\_DATA / KIMODO\_POSE\_DATA | Yes | — |
| `format` | Output format, both fed to Save 3D Model to write to disk. 'glb' = animated GLB (mesh / bones / openpose / scail). 'bvh' = BVH mocap clip (one skeleton; needs the model). (default: glb) | DYNAMIC\_COMBO | Yes | "glb"<br />"bvh" |
| `sam3d_body_model` | Optional SAM3D body model. Required for the 'bvh', 'body\_mesh', and 'bones\_only' formats unless the pose data carries a skeleton override. | SAM3D\_BODY\_MODEL | No | — |
| `fps` | Animation frame rate. (default: 24.0) | FLOAT | Yes | 1.0-240.0 |
| `camera_translation` | Bake pred\_cam\_t into the root's translation: 'off' = bind position; 'centered' = delta from frame 0; 'absolute' = raw (Z is camera depth — usually meters away). (default: off) | COMBO | Yes | "off"<br />"centered"<br />"absolute" |
| `track_index` | Track selection: -1 = all tracks; ≥0 = single track. (default: -1) | INT | Yes | -1 to 15 |

### GLB Inputs

These inputs appear when `format` is set to "glb".

| Parameter | Description | Data Type | Required | Range |
| - | - | - | - | - |
| `mesh_style` | Visual style of the GLB: 'body\_mesh' = real Armature (127 bones, skinning, TRS keyframes, 72 face morphs; needs model). 'bones\_only' = bone-shape primitives at each joint (preview armature). 'openpose' = OpenPose-18 3D skeleton from keypoints. 'scail' = SCAIL 3D capsule rig (open cylinders capped flush by joint spheres). (default: body\_mesh) | DYNAMIC\_COMBO | Yes | "body\_mesh"<br />"bones\_only"<br />"openpose"<br />"scail" |
| `bone_smooth_window` | Gaussian smoothing window on per-bone rotation keyframes / keypoint tracks. 0 = off. 7-15 calms spins/jitter where upstream Smooth misses spikes. (default: 0) | INT | Yes | 0-51, step 2 |

#### Body Mesh Inputs

Appear when `mesh_style` is "body\_mesh".

| Parameter | Description | Data Type | Required | Range |
| - | - | - | - | - |
| `bone_vis` | Bone vis shape, rigidly skinned to each joint. 'off' = no bone visualization; 'octahedrons' = Blender-style directional bones. (default: off) | DYNAMIC\_COMBO | Yes | "off"<br />"octahedrons" |
| `bone_vis_radius_m` | Appears when `bone_vis` = "octahedrons". Radius in m (sphere radius / octahedron half-width). (default: 0.02) | FLOAT | Yes | 0.005-0.5 |
| `bone_vis_color` | Appears when `bone_vis` = "octahedrons". Per-bone vertex colors (unlit material). 'white' = none, 'rainbow\_y' = head-to-toe jet. (default: rainbow\_y) | COMBO | Yes | "white"<br />"rainbow\_y" |
| `shader` | Bake per-vertex colors matching the Render node's shaders (COLOR\_0 + KHR\_materials\_unlit). 'default' = no colors. (default: default) | DYNAMIC\_COMBO | Yes | "default"<br />"rainbow"<br />"rainbow\_face\_normal"<br />"rainbow\_face\_semantic" |
| `rainbow_tilt_z` | Appears when `shader` is a rainbow variant. Rotate rainbow jet axis around Z (forward). Differentiates left/right. (default: -35.0) | FLOAT | Yes | -90.0 to 90.0 |
| `rainbow_tilt_x` | Appears when `shader` is a rainbow variant. Rotate rainbow jet axis around X (right). Differentiates front/back. (default: 0.0) | FLOAT | Yes | -90.0 to 90.0 |
| `person_palette_falloff` | Appears when `shader` is a rainbow variant. Per-person desaturation: each track gets (1 - falloff^k) pastel mix. (default: 0.6) | FLOAT | Yes | 0.1-1.0 |

#### Bones Only Inputs

Appear when `mesh_style` is "bones\_only".

| Parameter | Description | Data Type | Required | Range |
| - | - | - | - | - |
| `bone_vis` | Bone vis shape, rigidly skinned to each joint. 'octahedrons' = Blender-style directional bones (joint → primary child). | DYNAMIC\_COMBO | Yes | "octahedrons" |
| `bone_vis_radius_m` | Radius in m (sphere radius / octahedron half-width). (default: 0.02) | FLOAT | Yes | 0.005-0.5 |
| `bone_vis_color` | Per-bone vertex colors (unlit material). 'white' = none, 'rainbow\_y' = head-to-toe jet. (default: rainbow\_y) | COMBO | Yes | "white"<br />"rainbow\_y" |

#### OpenPose Inputs

Appear when `mesh_style` is "openpose".

| Parameter | Description | Data Type | Required | Range |
| - | - | - | - | - |
| `marker_radius_m` | Sphere radius in m. (default: 0.010) | FLOAT | Yes | 0.005-0.1 |
| `stick_radius_m` | Limb half-width in m. Auto-clamped to bone\_length x 0.1. (default: 0.008) | FLOAT | Yes | 0.002-0.05 |
| `include_hands` | Append 21+21 OpenPose hands (wrist + 5 fingers x 4 joints, base→tip) sourced from pred\_keypoints\_3d. (default: False) | BOOLEAN | Yes | True / False |
| `hand_marker_radius_m` | Hand sphere radius in m. (default: 0.005) | FLOAT | Yes | 0.001-0.1 |
| `hand_stick_radius_m` | Hand limb half-width in m. (default: 0.003) | FLOAT | Yes | 0.001-0.05 |
| `face_style` | Face-contour landmarks sampled from pred\_vertices at fixed head-mesh vertex IDs (needs canonical\_colors on pose\_data). 'full' = all \~30 points; 'eyes\_mouth' = eyes + outer lips only. (default: disabled) | COMBO | Yes | "disabled"<br />"full"<br />"eyes\_mouth" |
| `face_marker_radius_m` | Face dot radius. 0 = auto = 0.3 x marker\_radius\_m. (default: 0.0) | FLOAT | Yes | 0.0-0.05 |

#### SCAIL Inputs

Appear when `mesh_style` is "scail".

| Parameter | Description | Data Type | Required | Range |
| - | - | - | - | - |
| `stick_radius_m` | Cylinder radius in m. Bones are open cylinders at constant radius; joint spheres (auto-sized to match) cap the open ends. SCAIL reference = 0.0215 m. (default: 0.022) | FLOAT | Yes | 0.002-0.1 |
| `marker_radius_m` | Joint sphere radius. 0 = auto = stick\_radius\_m (flush cap). (default: 0.0) | FLOAT | Yes | 0.0-0.1 |
| `material_roughness` | PBR roughness. SCAIL ref = 0.3. 1 = matte; 0 = chrome. (default: 0.3) | FLOAT | Yes | 0.0-1.0 |
| `include_hands` | Append 21+21 hand keypoints + capsule sticks per track. (default: False) | BOOLEAN | Yes | True / False |
| `hand_marker_radius_m` | Hand sphere radius in m. (default: 0.005) | FLOAT | Yes | 0.001-0.05 |
| `hand_stick_radius_m` | Hand cylinder radius in m. (default: 0.003) | FLOAT | Yes | 0.001-0.05 |
| `face_style` | Face-contour landmarks sampled from pred\_vertices (needs canonical\_colors on pose\_data). 'full' = all \~30 points; 'eyes\_mouth' = eyes + outer lips only. (default: disabled) | COMBO | Yes | "disabled"<br />"full"<br />"eyes\_mouth" |

### BVH Inputs

Appear when `format` is set to "bvh".

| Parameter | Description | Data Type | Required | Range |
| - | - | - | - | - |
| `units` | BVH OFFSET/position units. 'cm' is the mocap standard. (default: cm) | COMBO | Yes | "cm"<br />"m" |

**Notes:**

* The `bvh` format and the `body_mesh` and `bones_only` mesh styles require the `sam3d_body_model` input, unless the `pose_data` itself carries a skeleton override (a `_skeleton_override` dict, for example from a KimodoSample node). The node raises an error if neither is available. The `openpose` and `scail` styles are rig-independent and work directly from keypoints without the body model.
* In `bvh` format, the output contains a single skeleton. When `track_index` is -1 (all tracks), the first track is used.
* The `full` and `eyes_mouth` `face_style` options require `canonical_colors` on the pose data, which is present when the pose data comes from the MHR pipeline together with the body model.
* `bone_smooth_window` advances in steps of 2 between 0 and 51.

## Outputs

| Output Name | Description | Data Type |
| - | - | - |
| `model_3d` | The generated animation file: an animated GLB or a BVH mocap clip, ready to be saved to disk with a node such as Save 3D Model. | 3D\_FILE |

> This documentation was AI-generated. If you find any errors or have suggestions for improvement, please feel free to contribute! [Edit on GitHub](https://github.com/Comfy-Org/embedded-docs/blob/main/comfyui_embedded_docs/docs/BuildPoseFile/en.md)

***

**Source fingerprint (SHA-256):** `f3672f0749c4f9affcc92da98198c5b142f6fcd9f5e317ab43dd7e53533c0fa3`


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.