pose_keypoint preview
Turn POSE_KEYPOINT into text you can actually look at
- pose_keypoint
- string
POSE_KEYPOINT is an opaque blob of numbers - coordinates and confidence values for hundreds of keypoints across many frames. When something's wrong with a pose, you can't just look at it; the render node shows you the bones, but not the data. PoseKeypointPreview converts a POSE_KEYPOINT into JSON text and displays it right in the node, so you can read exactly what's flowing through the graph. It's the pack's inspection window, and for a data-format-heavy pack like this one, that's more important than it sounds.
What it does
Required inputs: pose_keypoint - the POSE_KEYPOINT to convert - and pretty_format (default on), which indents the JSON so it's actually readable instead of one long line. It's an output node, so its string output (the JSON text) is a terminal result you can read, copy, save with a Save Text node, or wire onward if you want.
Beyond just printing, it does two thoughtful things. It persists the generated JSON into the workflow's saved widget values - so when you save and reload the workflow, the previewed text is still there and you don't have to re-run to see it (same trick the Show Text-style nodes use). And it's written to pair with its sibling node PoseJSONToPoseKeypoint: copy the JSON out of this preview, paste it back through the JSON node, and you've round-tripped a pose - inspect it, share it, or stash it as text and restore it later.
Why you'd actually use it
The README's troubleshooting section tells you to use it for the exact scenario that trips everyone up with this pack: empty or abnormal keypoints. When ProportionTransfer outputs garbage, your first question is whether the input data was complete. The preview tells you instantly - you'll see whether face_keypoints_2d, hand_left_keypoints_2d, and foot_keypoints_2d actually contain data or whether they're zeroed arrays. That single check diagnoses half the "my pose is broken" reports: people feeding 17-point OpenPose input into an SDPose-format pipeline, wondering why hands and feet vanish.
It's also the honest way to verify what the ProportionTransfer node actually did. Render tells you what it looks like; preview tells you the real numbers - whether the output is absolute pixels or normalized 0–1, whether coordinates stayed in canvas bounds, whether the scale factors did what the logs claimed. When you're tuning output_absolute_coordinates or checking that a multi-person clip kept person identities straight across frames, this is the ground truth.
Installation and gotchas
Standard pack install: clone wuwukaka/ComfyUI-BodyRatioMapper into custom_nodes, pip install -r requirements.txt, restart. Like its JSON twin, this node is derived from the GPL v3 ComfyUI-ProportionChanger project, which is why the whole pack carries the GPL license.
Gotchas are mild. The previewed text can be enormous - a multi-frame, multi-person clip with full face and hand data is thousands of lines, so keep pretty_format on and expect some scrolling; if you're dumping a long clip, preview a single frame instead. And remember this is a debug output node: it has no side effects on the pose, so you can leave it dangling off a wire in a workflow without affecting the result - a preview node, not a processing step. That's the whole point: read the data, understand what you're feeding the pipeline, and build the next step on facts instead of guesses.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| pose_keypoint | POSE_KEYPOINT | POSE_KEYPOINT data to convert to JSON | |
| pretty_format | BOOLEAN | true | Format JSON with indentation for readability |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| string | STRING | — |