ComfyUI Node
CV MediaPipe Hand Pose
Regresses the 21 hand keypoints per palm with the MediaPipe hand-pose model (cv2.dnn). Stage 2 of hand-pose estimation: feed the 'palms' output of 'CV MediaPipe Palm Detect' plus the same image. Place handpose_estimation_mediapipe_2023feb_int8bq.onnx in ComfyUI/models/onnx and pick it. Outputs are DATA only - draw the hand boxes with the core 'Draw BBoxes' node and the 21 keypoints with 'CV Draw Points'. A palm whose confidence is below conf_threshold is dropped; zero hands is a valid result (empty outputs). Processes a single image (the first frame of a batch).
CV MediaPipe Hand Pose
- image
- palms
- bboxes
- landmarks
- world_landmarks
- handedness
- scores
- hand_count
- connections
- keypoint_names
◄model▾►
◄conf_threshold0.90►
Categoryimage/CV/dnn
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| image | NPARRAY,IMAGE | The SAME image the palms were detected on. An IMAGE batch uses its first frame; an NPARRAY is treated as one frame. Accepts a ComfyUI IMAGE/MASK directly (frame 0 of a batch) or an NPARRAY. Arithmetic ops (add, multiply, etc.) process the full IMAGE batch when both inputs have the same batch size. | |
| palms | NPARRAY | The (N, 19) 'palms' array from 'CV MediaPipe Palm Detect'. Each row seeds one hand's crop/rotation. | |
| model | COMBO | MediaPipe hand-pose .onnx model from ComfyUI/models/onnx (handpose_estimation_mediapipe_2023feb_int8bq.onnx). | |
| conf_threshold | FLOAT | 0.900–1 | Minimum model confidence to keep a hand. Palms below this are dropped (not an error). |
Outputs (8)
| Name | Type | Description |
|---|---|---|
| bboxes | BOUNDING_BOX | One {x, y, width, height, score} dict per hand (the tight hand box) - feed the core 'Draw BBoxes' node. |
| landmarks | NPARRAY | (N*21, 2) float32 screen keypoints of every hand, in MediaPipe order (wrist, thumb..pinky). Feed 'CV Draw Points'. Empty (0, 2) when no hands. |
| world_landmarks | NPARRAY | (N*21, 3) float32 metric 3D keypoints (x, y, z in meters, origin at the hand centre). For inspection / 3D use. |
| handedness | NPARRAY | (N,) float32 in [0, 1]: <=0.5 is a left hand, >0.5 right, same order as bboxes. |
| scores | NPARRAY | (N,) float32 confidence per hand, same order as bboxes. |
| hand_count | INT | Number of hands kept (palms that passed conf_threshold). |
| connections | NPARRAY | (N*21, 2) int32 edge index-pairs (the MediaPipe hand skeleton), already offset per hand to index the 'landmarks' output directly. Feed 'landmarks' + this into 'CV Draw Connections' to draw the bones. Empty (0, 2) when no hands. |
| keypoint_names | NPARRAY | (N*21,) string array naming every keypoint (wrist, thumb_tip, ...), aligned row-for-row with 'landmarks'. Feed 'landmarks' + this into 'CV Draw Labels' to annotate them. Empty (0,) when no hands. |