pose_keypoint input
Paste pose data into your graph as text
- pose_keypoint
Every node in this pack works on POSE_KEYPOINT data, but that data isn't a file you can load - it's a JSON structure that normally only exists inside a workflow. PoseJSONToPoseKeypoint is the back door: you paste a JSON string into it and it becomes a POSE_KEYPOINT you can wire into anything. Think of it as the clipboard adapter for poses. It's described in the README as the node for "manual debugging or external keypoint input," and that's exactly right - it's the pack's utility node, not its headline feature, but it quietly enables three genuinely useful things.
What it does
One required input: pose_json, a multiline string containing pose data in the OpenPose-style frame format the pack uses - a dict with people, canvas_width, and canvas_height, where each person carries arrays like pose_keypoints_2d (18×3 triplets of x, y, confidence), face_keypoints_2d, hand_left_keypoints_2d, and hand_right_keypoints_2d. Paste in a single frame or a whole list of frames; the node auto-wraps a single dict into a list. Output is a single POSE_KEYPOINT.
It's forgiving by design. If you feed it garbage or empty text, it logs an error and returns an empty skeleton rather than crashing - handy when you're testing, slightly dangerous when you forget the node is in your graph and wonder why everything downstream is blank. And if you're missing a field like people or canvas_width, it fills in sensible defaults.
Why you'd actually use it
Three real use cases, in order of usefulness:
- Round-tripping for debugging. The pack's other utility,
PoseKeypointPreview, turns a POSE_KEYPOINT into JSON text. Paste that text back into this node and you have an exact copy of the pose - which lets you inspect, save, or share a pose outside the graph, then restore it later. - External keypoint input. Have pose data from another tool - a Python script, a detector outside ComfyUI, a file from a motion-capture run? Convert it to the JSON format and this is how it gets in.
- Hand-authoring a pose. You can genuinely write a skeleton by hand in JSON (it's just coordinates), paste it in, and render it. Tedious, but it means the pack works as a pure pose editor even with zero video input.
Installation and gotchas
Installation is the standard pack install (see the main ProportionTransfer page): clone wuwukaka/ComfyUI-BodyRatioMapper into custom_nodes, pip install -r requirements.txt, restart. Note this node (and its sibling PoseKeypointPreview) is derived from the GPL v3 project ComfyUI-ProportionChanger - the README credits it, and the pack keeps the GPL license because of it. Worth knowing if licensing matters to you.
The main gotcha is format correctness: the node doesn't validate coordinates deeply. Get the triplet layout wrong - a pose_keypoints_2d array that isn't x,y,confidence triplets - and you'll get weirdly rendered poses rather than an error. If your pasted pose renders as a mangled mess, that's what's happened, and the fix is to check your data against what PoseKeypointPreview outputs, not to fight the node. The empty-skeleton fallback also means an empty input doesn't error - it just quietly gives you a blank pose, so when debugging "why is this blank," remember to check what you actually pasted.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| pose_json | STRING | JSON string containing pose data |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| pose_keypoint | POSE_KEYPOINT | — |