ComfyUI Node Runs on cloud

Save Pose Keypoints

Dump OpenPose JSON to disk for editing and pipelines

By Fannovel16·Created 3 years ago·Updated 4 months ago· 4,134
Save Pose Keypoints
  • pose_kps
    filename_prefixPoseKeypoint

    This is the node you use when you want the pose data, not just the skeleton picture. The pose preprocessors - DWPose, OpenPose, AnimalPose - output structured keypoint data alongside their skeleton image. Save Pose Keypoints writes that data to disk as an OpenPose-format JSON file, dropped into your ComfyUI output folder right next to your rendered images. From there you can open it in a pose editor, tweak the joints, and feed it back in - or hand it off to any tool or script that speaks OpenPose JSON. If you've ever wanted to fix a detected pose by hand instead of re-shooting the reference, this is the export step.

    How it works

    Pose preprocessors produce a POSE_KEYPOINT output - an array of joint coordinates in OpenPose's JSON schema (body, hands, face), one entry per frame in an image batch. This node takes that POSE_KEYPOINT and serializes it to a .json file on disk. It's an output node, so it doesn't pass anything downstream in the graph - running it is the action, and the result is a file. The README calls this out directly as the user-side way to get OpenPose JSON: connect Save Pose Keypoints to your pose preprocessor, run the graph, and the JSON lands in the output directory alongside your images.

    That JSON is the portable, editable form of a pose. Load it into an OpenPose editor to nudge a wrist that got detected wrong, build a library of reusable poses, or drive a custom animation or batching pipeline - anything that consumes the standard OpenPose format.

    The inputs that matter

    Two inputs, no outputs (it writes a file instead):

    • pose_kps (POSE_KEYPOINT) - wire this from a pose preprocessor's keypoint output (DWPose, OpenPose, or AnimalPose). This is the data that gets saved.
    • filename_prefix (default PoseKeypoint) - the name stub for the saved file. Set it to something descriptive if you're saving lots of poses so you can find them later.

    That's the whole interface. Because it's an output node, the file gets written every time the node runs.

    Installing it

    ComfyUI Manager: search ComfyUI's ControlNet Auxiliary Preprocessors, install, restart. Or manually:

    cd ComfyUI/custom_nodes
    git clone https://github.com/Fannovel16/comfyui_controlnet_aux
    pip install -r requirements.txt
    

    Restart ComfyUI. No model download - this is pure file I/O.

    Where people get burned

    The most common snag: the node doesn't appear, or you're on an older version of the pack. The README literally says "If you haven't found Save Pose Keypoints node, update this extension" - so update comfyui_controlnet_aux before assuming anything's broken. Second, remember what feeds it: you need a pose preprocessor with a POSE_KEYPOINT output upstream (DWPose or OpenPose for people, AnimalPose for animals). Connecting anything else won't work. Finally, don't expect a downstream connection - this is a terminal output node, so its job is done when the file hits your output folder. Check there for your JSON.

    CategoryControlNet Preprocessors/Pose Keypoint Postprocess

    Inputs (2)

    NameTypeDefaultDescription
    pose_kpsPOSE_KEYPOINT
    filename_prefixSTRINGPoseKeypoint

    Outputs (0)

    No outputs