ComfyUI Extension: ComfyUI_DWposeDeluxe
A custom ComfyUI node integrating DW-Pose (Denoising Whole-Body Pose Estimation) for high-quality pose detection with CPU (ONNX) and GPU (TensorRT) support. Features 20x faster performance with TensorRT acceleration, automatic model downloading, customizable pose visualization, keypoint conversion, and video workflow integration.
Custom Nodes (0)
README
ComfyUI DWpose Deluxe
Pre-release sneak-peek
A pimped up custom node for ComfyUI that integrates the DW-Pose (Denoising Whole-Body Pose Estimation) model for high-quality pose detection. This node supports both CPU (ONNX) and high-performance GPU (TensorRT) execution, with automatic model downloading and engine building. Runs on average 20x faster than pose estimators without TensorRT engine booster. Added functionality for drawing feet, composite image with optional frame count for pose debugging, json dataset output and json converter node.
Key Features
-
Dual Execution Providers: Choose between CPU (ONNX) for broad compatibility and GPU (TensorRT) for maximum performance.
-
Automatic Setup:
- Automatically downloads the required ONNX models on first use.
- Automatically builds and caches optimized TensorRT engines when the GPU provider is selected for the first time.
-
Modular Workflow: Comes with three distinct nodes for a flexible and powerful workflow:
DWposeDeluxeNode: The core node for performing pose estimation.DWposeDeluxe Weight Options: Fine-tune the visual style of the rendered pose skeleton, such as dot size and line thickness.DWposeDeluxe Keypoint Converter: A utility node to convert keypoint data between absolute (pixel) and normalized (percentage) coordinates.
-
Rich I/O:
pose_image: The generated pose skeleton on a black background.blend_image: A 50/50 blend of the source image and the pose image.source_image: A passthrough of the original input image.audio: A passthrough for the audio channel from video inputs.frame_rate: The frame rate derived from thevideo_infoinput.keypoints: Raw pose keypoints in a structured JSON format.
-
Advanced Customization:
- Toggle visibility for face, hands, and feet in the final pose.
- Save generated keypoint data directly to your ComfyUI output directory.
- Add a frame number overlay to batch outputs, helpful by pose debugging.
-
Video Workflow Ready: Includes
audioandvideo_infoinput,frame_countandframe_rateoutputs,source_imageandaudiopass-through to seamlessly integrate with video load/combine nodes.
Full Pose With Feet (optional)
Installation
-
Navigate to your ComfyUI installation directory.
-
Clone this repository into the
custom_nodesfolder:cd ComfyUI/custom_nodes/ git clone https://github.com/hobinrude/ComfyUI_DWposeDeluxe -
Navigate into the newly cloned directory:
cd ComfyUI_DWposeDeluxe -
Install the required dependencies: ( assumes CUDA 12.X by default )
pip install -r requirements.txt -
Start or restart ComfyUI.
How to Use
-
In ComfyUI, add the
DWposeDeluxeNodeto your workflow. -
Connect an image source (e.g., from a Load Image or Load Video node) to the
imageinput. -
Select the
provider_type:CPU: Uses the ONNX runtime. Models will be downloaded automatically if not found inComfyUI/models/dwpose/.GPU: Uses the TensorRT runtime. The first time you select this, the node will build optimized.trtengine files. This may take several (5-6) minutes, but subsequent runs will be significantly faster - 20x the speed of regular.onnxmodels.
-
(Optional) Add the
DWposeDeluxe Weight Optionsnode and connect itsoptionsoutput to theweight_optionsinput on the main node to customize the appearance of the pose by setting modifier values for dot size and bone thickness. -
(Optional) Connect the
keypointsoutput to theDWposeDeluxe Keypoint Converternode to transform the keypoint data if downstream nodes require different formats. -
Set
poses_to_detectto a specific number to eliminate detections of unwanted background photo-bombers. This works based on bounding box size so will only detect X biggest poses in each frame.
Basic Example Workflow Included
![]()
Dependencies
This node requires the following Python libraries:
tensorrt-cu12
onnxruntime-gpu
opencv-python
matplotlib
polygraphy
colored
These can be installed by running pip install -r requirements.txt from within the node's directory.
If you're using CUDA 11.X or 13.X modify the TensorRT version in requirements.txt accordingly.
or install manually with:
pip install tensorrt-cu11
pis install tensorrt-cu12
pip install tensorrt-cu13
To use without GPU support a CPU onnxruntime is needed. Manually change it in requirements.txt.
Acknowledgements & License
This project is heavily based on the work of yuvraj108c and his original ComfyUI-Dwpose-Tensorrt repository. Big chunks of code have been repurposed straight from his project.
If you like this node pack and find it useful, please consider giving a star to the original repository and buying the original author a coffee, not me!
Licensing Notice
Due to the "ShareAlike" clause in the original project's license, this project is also licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0).
This means:
- You must give appropriate credit (Attribution).
- You may not use this material for commercial purposes (NonCommercial).
- If you remix, transform, or build upon the material, you must distribute your contributions under the same license (ShareAlike).
Enjoy Responsibly