ComfyUI Node

SCAIL Base Pose

Create 1 to 5 dancers out of thin air — no reference image needed

By ckinpdx·Created 9 months ago·Updated 8 months ago· 17
SCAIL Base Pose
  • custom_pose
  • base_pose
pose_typeactive_idle
character_count1
spacing150.00
height400.00
depth800.00
center_x0.00
center_y0.00

Every dance sequence in this pack needs a starting skeleton, and there are two ways to get one: pull it from a real image with SCAILPoseFromDWPose, or just build one. SCAILBasePoseGenerator is the second path. It procedurally creates between 1 and 5 skeletons, side by side, with adjustable spacing - no reference image, no pose detector, no video. You can go from nothing to a five-person dance crew in one node, which is honestly the fastest way to start playing with this pack.

What it makes

A SCAIL pose is an 18-keypoint skeleton (OpenPose-style layout) in 3D world space. The node constructs it from a joint map scaled to your chosen height (400 is standard - that's the baseline the whole pack assumes), then places copies of it in a row:

  • pose_type - active_idle (default; a relaxed, dance-ready stance with arms loose), t_pose, a_pose, or custom (pass your own skeleton into custom_pose).
  • character_count - 1 to 5. The pack's multi-character choreography (SCAILBeatDrivenPose's unison/mirror/random modes) really shines once you go above 1.
  • spacing - horizontal distance between characters in world units (150 default). For a group shot, this is how you stop them colliding.
  • depth - Z distance from the camera. Higher = further away and smaller on screen.
  • center_x / center_y - offsets from frame center so you can park the dancer off-axis for composition.

The custom option is worth knowing about even if you rarely use it: with pose_type=custom and a custom_pose wired in, the generator becomes a passthrough that positions your pose - a handy way to control where a DWPose-derived skeleton sits.

Output and where it goes

Single output: base_pose (type SCAIL_POSE), which is exactly the required base_pose input of SCAILBeatDrivenPose. That's the intended flow: Generator → BeatDrivenPose → Renderer. You can also feed it into the scail_pose inputs of the CMU/FBX motion nodes as a reference for scaling and positioning, or into SCAILAlignPoseToReference to park a sequence at a generated skeleton's location.

When to reach for it

Reach for it when you want a clean, stylized dancer and don't care about matching a real character - think test renders, rhythm loops, or music-visualizer-style output where the skeleton is the art. Reach for SCAILPoseFromDWPose instead when the dancer needs to match a specific character's proportions and pose from your footage. A common hybrid: generate procedural skeletons for the crowd and use a DWPose base for the lead.

Installing

Shared pack install: clone ckinpdx/ComfyUI-SCAIL-AudioReactive into ComfyUI/custom_nodes, pip install -r requirements.txt, restart - or find the pack title in ComfyUI Manager. No models, no downloads, no audio needed. It's pure math, which makes it the cheapest node in the pack to experiment with.

CategorySCAIL-AudioReactive

Inputs (8)

NameTypeDefaultDescription
pose_typeCOMBOactive_idleStarting pose style. active_idle=relaxed dance-ready
character_countINT11–5Number of characters to generate
spacingFLOAT150.0050–500Horizontal distance between characters
heightFLOAT400.00Character height scaling. 400 is standard.
depthFLOAT800.00Z-depth from camera. Higher = further away.
center_xFLOAT0.00Horizontal offset from frame center
center_yFLOAT0.00Vertical offset from frame center
custom_poseoptSCAIL_POSEOverride with custom pose when pose_type='custom'

Outputs (1)

NameTypeDescription
base_poseSCAIL_POSE