Nodes/XB_ToolBox/XB_WanDancerCombo
ComfyUI Node

XB_WanDancerCombo

One node that turns a music file into dance prompts and audio features for Wan Dancer

By wjluoxiao·Created 5 months ago·Updated 6 days ago· 302
XB_WanDancerCombo
    • 音频
    • 整体描述提示词
    • 舞蹈风格提示词
    audio
    start_time0.00
    end_time10.00
    duration_display0 帧
    video_frames149
    audio_inject_scale1.00
    dance_style古典舞
    motion_amplitude中等

    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.

    CategoryXB_ToolBox/Wan

    Inputs (8)

    NameTypeDefaultDescription
    audioCOMBO1 options: none
    start_timeFLOAT0.000–99999
    end_timeFLOAT10.000–99999
    duration_displaySTRING0 帧
    video_framesINT1491–8192视频总帧数
    audio_inject_scaleFLOAT1.000–10音频注入强度
    dance_styleCOMBO古典舞5 options: 古典舞, 韩舞, 街舞, 拉丁舞, 踢踏舞
    motion_amplitudeCOMBO中等4 options: 低, 中等, 高, 最大

    Outputs (3)

    NameTypeDescription
    音频AUDIO
    整体描述提示词STRING
    舞蹈风格提示词STRING