Nodes/ComfyUI-ProportionChanger/pose_keypoint to SCAIL-Pose
ComfyUI Node

pose_keypoint to SCAIL-Pose

Handing your edited skeleton to SCAIL-Pose

By grmchn·Created about a year ago·Updated 3 months ago· 102
pose_keypoint to SCAIL-Pose
  • keypoints
  • scail_pose

Here's the thing about all this proportion-editing: none of it matters unless you can feed the result into a model that actually generates video. This node is the bridge to one of those models. ConvertToSCAILPose takes your edited 25-point POSE_KEYPOINT and repackages it as the DWPOSES data that SCAIL-Pose workflows consume - kijai's ComfyUI-SCAIL-Pose pack, the pose-conditioned SCAIL preview path that shipped before SCAIL-2 dropped skeleton control entirely.

Quick history so you don't get confused: SCAIL started as a motion-transfer model that conditioned on a DWPose-style skeleton, and that's the variant this node feeds. The much newer SCAIL-2 removed the intermediate pose representation altogether - its whole pitch is "no stick figure, we keep depth and contact" - so it has no use for this output. You're targeting the SCAIL-Pose path, not SCAIL-2. The example workflow in the pack (proportion_changer_SCAIL_pose.json) wires it exactly that way: mascot pose detection or DWPose → this node → the SCAIL-Pose inference nodes.

How it works

The conversion is mostly bookkeeping, but the details are why it exists. It re-slices your POSE_KEYPOINT's flat per-person arrays - 18 body points, 68 face points, 21 per hand - into the structured bodies/hands/faces layout SCAIL-Pose expects, normalizes coordinates against the canvas size (it detects whether they're already normalized and skips that step), builds the subset connectivity from the confidence scores, and importantly sets swap_hands: True because SCAIL-Pose's pipeline stores hands right-then-left while the pack stores left-then-right. It also caps at one person per frame - SCAIL-Pose's converter is single-subject, and this mirrors that.

The one input, the one output

  • keypoints - a POSE_KEYPOINT, typically the output of Mascot Pose Detector or any pose you've already pushed through Reference/Params.
  • scail_pose - the DWPOSES handle that plugs into NLFPredict-style SCAIL-Pose nodes.

Install and gotchas

Shared pack install (Manager search "ComfyUI-ProportionChanger", or clone + pip install -r requirements.txt + restart). The node itself is pure numpy - no extra dependencies.

The real gotcha is upstream: SCAIL-Pose wants a solid 25-point body with confident keypoints, and the model expects a person. If you run it off the standard human detector on a normal subject you're fine; if you feed it a mascot detection with lots of low-confidence joints, the subset marks them invisible and you get a half-skeleton driving the video. Same advice as everywhere in this pack: render the pose first, check it, then convert.

CategoryProportionChanger

Inputs (1)

NameTypeDefaultDescription
keypointsPOSE_KEYPOINT

Outputs (1)

NameTypeDescription
scail_poseDWPOSES