Nodes/JPS Custom Nodes for ComfyUI/CtrlNet OpenPose Pipe (JPS)
ComfyUI Node

CtrlNet OpenPose Pipe (JPS)

Unpack your pose-ControlNet settings

By JPS-GER·Created 3 years ago·Updated 2 years ago· 100
CtrlNet OpenPose Pipe (JPS)
  • openpose_settings
  • openpose_source
  • openpose_strength
  • openpose_start
  • openpose_end
  • openpose_body
  • openpose_face
  • openpose_hand

The companion half of CtrlNet OpenPose Settings (JPS). That node bundles seven pose-ControlNet values into one wire so your graph isn't a spaghetti of individual connections; this one takes that bundle back apart, wherever you actually need the values. The whole reason JPS split it into two nodes rather than one is placement - you build the settings menu once, up top, and drop the Pipe node down near whatever's actually consuming the values, potentially far away in a busy graph.

What it does

One input, openpose_settings (a BASIC_PIPE - really just JPS's own bundled tuple, not Impact Pack's object of the same type name), and seven outputs that unpack it:

  • openpose_source (INT) - which reference image to use, as a plain integer rather than the "Source Image / Support Image / Support Direct" label it started as. That's deliberate: an integer output is exactly what the select input on the pack's Image Switch (or Integer Switch) expects, so this is almost certainly meant to drive one directly - wire it straight into a switch's select and let the settings node upstream pick your pose source without you touching the graph again.
  • openpose_strength (FLOAT) - the ControlNet weight, feeds a ControlNet Apply node's strength input.
  • openpose_start / openpose_end (FLOAT) - the step window, feed the start/end percent inputs on Apply ControlNet (Advanced).
  • openpose_body / openpose_face / openpose_hand - the enable/disable toggles for each keypoint group, meant for whichever OpenPose preprocessor node you're running (most preprocessor nodes in the ecosystem expose exactly these three switches).

None of this runs pose detection or applies anything itself - it's routing. The actual work happens in an OpenPose preprocessor node (to generate the pose skeleton image) and an Apply ControlNet node (to condition generation on it); this pipe just hands each of those the right value from a single source of truth.

Installing it

Comes with the rest of the pack. ComfyUI Manager: search JPS Custom Nodes for ComfyUI. Manually:

cd ComfyUI/custom_nodes
git clone https://github.com/JPS-GER/ComfyUI_JPS-Nodes.git

Restart ComfyUI afterward. No models, no extra Python packages - it's logic only. If an old copy of the pack is already installed, remove it first before cloning the new one, per the author's own install note.

Where people get tripped up

The output types have to land on inputs of the matching kind - openpose_strength is a FLOAT and won't plug into something expecting a widget-only value unless that node has a matching input socket exposed (most ControlNet Apply nodes do, but double check you're on the "Advanced" variant if you want the start/end step window, since the basic Apply ControlNet node doesn't expose those). And this node is useless without its Settings counterpart feeding it - if you're starting from scratch, add CtrlNet OpenPose Settings (JPS) first, wire its openpose_settings output straight into this node's input, and only then start pulling individual values out. Like the rest of the pack's newer ControlNet Settings/Pipe nodes, this one isn't listed in the README's node inventory - that file is older than this part of the pack, so don't rely on it as a complete list of what's installed.

CategoryJPS Nodes/Pipes

Inputs (1)

NameTypeDefaultDescription
openpose_settingsBASIC_PIPE

Outputs (7)

NameTypeDescription
openpose_sourceINT
openpose_strengthFLOAT
openpose_startFLOAT
openpose_endFLOAT
openpose_bodyenable,disable
openpose_faceenable,disable
openpose_handenable,disable