Nodes/ComfyUI_DWposeDeluxe/DWposeDeluxe Estimator (No TRT)
ComfyUI Node

DWposeDeluxe Estimator (No TRT)

The DWpose node that actually keeps up with video

By hobinrude·Created 9 months ago·Updated 8 months ago· 11
DWposeDeluxe Estimator (No TRT)
  • image
  • audio
  • video_info
  • custom_options
  • pose_image
  • blend_image
  • face_image
  • source_image
  • audio
  • frame_rate
  • keypoints
frame_count
poses_to_detect1
show_bodytrue
show_feettrue
show_facetrue
show_handstrue
make_blendfalse
crop_facefalse
provider_typeCPU
precisionfp32
detector_model
estimator_model
save_keypointsfalse

If you've ever run the stock DWPose estimator from ControlNet Aux over a video, you know the pain: it works, and it's slow enough that you go make tea. This node is the same idea with a TensorRT engine bolted on, so the pose detection stage stops being the thing that decides your whole turnaround time. It's the core of the DWposeDeluxe pack - one node that detects people, renders the skeleton, and hands you clean keypoint data you can edit, save, and feed to video-control workflows.

DWPose is the pose detector you want anyway. It's the improved descendant of OpenPose: same body/face/hands keypoints, noticeably better hand tracking, which is exactly where OpenPose drops points. You typically don't use the skeleton image for its own sake - you feed it to a ControlNet as the spatial condition so the model follows the motion.

What it actually does

Feed it an image or a frame batch, and it runs two models back to back: a person detector (yolox_l.onnx) finds bounding boxes, then a whole-body pose estimator (dw-ll_ucoco_384.onnx) places 18 body points, 70 face points, and 21 points per hand on each person. Both models auto-download from Hugging Face into ComfyUI/models/dwpose/ the first time the pack loads - no manual model hunting.

The provider_type is the big switch. CPU runs plain ONNX and works anywhere. GPU builds TensorRT engines from those same ONNX files the first time you pick it (plan for 5–6 minutes of building), caches them, and then runs a claimed ~20x faster than the un-boosted estimator. That claim is real in spirit even if your mileage varies - TensorRT DWPose is why people put up with TRT installs at all. precision is fp16 or fp32; start with fp16 and only fall back if you see artifacts.

The inputs that matter

The image input is the only required one. Everything else is optional:

  • poses_to_detect - max people per frame, ranked by bounding box area. Great for excluding background photo-bombers; the author admits it gets glitchy on high-action multi-person footage, so don't trust it to track identities.
  • show_body / show_feet / show_face / show_hands - toggle what gets drawn. Feet are the pack's selling point; most stock DWPose renderers skip them.
  • custom_options - plug in a CustomOptions node to adjust dot sizes, line thickness, and confidence thresholds.
  • video_info (VHS_VIDEOINFO) - pass video metadata through so the frame_rate output stays correct.

The outputs are the honest reason to use this over a bare estimator. pose_image is the skeleton on black, blend_image a 50/50 blend with the source, source_image and audio are pass-throughs so you can keep your video chain intact, and keypoints is the raw pose data as a POSE_KEYPOINT sequence - which is what the rest of this pack's editing nodes eat. There's also face_image, a horizontal atlas of cropped faces that's handy as a reference for WAN Animate / SteadyDancer. Heads-up: faces are stitched left-to-right by detection order, so if two characters swap sides mid-video the atlas re-arranges.

Installing it

ComfyUI Manager, search DWposeDeluxe, install, restart. Or manually:

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

That pulls onnxruntime, onnxruntime-gpu, opencv-python, matplotlib, polygraphy, and colored. If you pick GPU and TensorRT isn't present, the pack tries to install tensorrt-cuXX matching your PyTorch CUDA version and asks for one more restart. Two gotchas: there are no TensorRT builds for Python ≥ 3.14, and the pack auto-installs TensorRT at import time - that's surprising the first time you see pip start installing things during ComfyUI startup.

Common issues

  • Quiet interruptions. The pack suppresses user-side errors with InterruptProcessingException, so a workflow can just stop mid-pose. Watch the console for the actual error log.
  • TRT install fails. Python ≥ 3.14, or CUDA not detected by PyTorch, both skip auto-install. Install manually: pip install tensorrt-cu12 (or cu11/cu13 to match your CUDA).
  • "No TRT" in the display name is stale - this node absolutely supports TensorRT; the label predates it.

One more thing: the pack is CC BY-NC-SA licensed (forked from yuvraj108c's ComfyUI-Dwpose-Tensorrt), so no commercial use, and it's still under active development. If something's rough, that's the reason - and the author wants issues filed.

CategoryDWposeDeluxe

Inputs (17)

NameTypeDefaultDescription
imageIMAGE
frame_countoptINT
audiooptAUDIO
video_infooptVHS_VIDEOINFO
custom_optionsoptDWOPOSE_CUSTOM_OPTIONS
poses_to_detectoptINT1-1–100
show_bodyoptBOOLEANtrue
show_feetoptBOOLEANtrue
show_faceoptBOOLEANtrue
show_handsoptBOOLEANtrue
make_blendoptBOOLEANfalse
crop_faceoptBOOLEANfalse
provider_typeoptCOMBOCPU2 options: CPU, GPU
precisionoptCOMBOfp322 options: fp16, fp32
detector_modeloptCOMBO3 options: TensorRT_Not_Installed, auto-build, yolox_l.onnx
estimator_modeloptCOMBO3 options: TensorRT_Not_Installed, auto-build, dw-ll_ucoco_384.onnx
save_keypointsoptBOOLEANfalse

Outputs (7)

NameTypeDescription
pose_imageIMAGE
blend_imageIMAGE
face_imageIMAGE
source_imageIMAGE
audioAUDIO
frame_rateFLOAT
keypointsPOSE_KEYPOINT