文档 /
节点说明 /
渲染 3D 身体姿势
渲染 3D 身体姿势
使用可选样式将 3D 身体姿态数据渲染为图像。此节点可接受来自 SAM3D 身体追踪器(MHR)的姿态数据,或来自外部 Y-up 骨架(如 Kimodo)的姿态数据,并可将渲染结果合成到可选背景图像之上(未提供背景时则合成到黑色画布上)。
节点说明
SAM3DBody_Render 更新于 2026-11-12
渲染 3D 身体姿势 - ComfyUI Built-in Node Documentation
使用可选样式将 3D 身体姿态数据渲染为图像。此节点可接受来自 SAM3D 身体追踪器(MHR)的姿态数据,或来自外部 Y-up 骨架(如 Kimodo)的姿态数据,并可将渲染结果合成到可选背景图像之上(未提供背景时则合成到黑色画布上)。
使用可选样式将 3D 身体姿态数据渲染为图像。此节点可接受来自 SAM3D 身体追踪器(MHR)的姿态数据,或来自外部 Y-up 骨架(如 Kimodo)的姿态数据,并可将渲染结果合成到可选背景图像之上(未提供背景时则合成到黑色画布上)。可用的渲染样式包括:带阴影的 3D 网格、二值剪影、2D 与 3D OpenPose 风格骨架,以及 SCAIL 风格的身体胶囊。
输入
通用输入
| 参数 | 描述 | 数据类型 | 必填 | 范围 |
|---|---|---|---|---|
渲染风格 | 渲染模式。'mesh' = 通过相机光栅化的 3D MHR 网格。'silhouette' = 网格的二值遮罩。'openpose\_2d' = 扁平的 2D 骨架。'openpose\_3d' = 以平面着色 3D 模型呈现的 OpenPose 骨架。'scail' = SCAIL 3D 胶囊。(默认值:"mesh") | DYNAMIC\_COMBO | 是 | "mesh" "silhouette" "openpose\_2d" "openpose\_3d" "scail" |
pose_data | MHR 姿态数据,或外部 Y-up 骨架姿态数据(KimodoSample)。对于在其 _skeleton_override 中携带 OpenPose 关节映射的外部骨架(KimodoSample 即如此),所有渲染样式均可用。 | MHR\_POSE\_DATA 或 KIMODO\_POSE\_DATA | 是 | — |
背景 | 逐帧背景。省略 = 黑色画布。 | IMAGE | 否 | — |
宽度 | 输出宽度(像素)。0 = 使用姿态数据原生的 image\_size。若 width/height 中仅设置了其中一个,另一个将按原始宽高比推导得出。(默认值:0) | INT | 否 | 0 至 16384,步长 8 |
高度 | 输出高度(像素)。0 = 使用姿态数据原生的 image\_size。若 width/height 中仅设置了其中一个,另一个将按原始宽高比推导得出。(默认值:0) | INT | 否 | 0 至 16384,步长 8 |
相机信息 | 自由 6DOF 相机覆盖。连接后,姿态将通过此相机(position/target/zoom/rotation/FoV)重新投影,而非使用预测的相机。 | LOAD\_3D\_CAMERA | 否 | — |
Mesh 输入
当 render_style 为 "mesh" 时,会出现这些参数。
| 参数 | 描述 | 数据类型 | 必填 | 范围 |
|---|---|---|---|---|
shader | 预设着色器。'normals' = 相机空间中的当前表面法线(OpenGL Y+ 法线贴图约定:+X→R、+Y→G、+Z→B)。'rainbow' = RealisDance 风格的身体 Y 轴喷色;'rainbow\_face\_\*' 变体会用法线色/分区色覆盖面部顶点;'depth' = 线性灰度。(默认值:"default") | DYNAMIC\_COMBO | 否 | "default" "normals" "rainbow" "rainbow\_face\_normal" "rainbow\_face\_semantic" "depth" |
rainbow_tilt_z | 绕 Z 轴(前方)旋转彩虹喷色轴。用于区分左/右。仅当 shader 为 "rainbow"、"rainbow\_face\_normal" 或 "rainbow\_face\_semantic" 时可用。(默认值:-35.0) | FLOAT | 否 | -90.0 至 90.0,步长 0.5 |
rainbow_tilt_x | 绕 X 轴(右方)旋转彩虹喷色轴。用于区分前/后。仅当 shader 为 "rainbow"、"rainbow\_face\_normal" 或 "rainbow\_face\_semantic" 时可用。(默认值:0.0) | FLOAT | 否 | -90.0 至 90.0,步长 0.5 |
opacity | 网格在背景图像上的不透明度;未连接背景时则叠加在黑色之上。(默认值:1.0) | FLOAT | 否 | 0.0 至 1.0,步长 0.01 |
person_palette_falloff | 逐人去饱和,向白色过渡:轨道 k 得到 (1 - falloff^k) 的粉彩混合(SCAIL 的 'softer second person')。1.0 = 关闭。(默认值:0.6) | FLOAT | 否 | 0.1 至 1.0,步长 0.05 |
region | 'hands\_only' 会通过预计算的 hand_vert_mask(针对标准手部 KPs 的 LBS 权重)过滤面片 —— 用于调试时分离出手部网格。若遮罩缺失,则回退为完整网格。(默认值:"full\_body") | COMBO | 否 | "full\_body" "hands\_only" |
Silhouette 输入
当 render_style 为 "silhouette" 时,节点渲染 3D 网格的二值遮罩。此模式没有额外参数。
OpenPose 2D 输入
当 render_style 为 "openpose\_2d" 时,会出现这些参数。
| 参数 | 描述 | 数据类型 | 必填 | 范围 |
|---|---|---|---|---|
marker_radius_px | 身体关键点圆点半径(像素)。(默认值:4) | INT | 否 | 1 至 32,步长 1 |
stick_width_px | 身体四肢椭圆半宽(像素)。DWPose 默认值 = 4。(默认值:4) | INT | 否 | 1 至 32,步长 1 |
limb_alpha | 逐肢体不透明度。DWPose 默认值 = 0.6。(默认值:0.6) | FLOAT | 否 | 0.0 至 1.0,步长 0.05 |
face_style | 'full' = 全部面部关键点(若存在 sapiens-238 则使用之,否则回退到约 30 个骨架关键点)。'eyes\_mouth' = 骨架回退子集(约 12 个点:仅眼睛 + 外唇)。'disabled' = 无面部点。(默认值:"disabled") | COMBO | 否 | "disabled" "full" "eyes\_mouth" |
hand_style | 绘制 21+21 手部关键点 + 骨骼连线。'disabled' = 无手部。'dwpose' = 纯蓝色圆点;'openpose' = 彩虹色圆点。(默认值:"disabled") | COMBO | 否 | "disabled" "dwpose" "openpose" |
person_palette_falloff | 逐人去饱和:轨道 k 按 1 - falloff^k 向白色混合。轨道 0 保持鲜艳;1.0 禁用衰减。(默认值:0.6) | FLOAT | 否 | 0.1 至 1.0,步长 0.05 |
OpenPose 3D 输入
当 render_style 为 "openpose\_3d" 时,会出现这些参数。
| 参数 | 描述 | 数据类型 | 必填 | 范围 |
|---|---|---|---|---|
radius_m | 肢体胶囊半径(米)(数值小 = 类似骨骼线)。(默认值:0.015) | FLOAT | 否 | 0.004 至 0.1,步长 0.001 |
include_hands | 将 21+21 手部关键点绘制为 3D 胶囊。(默认值:True) | BOOLEAN | 否 | True 或 False |
person_palette_falloff | 逐人去饱和:轨道 k 按 1 - falloff^k 向白色混合。轨道 0 保持鲜艳;1.0 禁用衰减。(默认值:0.6) | FLOAT | 否 | 0.1 至 1.0,步长 0.05 |
SCAIL 输入
当 render_style 为 "scail" 时,会出现这些参数。
| 参数 | 描述 | 数据类型 | 必填 | 范围 |
|---|---|---|---|---|
radius_m | 胶囊半径(米)(SCAIL 参考值:约 0.022 米)。(默认值:0.022) | FLOAT | 否 | 0.005 至 0.2,步长 0.001 |
hand_style | 将 2D OpenPose 手部合成到 3D 胶囊身体之上(与 SCAIL 一致 —— 无 3D 手部胶囊)。'disabled' = 无手部。'dwpose' = 纯蓝色手部圆点;'openpose' = 彩虹色圆点。无论哪种方式,骨骼连线均按手指保持彩虹配色。(默认值:"dwpose") | COMBO | 否 | "disabled" "dwpose" "openpose" |
face_style | 'full' = 全部面部关键点(若存在 sapiens-238 则使用之,否则回退到约 30 个骨架关键点)。'eyes\_mouth' = 骨架回退子集(约 12 个点:仅眼睛 + 外唇)。'disabled' = 无面部点。(默认值:"disabled") | COMBO | 否 | "disabled" "full" "eyes\_mouth" |
person_palette_falloff | 逐人去饱和:轨道 k 按 1 - falloff^k 向白色混合。轨道 0 保持鲜艳;1.0 禁用衰减。(默认值:0.6) | FLOAT | 否 | 0.1 至 1.0,步长 0.05 |
说明
- 若
width和height均为 0,输出将使用姿态数据原生的图像尺寸。若仅设置其中之一,另一个将在保持原始宽高比的前提下推导得出。已连接的background会被缩放到与渲染分辨率匹配。 - 当连接了
camera_info时,姿态将通过该相机重新投影,而非使用预测的相机。 - 在 mesh 模式下,仅当
shader设置为 "rainbow"、"rainbow\_face\_normal" 或 "rainbow\_face\_semantic" 时,rainbow_tilt_z和rainbow_tilt_x才可用。 - 在 mesh 模式下,当
region为 "hands\_only" 时,手部区域过滤要求姿态数据包含手部顶点遮罩;若遮罩缺失,则改为渲染完整网格。 - 在 scail 模式下,手部以 2D OpenPose 叠加层的形式绘制在 3D 胶囊身体之上,而非 3D 胶囊;将
hand_style设为 "disabled" 可将其完全移除。 - 当输出分辨率与姿态数据原生分辨率不同时,openpose\_2d 的标记点与骨骼线尺寸会按比例缩放。
- 若背景的帧数少于姿态数据,则剩余帧会复用背景的最后一帧。
- 输出中每个输入姿态帧对应一帧。若姿态数据不包含任何帧,则返回单张黑色图像。
输出
| 输出名 | 描述 | 数据类型 |
|---|---|---|
image | 渲染后的帧:以所选渲染样式绘制的姿态数据,在连接了背景时合成到背景之上,否则合成到黑色之上。每个输入姿态帧对应一帧,并以单张批量图像的形式返回。 | IMAGE |
本文档由 AI 生成。如果您发现任何错误或有改进建议,欢迎贡献! 在 GitHub 上编辑
Source fingerprint (SHA-256): 96556283cf07727e6b4bb3549537bf925ed771bab8607f65c93ab54a5f0e9ba5