Nodes/ComfyUI-fastblend/My OpenPose Node
ComfyUI Node

My OpenPose Node

Stitching DWPose and OpenPose together so a turned back doesn't blank out

By AInseven·Created 3 years ago·Updated 2 years ago· 228
My OpenPose Node
  • DWPose
  • OpenPose
  • IMAGE

Pose ControlNet has two standard detectors to choose from, and each has a real, specific weakness. DWPose is the newer one and generally more accurate on body pose and noticeably better at hands. OpenPose is older and coarser but handles something DWPose struggles with: a person turning their back to the camera. Run DWPose on a clip where the subject spins around, and you can get frames where the pose skeleton just goes blank - it can't find a pose it recognizes. OpenPose, less precise everywhere else, keeps producing something usable in that exact situation.

My OpenPose Node exists to paper over that gap. It's the author's own fix, built for their video2video workflows where a subject turning around mid-clip is a realistic thing to happen, and a single detector leaving you with dead frames in the middle of a shot is a real problem, not a theoretical one.

How it works

To be precise about what this node actually does versus what it doesn't: it operates on the rendered pose-skeleton images that DWPose and OpenPose each produce, not on raw keypoint coordinates. You run both preprocessors upstream on your source footage, feed both resulting pose images into this node, and it combines them into one merged pose image you can pass on as your ControlNet conditioning input. The exact per-pixel merge logic isn't documented in the README or anywhere in the pack - reasonably, given the framing, it's combining the two so that where one detector drops out, the other's result carries the frame - but the precise mechanism is something you'd have to read the source for. Worth knowing going in rather than assuming.

The inputs and outputs that matter

  • DWPose (IMAGE) - the rendered pose image from a DWPose preprocessor pass.
  • OpenPose (IMAGE) - the rendered pose image from an OpenPose preprocessor pass, on the same source frames.
  • Output: IMAGE - the combined pose map. Feed this exactly where you'd feed either individual preprocessor's output: into a ControlNet Apply node alongside your pose ControlNet model.

Both inputs are required - there's no optional fallback, so you need both preprocessing branches running even on a clip where you're fairly sure the subject never turns around.

How to install it

The node itself ships with ComfyUI-fastblend. Via ComfyUI Manager: search "ComfyUI-fastblend," install, restart. Manually:

cd ComfyUI/custom_nodes
git clone https://github.com/AInseven/ComfyUI-fastblend

You'll also need the actual DWPose and OpenPose preprocessors, which this pack does not ship - those live in comfyui_controlnet_aux (by Fannovel16), the standard ControlNet preprocessor pack most ComfyUI setups already have. Install that too if you don't have it, via ComfyUI Manager the same way.

Common issues & troubleshooting

One input is missing or the node errors immediately. Both DWPose and OpenPose are required - there's no way to run this with only one preprocessor branch built.

The merged pose still fails on a fast spin. This node combines two imperfect detectors; it isn't a from-scratch pose estimator, and a genuinely fast turn can still beat both of them at once. For the hard cases, expect to hand-correct individual frames rather than relying on the merge alone.

Pose looks misaligned after merging. Make sure both preprocessing branches run against the exact same source resolution and frame count - if DWPose and OpenPose were resized or cropped differently upstream, the two skeletons won't line up when this node combines them.

CategoryAInseven

Inputs (2)

NameTypeDefaultDescription
DWPoseIMAGE
OpenPoseIMAGE

Outputs (1)

NameTypeDescription
IMAGEIMAGE