SCAIL AIST Full Sequence
Real, uncut AIST++ choreography — smooth, authentic, and yes, repetitive
- library
- audio_features
- reference_pose
- beat_info
- pose_sequence
Where SCAILAISTBeatDance chops real dance data into reactive half-second chunks, SCAILAISTFullSequence plays the whole routine. A professional dancer's complete AIST++ performance, start to finish, with no cuts and no genre-mixing. The motion is smooth and authentic in a way procedural generation can't fake - it's the "cinematic dance" option in this pack, and the tradeoff is spelled out in the README: it can feel repetitive if you recognize the source choreography. You're buying real dance, not infinite variety.
What it needs
The node takes an AIST_FULL_LIBRARY from SCAILAISTFullLoader (the ~200MB full-sequence download, distinct from the chunk library) plus audio_features from SCAILAudioFeatureExtractor. The audio features here aren't driving the moves - a full sequence is already choreographed. They're used to time the sequence to your clip length and fps, so the dance fills the exact number of frames your video needs.
The controls you'll actually set:
genre- a single dropdown of the 10 genres (break, pop, lock, waack, krump, house, street_jazz, ballet_jazz, la_hip_hop, middle_hip_hop). No mixing; pick one and commit.transition_frames- how many frames to blend from your reference pose into the dance start. This is what keeps your character from snapping from standing to mid-groove.start_beat- which beat of the source routine to begin from. 0 is the beginning; this is your way to skip past the part everyone recognizes.seed- which of the sequences in that genre the node picks.
Two optional inputs round it out: reference_pose (a SCAIL pose from DWPose or the base generator, used to match scale and position) and beat_info from SCAILBeatDetector, which aligns the sequence start to a beat in your audio - worth wiring in if you want the dance to start on the downbeat rather than wherever the clip begins.
Output and workflow position
One output: pose_sequence, into SCAILPoseRenderer, and the rendered skeleton frames go to your Wan pose-control setup (the pack's example workflows use WanVideoAddSCAILPoseEmbeds in ComfyUI-WanVideoWrapper). The node doesn't need beat or feature inputs except audio_features for timing - so a minimal graph is FullLoader → FullSequence → Renderer.
Installing and troubleshooting
Same pack install as everything here: clone ckinpdx/ComfyUI-SCAIL-AudioReactive into ComfyUI/custom_nodes, pip install -r requirements.txt, restart (or use ComfyUI Manager). First run downloads the full-sequence library through the loader - a few minutes and a console progress bar.
The gotchas are the genre one and the repetition one. Genre is single-select by design, so if you wanted variety you're on the wrong node - that's the chunk-based path. And if the routine feels like a loop, that's not a bug: it's one real dancer's one real performance. start_beat and the seed are your escape hatches. This is the node to reach for when you want a flawless 20 seconds of dance for a hero shot, not a varied backing track.
Inputs (8)
| Name | Type | Default | Description |
|---|---|---|---|
| library | AIST_FULL_LIBRARY | Full sequence library from loader | |
| audio_features | SCAIL_AUDIO_FEATURES | Audio features for frame count/fps | |
| genre | COMBO | break | Dance genre |
| transition_frames | INT | 121–60 | Frames to blend from reference pose to dance |
| start_beat | INT | 00–100 | Which beat in the source to start from (0=beginning) |
| seed | INT | 00–4294967295 | Random seed for sequence selection |
| reference_poseopt | SCAIL_POSE | Starting pose from DWPose to match scale/position | |
| beat_infoopt | SCAIL_BEAT_INFO | Optional beat info to start on a beat-aligned frame |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| pose_sequence | SCAIL_POSE_SEQUENCE | — |