Nodes/ComfyUI-ProportionChanger/ProportionChanger Pose Render
ComfyUI Node

ProportionChanger Pose Render

Turning keypoints back into the OpenPose image your ControlNet wants

By grmchn·Created about a year ago·Updated 3 months ago· 102
ProportionChanger Pose Render
  • pose_keypoint
  • IMAGE
show_bodytrue
show_facefalse
show_handstrue
show_feettrue
resolution_x-1
pose_marker_size4
face_marker_size3
hand_marker_size2

Here's the pipeline's little secret: all the proportion editing in this pack happens on numbers, but the models you feed at the end mostly want a picture. DWPose, OpenPose, VACE conditioning - they all expect an image with a stick figure drawn on it, not a JSON blob of joints. ProportionChanger Pose Render is what turns your edited POSE_KEYPOINT back into that renderable OpenPose-style image.

So the shape of a typical workflow is: detect a pose → change its proportions in keypoint space → render it back to an image → feed that image to your pose-ControlNet or VACE control-video step. The render node is the return trip. It's compatible with the openpose-render parameter style that ControlNet preprocessors speak, but with one important upgrade baked in: it renders the full 25-point skeleton including the toe keypoints, so the feet you went to the trouble of proportion-editing actually show up in the condition.

The inputs that matter

  • pose_keypoint - required; the pose to render.
  • show_body / show_hands / show_feet (defaults on) and show_face (default off) - toggle which keypoint groups get drawn. Face is off by default, which is usually right: for pose control you want body motion, and a cluttered face point cloud can confuse the conditioner.
  • resolution_x (default -1) - output width; -1 keeps the pose's native canvas size. Set a specific value if you need a fixed resolution regardless of source.
  • pose_marker_size / face_marker_size / hand_marker_size - dot sizes for each group. Bump pose_marker_size if the skeleton looks too thin to register.

Output is an IMAGE tensor - preview it, or wire it into a ControlNet preprocessor chain / VACE control input.

The workflow context

This is the node that closes the loop on the pack's whole bet. You detect a human pose, reshape the body to a chibi or a long-legs style with Reference/Params, render the result here, and the downstream VACE or ControlNet step drives the actual generation from your edited skeleton - character identity handled by your reference image, motion geometry handled by your proportions. If you're just getting oriented, run detector → render → preview first: that's the fastest way to see whether your pose detection is even good before you start changing proportions.

Install

Shared pack install - ComfyUI Manager search "ComfyUI-ProportionChanger", or clone + pip install -r requirements.txt + restart. Pure torch/numpy rendering, no models. The one thing to check when your preview looks wrong is upstream, not this node: a pose rendered from bad keypoints looks bad faithfully, so verify the detection (and the canvas size) before you blame the renderer.

CategoryProportionChanger

Inputs (9)

NameTypeDefaultDescription
pose_keypointPOSE_KEYPOINTPOSE_KEYPOINT data to render
show_bodyoptBOOLEANtrueDraw body keypoints
show_faceoptBOOLEANfalseDraw face keypoints
show_handsoptBOOLEANtrueDraw hand keypoints
show_feetoptBOOLEANtrueDraw toe keypoints
resolution_xoptINT-1-1–12800Output width (-1 for original)
pose_marker_sizeoptINT40–100Body keypoint marker size
face_marker_sizeoptINT30–100Face keypoint marker size
hand_marker_sizeoptINT20–100Hand keypoint marker size

Outputs (1)

NameTypeDescription
IMAGEIMAGE