XB_WanDancerCombo
One node that turns a music file into dance prompts and audio features for Wan Dancer
- 音频
- 整体描述提示词
- 舞蹈风格提示词
Wan-Dancer-14B, Alibaba's music-to-dance model, needs three things before it can make a character move to a song: a slice of the audio, a set of audio features (onset envelope, MFCC, chroma, beats), and a text prompt describing the dance style. Upstream ComfyUI splits that across an audio slicer, a dance-audio encoder, and a prompt switcher. XB_WanDancerCombo collapses all three into one node: pick an audio file, set the clip times and dance style, and it hands you the audio features and the ready-made Chinese prompts.
The source is honest about its ancestry - the interface is "照抄 AudioSlicerV1" (copied from the pack's audio slicer), the feature extraction is "照抄 WanDancerEncodeAudio" (the official Wan Dancer encoder), and the prompt logic is the pack's XB_WanDanceSwitcher. So this is a convenience bundle, not new science: it slices the audio to your start/end time, computes the same mel-spectrogram/onset/MFCC/chroma/beat features the official encoder does, and generates the two prompts.
What you set
- audio - a file picker (mp3, wav, flac, ogg, m4a, ...) from your input directory; "none" is allowed.
- start_time / end_time (seconds) - which slice of the track to use.
- video_frames (default 149) - the total video frame count you plan to generate; the FPS is derived from the audio slice length vs. this count.
- audio_inject_scale (default 1) - how strongly the audio features drive the motion. Lower it if the dance gets too twitchy.
- dance_style - 古典舞 (classical), 韩舞 (K-pop), 街舞 (street/hip-hop), 拉丁舞 (Latin), 踢踏舞 (tap).
- motion_amplitude - 低 / 中等 / 高 / 最大 (low / medium / high / max).
Outputs: 音频 (AUDIO) - a bundle carrying the sliced waveform, the extracted audio_feature, the derived fps, and the inject scale; 整体描述提示词 (the full scene prompt: "一个人正在跳舞,舞蹈种类是X, 图像清晰程度高, 人物动作幅度Y"); and 舞蹈风格提示词 (the style + FPS string, e.g. "古典舞, 帧率是30fps。"). The audio bundle plugs into XB_WanDancerVideo's audio_encoder_output; the prompts go to a text encoder.
The dependencies - this one has teeth
Because it calls ComfyUI's official Wan Dancer module and torchaudio, it needs: torchaudio (pip install torchaudio) and scipy, plus a ComfyUI new enough to ship comfy_extras.nodes_wandancer - the node's own error says 0.28.0 or newer. If you cloned the pack on an older ComfyUI, this node will refuse loudly. The other thing to know: the prompts are Chinese, and the model was fine-tuned to respond to them, so resist "translating" them to English - the pack's whole Dancer workflow is built around these exact strings.
Install
cd ComfyUI/custom_nodes
git clone https://github.com/WJLUOXIAO/XB_ToolBox.git
pip install torchaudio scipy
then restart, or install via ComfyUI Manager ("XB_ToolBox") and let it handle requirements. Wan-Dancer-14B weights are Apache 2.0 and ungated on HuggingFace.
Inputs (8)
| Name | Type | Default | Description |
|---|---|---|---|
| audio | COMBO | 1 options: none | |
| start_time | FLOAT | 0.000–99999 | — |
| end_time | FLOAT | 10.000–99999 | — |
| duration_display | STRING | 0 帧 | — |
| video_frames | INT | 1491–8192 | 视频总帧数 |
| audio_inject_scale | FLOAT | 1.000–10 | 音频注入强度 |
| dance_style | COMBO | 古典舞 | 5 options: 古典舞, 韩舞, 街舞, 拉丁舞, 踢踏舞 |
| motion_amplitude | COMBO | 中等 | 4 options: 低, 中等, 高, 最大 |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| 音频 | AUDIO | — |
| 整体描述提示词 | STRING | — |
| 舞蹈风格提示词 | STRING | — |