Nodes/Eric Composer Studio/Pose Transform (uniform)
ComfyUI Node

Pose Transform (uniform)

Moving a skeleton exactly where you want it

By EricRollei·Created 5 months ago·Updated 4 months ago· 3
Pose Transform (uniform)
  • pose_keypoint
  • pose_keypoint
target_width1024
target_height1024
scale1.00
translate_x0
translate_y0
rotate_degrees0.0

Some pose problems need a canvas and a mouse. Most just need a few numbers. Pose Transform is the "few numbers" node: it takes a POSE_KEYPOINT, moves it, scales it uniformly, and optionally rotates it onto a target canvas - all as pure coordinate math, with no re-running detection. It's the cheap, repeatable sibling of the pack's fancy Pose Composer, and for one-person shots it's usually the right tool.

How it works

The node rescales the pose from its stored source canvas to target_width × target_height, then applies a uniform scale pivoted on the skeleton's centroid, a translate_x/translate_y offset in target pixels, and an optional rotate_degrees. Deliberately, there is no separate X/Y scaling - stretching a skeleton's proportions independently would distort the pose geometry, and ControlNet would cheerfully draw you a distorted person. The uniform-scale constraint is the whole design.

Inputs

  • pose_keypoint - the pose to transform.
  • target_width / target_height - the output canvas dimensions (defaults 1024², stepped by 8).
  • scale - uniform factor around the skeleton centroid (0.05–5).
  • translate_x / translate_y - offsets in target-canvas pixels.
  • rotate_degrees - rotation in degrees. Read the warning below before using it.

Output

pose_keypoint - the transformed pose, ready for a Pose Renderer and then ControlNet.

Where people get burned

The rotation is the trap. Rotating a skeleton doesn't just re-orient the drawing - it changes the actual pose data. A torso tilted 30° reads differently to ControlNet than an upright one, so unless the source pose genuinely was tilted (say, someone leaning in the photo), don't rotate to "fix" framing. That's what translate is for.

The other classic mistake is sequence: crop/reframe first (via Pose Canvas Crop/Fit), then transform to position the person within the frame, then render. A typical chain is detect → crop/fit to your generation ratio → transform with a little translate/scale to frame the subject → render with keep_input_size=true → ControlNet.

Installing it

Same pack, same drill: ComfyUI Manager → search Eric Composer Studio → install → restart, or git clone https://github.com/EricRollei/Eric_Composer_Studio.git into custom_nodes + pip install -r requirements.txt. It only touches POSE_KEYPOINT data, so it needs comfyui_controlnet_aux present for the socket type to exist, but it's otherwise dependency-light - no model downloads, no rtmlib, instant to run.

CategoryEric_Composer_Studio

Inputs (7)

NameTypeDefaultDescription
pose_keypointPOSE_KEYPOINT
target_widthINT102464–8192
target_heightINT102464–8192
scaleFLOAT1.000.05–5
translate_xINT0-4096–4096
translate_yINT0-4096–4096
rotate_degreesFLOAT0.0-180–180

Outputs (1)

NameTypeDescription
pose_keypointPOSE_KEYPOINT