Nodes/ComfyUI-FASHN-VTON/Fashn Pose Keypoints Adapter
ComfyUI Node

Fashn Pose Keypoints Adapter

Feed FASHN the pose you want, not the pose it detects for you

By drphero·Created 7 months ago·Updated 7 months ago· 10
Fashn Pose Keypoints Adapter
  • pose_keypoints
  • FASHN_DWPOSE_KEYPOINTS
single_persontrue

Virtual try-on is secretly a pose problem. Where the model drapes a garment is decided largely by where it thinks the person's shoulders, arms, and torso are. FASHN VTON v1.5 bundles its own DWPose detector for exactly that job, and in most workflows it's all you need. But "most" isn't "all," and Fashn Pose Keypoints Adapter is the pack's answer for the cases where you want to supply the pose yourself - from a better detector, a hand-corrected pose, or a reference shot.

What it does

ComfyUI's pose ecosystem doesn't all speak one dialect. Nodes like ControlNet Auxiliary Preprocessors output POSE_KEYPOINT payloads, and those don't look like what FASHN's pipeline expects internally. This adapter runs a conversion (convert_pose_keypoints_to_dwpose) that takes an OpenPose-style people payload or a DWPose-style body and normalizes it into the internal DWPose-style keypoint dict the pipeline consumes. If the payload is something it can't parse, it raises a clear error instead of silently corrupting your pose.

The inputs are just two:

  • pose_keypoints - a POSE_KEYPOINT from any third-party DWPose/OpenPose node.
  • single_person - default true. The internal detector works on a single person, so this picks the first detected body to match that behavior. Flip it only if you have a real reason to pass multi-person data.

The output is a FASHN_DWPOSE_KEYPOINTS payload, and it feeds exactly two places on Fashn VTON Inference: person_pose_keypoints and garment_pose_keypoints.

The workflow it enables

The README lays out the standard pattern, and it's only four nodes:

  1. Third-party DWPose/OpenPose node → Fashn Pose Keypoints Adapter
  2. Adapter output → person_pose_keypoints (and optionally garment_pose_keypoints) on the inference node
  3. Set pose_source to auto (default) or external_pose_keypoints

The fallback behavior is forgiving: if your keypoint payload is missing or invalid, the pipeline warns and falls back to internal DWPose rather than failing. So the worst case of wiring this wrong is "you get the default behavior anyway," not a crash. For flat-lay garments, the pipeline uses a built-in dummy pose regardless of what you connect.

When it's worth the extra nodes

Honestly, only sometimes. If the internal DWPose handles your person image cleanly - normal standing shot, decent lighting - this adapter is dead weight. Reach for it when the internal detector fails: extreme angles, cropped limbs, hands occluding the garment area, or when you've already got a pose in your workflow from a ControlNet pipeline and don't want the pack running a second detector. That last one is the real argument: it saves you a detection pass and lets the pose you already tuned drive the try-on. It's a niche tool, but it's the difference between "the model guessed the pose" and "I said exactly how this garment should hang."

Install is the standard pack route - ComfyUI Manager search "ComfyUI-FASHN-VTON", or git clone into custom_nodes and pip install -r requirements.txt.

CategoryFashnAI/Adapters

Inputs (2)

NameTypeDefaultDescription
pose_keypointsPOSE_KEYPOINT
single_personBOOLEANtrue

Outputs (1)

NameTypeDescription
FASHN_DWPOSE_KEYPOINTSFASHN_DWPOSE_KEYPOINTS