> ## 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.

# SAM3DBody_Render - ComfyUI Built-in Node Documentation

> Renders 3D body pose data into an image using a selectable style.

Renders 3D body pose data into an image using a selectable style. The node accepts pose data from the SAM3D body tracker (MHR) or from an external Y-up rig such as Kimodo, and can composite the result over an optional background image (or a black canvas when none is provided). Available render styles include a shaded 3D mesh, a binary silhouette, 2D and 3D OpenPose-style skeletons, and SCAIL-style body capsules.

## Inputs

### Common Inputs

| Parameter | Description | Data Type | Required | Range |
| - | - | - | - | - |
| `render_style` | Render mode. 'mesh' = 3D MHR mesh rasterized through the camera. 'silhouette' = binary mask of the mesh. 'openpose\_2d' = flat 2D skeleton. 'openpose\_3d' = OpenPose skeleton as flat-shaded 3D model. 'scail' = SCAIL 3D capsules. (default: "mesh") | DYNAMIC\_COMBO | Yes | "mesh"<br />"silhouette"<br />"openpose\_2d"<br />"openpose\_3d"<br />"scail" |
| `pose_data` | MHR pose data, or external Y-up rig pose data (KimodoSample). All render styles work for external rigs that carry OpenPose joint maps in their `_skeleton_override` (KimodoSample does). | MHR\_POSE\_DATA or KIMODO\_POSE\_DATA | Yes | — |
| `background` | Per-frame background. Omitted = black canvas. | IMAGE | No | — |
| `width` | Output width in pixels. 0 = use pose data's native image\_size. If only one of width/height is set, the other is derived preserving the original aspect. (default: 0) | INT | No | 0 to 16384, step 8 |
| `height` | Output height in pixels. 0 = use pose data's native image\_size. If only one of width/height is set, the other is derived preserving the original aspect. (default: 0) | INT | No | 0 to 16384, step 8 |
| `camera_info` | Free 6DOF camera override. When wired, the pose is re-projected through this camera (position/target/zoom/rotation/FoV) instead of the predicted one. | LOAD\_3D\_CAMERA | No | — |

### Mesh Inputs

These parameters appear when `render_style` is "mesh".

| Parameter | Description | Data Type | Required | Range |
| - | - | - | - | - |
| `shader` | Preset shader. 'normals' = current surface normal in camera space (OpenGL Y+ normal-map convention: +X→R, +Y→G, +Z→B). 'rainbow' = RealisDance style body-Y jet; the 'rainbow\_face\_\*' variants override face verts with normal/per-region colors; 'depth' = linear gray. (default: "default") | DYNAMIC\_COMBO | No | "default"<br />"normals"<br />"rainbow"<br />"rainbow\_face\_normal"<br />"rainbow\_face\_semantic"<br />"depth" |
| `rainbow_tilt_z` | Rotate rainbow jet axis around Z (forward). Differentiates left/right. Only available when `shader` is "rainbow", "rainbow\_face\_normal", or "rainbow\_face\_semantic". (default: -35.0) | FLOAT | No | -90.0 to 90.0, step 0.5 |
| `rainbow_tilt_x` | Rotate rainbow jet axis around X (right). Differentiates front/back. Only available when `shader` is "rainbow", "rainbow\_face\_normal", or "rainbow\_face\_semantic". (default: 0.0) | FLOAT | No | -90.0 to 90.0, step 0.5 |
| `opacity` | Mesh alpha over the background image, or over black when none is connected. (default: 1.0) | FLOAT | No | 0.0 to 1.0, step 0.01 |
| `person_palette_falloff` | Per-person desaturation toward white: track k gets a (1 - falloff^k) pastel mix (SCAIL 'softer second person'). 1.0 = off. (default: 0.6) | FLOAT | No | 0.1 to 1.0, step 0.05 |
| `region` | 'hands\_only' filters faces via the precomputed `hand_vert_mask` (LBS weights against canonical hand KPs) — isolates the hand mesh for debugging. Falls back to full mesh if the mask is missing. (default: "full\_body") | COMBO | No | "full\_body"<br />"hands\_only" |

### Silhouette Inputs

When `render_style` is "silhouette", the node renders a binary mask of the 3D mesh. This mode has no additional parameters.

### OpenPose 2D Inputs

These parameters appear when `render_style` is "openpose\_2d".

| Parameter | Description | Data Type | Required | Range |
| - | - | - | - | - |
| `marker_radius_px` | Body keypoint dot radius (px). (default: 4) | INT | No | 1 to 32, step 1 |
| `stick_width_px` | Body limb ellipse half-width (px). DWPose default = 4. (default: 4) | INT | No | 1 to 32, step 1 |
| `limb_alpha` | Per-limb alpha. DWPose default = 0.6. (default: 0.6) | FLOAT | No | 0.0 to 1.0, step 0.05 |
| `face_style` | 'full' = all face landmarks (sapiens-238 if present, else rig-fallback \~30). 'eyes\_mouth' = rig-fallback subset (\~12 dots: eyes + outer lips only). 'disabled' = no face dots. (default: "disabled") | COMBO | No | "disabled"<br />"full"<br />"eyes\_mouth" |
| `hand_style` | Draw 21+21 hand keypoints + sticks. 'disabled' = no hands. 'dwpose' = solid-blue dots; 'openpose' = rainbow dots. (default: "disabled") | COMBO | No | "disabled"<br />"dwpose"<br />"openpose" |
| `person_palette_falloff` | Per-person desaturation: track k blends toward white by 1 - falloff^k. Track 0 stays vivid; 1.0 disables falloff. (default: 0.6) | FLOAT | No | 0.1 to 1.0, step 0.05 |

### OpenPose 3D Inputs

These parameters appear when `render_style` is "openpose\_3d".

| Parameter | Description | Data Type | Required | Range |
| - | - | - | - | - |
| `radius_m` | Limb capsule radius in meters (thin = stick-like). (default: 0.015) | FLOAT | No | 0.004 to 0.1, step 0.001 |
| `include_hands` | Draw 21+21 hand keypoints as 3D capsules. (default: True) | BOOLEAN | No | True or False |
| `person_palette_falloff` | Per-person desaturation: track k blends toward white by 1 - falloff^k. Track 0 stays vivid; 1.0 disables falloff. (default: 0.6) | FLOAT | No | 0.1 to 1.0, step 0.05 |

### SCAIL Inputs

These parameters appear when `render_style` is "scail".

| Parameter | Description | Data Type | Required | Range |
| - | - | - | - | - |
| `radius_m` | Capsule radius in meters (SCAIL reference: \~0.022 m). (default: 0.022) | FLOAT | No | 0.005 to 0.2, step 0.001 |
| `hand_style` | Composite 2D OpenPose hands on top of the 3D capsule body (matches SCAIL — no 3D hand capsules). 'disabled' = no hands. 'dwpose' = solid-blue hand dots; 'openpose' = rainbow dots. Sticks stay rainbow per-finger either way. (default: "dwpose") | COMBO | No | "disabled"<br />"dwpose"<br />"openpose" |
| `face_style` | 'full' = all face landmarks (sapiens-238 if present, else rig-fallback \~30). 'eyes\_mouth' = rig-fallback subset (\~12 dots: eyes + outer lips only). 'disabled' = no face dots. (default: "disabled") | COMBO | No | "disabled"<br />"full"<br />"eyes\_mouth" |
| `person_palette_falloff` | Per-person desaturation: track k blends toward white by 1 - falloff^k. Track 0 stays vivid; 1.0 disables falloff. (default: 0.6) | FLOAT | No | 0.1 to 1.0, step 0.05 |

### Notes

* If both `width` and `height` are 0, the output uses the pose data's native image size. If only one of them is set, the other is derived while preserving the original aspect ratio. A connected `background` is resized to match the render resolution.
* When `camera_info` is connected, the pose is re-projected through that camera instead of the predicted one.
* In mesh mode, `rainbow_tilt_z` and `rainbow_tilt_x` are only available when `shader` is set to "rainbow", "rainbow\_face\_normal", or "rainbow\_face\_semantic".
* In mesh mode, when `region` is "hands\_only", the hand region filter requires the pose data to contain a hand vertex mask; if the mask is missing, the full mesh is rendered instead.
* In scail mode, hands are drawn as 2D OpenPose overlays on top of the 3D capsule body rather than as 3D capsules; setting `hand_style` to "disabled" removes them entirely.
* When the output resolution differs from the pose data's native resolution, the openpose\_2d marker and stick sizes are scaled proportionally.
* If the background has fewer frames than the pose data, the last background frame is reused for the remaining frames.
* The output contains one frame per input pose frame. If the pose data contains no frames, a single black image is returned.

## Outputs

| Output Name | Description | Data Type |
| - | - | - |
| `image` | The rendered frames: the pose data drawn in the selected render style, composited over the background when one is connected, or over black otherwise. One frame per input pose frame, returned as a single batched image. | IMAGE |

> 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/SAM3DBody_Render/en.md)

***

**Source fingerprint (SHA-256):** `96556283cf07727e6b4bb3549537bf925ed771bab8607f65c93ab54a5f0e9ba5`


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