Generate dwpose
The pose node that doesn't fight back
- reference_image
- video
- ref_pose
- pose_seq
Generate dwpose is the pack's second pose-extraction node, and the reason it exists is right there in the name and the changelog: the original Align & Generate poses for UniAnimate node throws an error whenever the DWPose detector can't read an image cleanly. This variant - class name Gen_align_pose2 - is the author's fix, a more forgiving extractor that lets generation proceed where its sibling would crash.
The catch is spelled out in the release notes: this node does not align the driving pose to your reference image. The Gen_align_pose node scales the whole pose sequence to match your character's proportions; this one just hands back raw DWPose skeletons. The tradeoff is explicit - you get robustness at the cost of alignment. If your reference person and the person in the driving video aren't already similar in build and framing, you'll see proportion mismatch in the output. The workaround, per the author, is to manually frame the driving video so the person roughly matches your reference before you ever touch this node.
Inputs and outputs
The interface is identical to Gen_align_pose, which makes swapping trivial:
reference_image- your photo of the person.video- the driving clip as a frame batch.
And the same two outputs:
ref_pose- the pose extracted from your reference image.pose_seq- the per-frame pose batch of the driving video.
Wire both into the ref_pose and pose_sequence inputs of Animate image with UniAnimate or Animate image with Animate_X. There's nothing else to configure - it's a pure preprocessing node with no knobs, which is both its simplicity and its limit.
When to actually use it
The decision between this and Gen_align_pose is a robustness-versus-quality call. If your driving video is clean, well-lit, full-body, and readable by DWPose, Gen_align_pose gives you the better start thanks to alignment. If you keep hitting the cannot convert float infinity to integer error - the pack's signature failure when DWPose can't parse a frame - this node is the escape hatch that lets the pipeline run anyway.
One quirk worth knowing: both pose nodes are only required by the two base Animate image with... nodes. The Long and v2 variants generate their own poses internally and expose the same choice through their dontAlignPose parameter - setting it true there is functionally the same as choosing this node over Gen_align_pose. So think of Gen_align_pose2 as the "keep it simple, skip the alignment" option, whether you take it as a standalone node or as a boolean.
Install
Pack-standard, no extra files: ComfyUI Manager (search "UniAnimate Nodes for ComfyUI") or git clone https://github.com/Isi-dev/ComfyUI-UniAnimate-W into custom_nodes/. It needs the two DWPose ONNX models (dw-ll_ucoco_384.onnx, yolox_l.onnx) in checkpoints/ - part of the ~14GB stack the README's python modeldownloader.py pulls - plus onnxruntime. Like its sibling, it still can't read a truly broken driving video; the robustness gain is real but not magical.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| reference_image | IMAGE | — | |
| video | IMAGE | — |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| ref_pose | IMAGE | — |
| pose_seq | IMAGE | — |