Pose Editor
The JSON bridge for when you must nudge a wrist
- pose_keypoint
- pose_keypoint
Detection is great until it isn't - the source photo has a hand doing something the model read wrong, and you need one keypoint moved a few pixels. ComfyUI's answer to "fine-tune a skeleton by hand" has historically been external editors: huchenlei's openpose editor, westNeighbor's ultimate-openpose-editor, that sort of thing. Pose Editor is the pack's bridge node for exactly that workflow. It accepts a pose from any source and hands you back a POSE_KEYPOINT, so a JSON edited anywhere can flow straight into the pack's renderer.
Be clear about what it is, though: it's a passthrough, not the full editing UI. The pack's README says the complete built-in editor is planned for a future release. Today this node's job is plumbing - get JSON in, get a usable POSE_KEYPOINT out.
How it works
The node takes three possible inputs and resolves them by priority: edited_pose_json (an edited JSON string from an external editor) wins, then pose_keypoint, then pose_json_str (a raw pose JSON string). It parses the JSON, handles both single-dict and list-of-dicts formats, and returns it as a proper pose list. If you paste a JSON string, the canvas dimensions get set from the node's canvas_width/canvas_height inputs.
Inputs and outputs
Required: canvas_width and canvas_height (defaults 1024²) - these define the canvas your JSON gets placed on. Optional: pose_keypoint, pose_json_str, edited_pose_json (all multiline strings). The single output is pose_keypoint, which you can run into a Pose Renderer, a Save Pose Keypoint, or any node that speaks the type.
Installing it
Same pack, same commands: ComfyUI Manager → search Eric Composer Studio → install → restart, or clone into custom_nodes and pip install -r requirements.txt. Like the other pose utility nodes it needs comfyui_controlnet_aux present for the POSE_KEYPOINT socket type, but otherwise runs with no models and no rtmlib involved.
Where people get burned
If you're loading an edited pose from huchenlei's or westNeighbor's editors, you want the edited_pose_json socket - that's the one with priority, and it's the one the README names for that purpose. Drop your raw unedited JSON in pose_json_str only when there's nothing better. And don't expect the node to show you the skeleton - there's no visual editor inside; render the output to look at it. The gap between "I know the JSON is right" and "I can see it's right" is real, and the built-in editor coming in a future release is exactly what's meant to close it.
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| canvas_width | INT | 102464–8192 | — |
| canvas_height | INT | 102464–8192 | — |
| pose_keypointopt | POSE_KEYPOINT | — | |
| pose_json_stropt | STRING | — | |
| edited_pose_jsonopt | STRING | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| pose_keypoint | POSE_KEYPOINT | — |