ComfyPilotComfyPilot
文档 / 节点说明 / 渲染 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_dataMHR 姿态数据,或外部 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