Nodes/ComfyUI-Openpose-Editor-Plus/Openpose Editor Plus
ComfyUI Node

Openpose Editor Plus

Openpose Editor Plus

By whmc76·Created 3 years ago·Updated 2 years ago· 46
Openpose Editor Plus
    • IMAGE
    image

    The one thing people miss from A1111 is dragging a pose skeleton around by hand. ComfyUI has all the ControlNet plumbing, but the manual edit step usually means hunting down a pose PNG or fighting a separate popup window. Openpose Editor Plus (from whmc76) puts the whole editor inside the node - a fabric.js canvas embedded right in the widget where you drag the colored joints, and it hands you back a finished, color-coded pose image you can drop straight into any openpose ControlNet.

    It's a community answer to the old ComfyUI-OpenPose-Editor, which the subreddit has called "very limited and kind broken." This one isn't a miracle, but the in-node canvas beats juggling a separate editor window.

    How it works

    The Python half is almost insultingly small. openPoseEditorPlus lists whatever PNGs are sitting in ComfyUI's temp directory as an image dropdown, and when executed it loads the selected file, converts it to a 0–1 float tensor, and returns it as an IMAGE. That's it. All the actual editing lives in the frontend (js/openPoseEditorPlus.js), which bundles fabric.js and draws a stick figure of 18 keypoints - nose, eyes, ears, shoulders, elbows, wrists, hips, knees, ankles - with the limbs color-coded in the classic OpenPose palette.

    When you add the node, the frontend paints a default standing pose, uploads it as a PNG (named Pose_0.png, Pose_1.png, …) to the temp folder through ComfyUI's /upload/image endpoint, and sets the node's image widget to that filename. That's why the one required input looks like a combo of temp files rather than something you pick yourself. Every time you finish dragging a joint, the pose is re-uploaded and the node re-runs (it hashes the file to detect changes), so the pipeline updates live.

    The inputs and outputs that matter

    There's exactly one input and one output, and you'll barely touch the input:

    • image - the auto-managed dropdown of temp-folder pose PNGs. Let the editor handle it; if you pick a different temp file it'll just load that image instead.
    • IMAGE output - a full-color skeleton on black, sized 512×512 by default. Wire this into the image input of an Apply ControlNet node, or the openpose/pose slot of a union apply node. Do not run a pose preprocessor on it first - you'd be re-detecting a human from a stick figure. The editor already produced the control image.

    Beyond the schema, the node's own buttons do the real work: Add pose stacks another skeleton for multi-person scenes, Reset pose drops back to the default, and the ⟲/⟳ buttons undo and redo. There's also a Ref button that loads a background reference image at 50% opacity - handy for tracing, though the README itself admits background reference and imported poses are still half-finished features.

    Installing it

    ComfyUI Manager, search "ComfyUI-Openpose-Editor-Plus", install, restart. Or the manual way:

    cd ComfyUI/custom_nodes
    git clone https://github.com/whmc76/ComfyUI-Openpose-Editor-Plus
    

    No models to download, no pip dependencies worth worrying about - fabric.js ships bundled in the repo, and the Python side only needs PIL/torch/numpy, which ComfyUI already has. After restarting, hard-refresh the browser (Ctrl+F5), because the pack copies its JS into ComfyUI's web/extensions folder on startup and a normal reload can serve stale files.

    The rough edges

    • Your pose history lives in the browser, not the workflow. Undo history is stored in localStorage under the ComfyUI_Poses key, keyed by node name. Clear browser data, switch machines, or use another browser and your careful edits are gone - the node falls back to the default standing pose. Export the output image if the pose matters.
    • The editor is a big square widget (roughly 530×620) and it hides when you zoom the canvas out below 0.5×. Zoom back in to keep dragging.
    • It reads the temp folder, so if something wipes ComfyUI's temp directory the dropdown can come up empty. The node self-heals by re-uploading the default pose, but your last pose won't be there.

    When ControlNet ignores your pose

    The classic complaint with these editors, verbatim from the subreddit: "I can edit it fine like back on A1111 but just can't make ControlNet follow said pose." Three usual culprits. First, wiring - the pose image goes into Apply ControlNet's image, not into a preprocessor node. Second, control strength - most pose ControlNets and modern union models want 0.7–0.9, and starting from the old 1.0 default overcooks it. Third, model matching - a pose ControlNet trained for SD1.5 won't condition an SDXL or Flux base; use the checkpoint built for your base model. Nail those three and the skeleton you drag is the skeleton you get.

    Categoryimage

    Inputs (1)

    NameTypeDefaultDescription
    imageCOMBO0 options:

    Outputs (1)

    NameTypeDescription
    IMAGEIMAGE