ComfyUI Node

ControlNet Preprocess OpenPose

Make Your Character Do the Reference's Move

By Runware·Created 2 years ago·Updated about a month ago· 140
ControlNet Preprocess OpenPose
  • image
  • image
settings.includeHandsAndFaceOpenPosefalse
ttlfalse
ttl_value60
outputFormatJPG

The pose problem is older than ControlNet: you have a photo of someone in a great stance, but you want your character in that stance, not that person. OpenPose is the answer - extract the skeleton, throw the person away, and let the model rebuild a different character onto the same bones. Runware_controlnet_preprocess_openpose is that extraction, hosted on Runware's cloud: image in, skeleton map out as an IMAGE, ready to feed your ControlNet chain. No local pose-estimation weights, no VRAM, and - the nice part - no fighting with a mismatched local dependency version.

How it works

The image goes up, Runware's pose estimator finds the body joints, and a stick-figure skeleton comes back. The key difference from the other preprocessors: this map is semantic, not visual - it encodes joint positions, so the model knows where the head, shoulders, hands and feet are without knowing what they look like. That's exactly what you want for "same pose, different character."

The inputs

  • image (required) - the reference with the pose you want to steal.
  • settings.includeHandsAndFaceOpenPose (BOOLEAN, default off) - the one knob that actually matters here. Body-only skeletons are robust; hands and face add detail but also add failure modes (extra joints to get wrong, and models that mangle hands will mangle a hand skeleton). Turn it on when hand/face position is critical, leave it off for general poses.
  • outputFormat (JPG/PNG/WEBP) and ttl (toggle + value) - delivery details.

Output is image - the pose map. Preview it: if the skeleton is missing limbs or has joints in the wrong place, the generation will confidently reproduce the garbage. The map is cheap; check it before you spend on the generation.

Wiring it up

The standard chain: this node → RunwareBuild_controlNet (guideImage) → an image model's controlNet socket. For character work, the KB's character-consistency essay notes pose ControlNets are how you put the same character in new positions - the pose map is the re-usable skeleton, and the reference image is what keeps the face. On the builder, weight around 0.7–1.0 is the common starting point for pose; too high and the output looks traced, too low and the pose drifts.

Install and setup

Same as every node in the pack: ComfyUI Manager → "Runware" → install → restart, or clone and pip install -r ComfyUI-Runware/requirements.txt (runware-sdk, pillow, soundfile). API key via Settings → Runware API key, RUNWARE_API_KEY, or runware auth login, funded credits (the ~$20 minimum top-up is the standing entry friction).

Troubleshooting

  • Skeleton has missing joints - tricky poses (occluded limbs, extreme angles) confuse estimators. Use a clearer reference or flip includeHandsAndFaceOpenPose off.
  • Output looks traced, not posed - weight too high. Back it off.
  • Hands are a disaster - that's the classic hand problem surfacing through the hand skeleton. Leave includeHandsAndFaceOpenPose off unless you specifically need it.

It's one node in the three-node pose chain, and it's the entire "steal this stance" trick without a local install. For anyone doing character animation or comics who's tired of describing poses in words, this is how you show the model.

CategoryRunware/Image/runware

Inputs (5)

NameTypeDefaultDescription
imageIMAGE
settings.includeHandsAndFaceOpenPoseoptBOOLEANfalseInclude hands and face in the pose outline when using OpenPose.
ttloptBOOLEANfalseEnable to set ttl. Off uses the model's default.
ttl_valueoptINT60Time-to-live (TTL) in seconds for generated content. Only applies when `outputType` is `URL`.
outputFormatoptCOMBOJPGFile format for the generated image.

Outputs (1)

NameTypeDescription
imageIMAGE