Nodes/ComfyUI_DWposeDeluxe/DWposeDeluxe Keypoint Converter
ComfyUI Node

DWposeDeluxe Keypoint Converter

The utility node that keeps pose data honest

By hobinrude·Created 9 months ago·Updated 8 months ago· 11
DWposeDeluxe Keypoint Converter
  • pose_keypoints
  • pose_keypoints
  • input_keypoint_info
padding_mode
confidence_threshold0.25
reset_confidencefalse
force_normalizedfalse
pretty_jsonfalse
save_outputfalse

Pose data is only useful if everyone downstream agrees on what it means, and this pack's own nodes will happily eat either normalized (0–1) or absolute (pixel) coordinates. That's a footgun: mix the two and your skeleton silently lands in the wrong place. The KeypointConverter is the node you run your data through when you want it clean, consistent, and saved - it converts coordinate systems, filters low-confidence junk, and writes the result to disk.

It's less glamorous than the estimator, but it's the one node that rescues you from "my pose is 4 inches to the left and everything's broken" debugging.

The settings that matter

  • padding_mode - auto-padding fills in a canvas size if your data doesn't carry one; no-padding leaves it alone. The pack's geometry nodes need canvas dimensions, so if your data came from outside the pack and lacks them, this is where you fix that.
  • force_normalized - converts everything to normalized (0–1) coordinates. Flip this when you're feeding data into a pipeline that demands relative coords and you don't want to trust auto-detection.
  • confidence_threshold (default 0.25) - drops keypoints below this confidence. Good for scrubbing noise; raises it and you get a cleaner but sparser skeleton.
  • reset_confidence - sets valid points to confidence 1.0 and invalid ones to 0.0. Binary on/off instead of fuzzy values, which some downstream tools prefer.
  • pretty_json - human-readable, indented JSON output. The author is blunt: this makes very large files, so only use it on small batches when you genuinely need to eyeball the data.
  • save_output - writes the converted data to a file in your ComfyUI output directory.

Outputs

  • pose_keypoints - the processed, cleaned, converted dataset.
  • input_keypoint_info - a STRING summary of what went in (frame count, people, detected format). The pack's UnifiedKeypointHandler also auto-detects normalized vs. absolute, which is what most of the other nodes use to stay consistent.

The workflow

Run the estimator → run the output through this converter once (normalize, filter, save) → load the saved file later with LoadPoseKeypoints → edit with the pack's other nodes. One clean pass up front beats chasing format bugs in five places downstream.

Installing it

Ships with DWposeDeluxe:

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

or search DWposeDeluxe in ComfyUI Manager. No models needed. Two honest caveats: the pretty JSON warning is real - a long video batch can balloon into a multi-megabyte wall of whitespace, so leave it off unless you're debugging. And if your source data is a weird or proprietary structure, the converter can only normalize what it recognizes; data from other packs may need manual cleanup first.

CategoryDWposeDeluxe

Inputs (7)

NameTypeDefaultDescription
pose_keypointsPOSE_KEYPOINT
padding_modeCOMBO2 options: auto-padding, no-padding
confidence_thresholdFLOAT0.250–1
reset_confidenceBOOLEANfalse
force_normalizedBOOLEANfalse
pretty_jsonBOOLEANfalse
save_outputBOOLEANfalse

Outputs (2)

NameTypeDescription
pose_keypointsPOSE_KEYPOINT
input_keypoint_infoSTRING