Nodes/ComfyUI-SCAIL-AudioReactive/SCAIL AIST Full Sequence
ComfyUI Node

SCAIL AIST Full Sequence

Real, uncut AIST++ choreography — smooth, authentic, and yes, repetitive

By ckinpdx·Created 9 months ago·Updated 8 months ago· 17
SCAIL AIST Full Sequence
  • library
  • audio_features
  • reference_pose
  • beat_info
  • pose_sequence
genrebreak
transition_frames12
start_beat0
seed0

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.

CategorySCAIL-AudioReactive/AIST

Inputs (8)

NameTypeDefaultDescription
libraryAIST_FULL_LIBRARYFull sequence library from loader
audio_featuresSCAIL_AUDIO_FEATURESAudio features for frame count/fps
genreCOMBObreakDance genre
transition_framesINT121–60Frames to blend from reference pose to dance
start_beatINT00–100Which beat in the source to start from (0=beginning)
seedINT00–4294967295Random seed for sequence selection
reference_poseoptSCAIL_POSEStarting pose from DWPose to match scale/position
beat_infooptSCAIL_BEAT_INFOOptional beat info to start on a beat-aligned frame

Outputs (1)

NameTypeDescription
pose_sequenceSCAIL_POSE_SEQUENCE