Pose Detection OneToAll Animation
Retarget a dancer's motion onto a cartoon character's proportions
- model
- images
- ref_image
- pose_images
- ref_pose_image
- ref_image
- ref_mask
This is the pack's specialist node, and it solves the problem the base Wan Animate workflow quietly has: Wan Animate stretches your reference character to match the driving skeleton's proportions. If your dancer is 1.8m and your reference is a chibi cartoon, the cartoon comes out... stretched. Pose Detection OneToAll Animation exists for that - it's the preprocessing half of One-to-All-Animation, ssj9596's 14B motion-transfer model that kijai integrated into WanVideoWrapper in December 2025.
Community shorthand for it is "skeletal adaptive binding": the skeleton from your driving video gets aligned to your reference character, so a small or differently-proportioned character moves like the dancer without morphing into the dancer's dimensions. The whole point, as someone put it in the r/comfyui thread that introduced the node: "the skeleton proportion will/can align to the reference image (say, if it is a smaller cartoon character)."
How it works
Same detection backbone as Pose and Face Detection - YOLO finds the person, ViTPose extracts whole-body keypoints - then it converts those into the DWPose-style format the One-to-All model expects, and does the alignment. What "alignment" means depends on align_to:
ref(default) - retargets the driving skeleton onto the reference character's bone proportions, limb by limb, and keeps your reference image untouched. This is the mode that gives you the cartoon-proportion magic.pose- the other direction: it warps the reference image onto the first template pose via an affine transform, so your character literally reshapes into the dancer's stance.none- skips alignment, just draws the reference pose. Useful for direct pose transfer.
There are also two draw options worth knowing: draw_face_points and draw_head, each full / weak / none. The One-to-All authors themselves suggest lighter facial landmarks for better identity consistency, and weak/none are the dials for that.
Inputs and outputs
Required: model (from the loader), images, width/height (generation size, step 2), plus the three enums above. Optional: ref_image - the reference character (one image; it's ref_image[0] that gets used).
Outputs, all IMAGE except one:
pose_images- the aligned pose frames, ready for the model.ref_pose_image- the reference character's own skeleton, drawn at target size.ref_image- the reference image, warped to the template pose whenalign_to = "pose".ref_mask(MASK) - a mask of the warped reference, for feeding the model the character area.
In practice you run this into the One-to-All loader/sampler in kijai's WanVideoWrapper, using the bundled Wan21_OneToAllAnimation_example_01.json workflow as your starting point.
Real-world gotchas (there are several)
The giant hands/shoulders bug. The most-reported issue with align_to = "ref" is the output having oversized hands and shoulders that ignore reference proportions. It happened to enough people that the workarounds are now standard advice: keep the reference image and driving video at the same resolution (people specifically suggest 480×832), and make sure the character in your video is roughly facing the same direction as the reference. If the dancer is in profile and the reference faces forward, the retarget anchors badly.
It's paired with a specific model. This node is tuned for One-to-All-Animation. If you feed its output into plain Wan Animate you may get worse results than the normal Pose and Face Detection → Draw ViT Pose path, because the two pipelines expect different conditioning. Pick your model first, then your preprocess pack.
Resolution consistency again. The align modes are sensitive to mismatched input sizes - same rule as above: ref and video, same dimensions.
If you're just doing straight motion transfer with no reference character, this node is overkill. Use the base pack path. But the moment "the character has the wrong proportions" is your complaint, this is the node.
Inputs (8)
| Name | Type | Default | Description |
|---|---|---|---|
| model | POSEMODEL | — | |
| images | IMAGE | — | |
| width | INT | 83264–2048 | Width of the generation |
| height | INT | 48064–2048 | Height of the generation |
| align_to | COMBO | ref | Alignment mode for poses |
| draw_face_points | COMBO | full | Whether to draw face keypoints on the pose images |
| draw_head | COMBO | full | Whether to draw head keypoints on the pose images |
| ref_imageopt | IMAGE | Optional reference image for pose retargeting |
Outputs (4)
| Name | Type | Description |
|---|---|---|
| pose_images | IMAGE | — |
| ref_pose_image | IMAGE | — |
| ref_image | IMAGE | — |
| ref_mask | MASK | — |