💜 Project | 🖥️ GitHub | 🤖 MS Space | 🤖 MS Model | 🤗 HF Model | 📑 Paper
Wan-Dancer: A Hierarchical Framework for Minute-scale Coherent Music-to-Dance Generation
Clone the repo:
git clone https://github.com/Wan-Video/Wan-Dancer.git
cd Wan-Dancer
Install dependencies:
python -m venv venv_wan_dancer
source venv_wan_dancer/bin/activate
# Install package in editable mode
pip install -e .
# Install additional and specific versions dependencies
pip install moviepy loguru librosa
pip install https://mirrors.aliyun.com/pytorch-wheels/cu124/torch-2.6.0+cu124-cp310-cp310-linux_x86_64.whl
pip install torchvision==0.21.0
pip install diffusers==0.34.0
pip install yunchang==0.5.0
pip install flash_attn==2.6.3
pip install xfuser==0.4.0
pip install transformers==4.46.2
| Models | Download Links | Description |
|---|---|---|
| Wan-Dancer-14B | 🤗 Huggingface 🤖 ModelScope | Music-to-Dance |
Download models using huggingface-cli:
pip install "huggingface_hub[cli]"
huggingface-cli download Wan-AI/Wan-Dancer-14B --local-dir ./Wan-Dancer-14B
Download models using modelscope-cli:
pip install modelscope
modelscope download Wan-AI/Wan-Dancer-14B --local_dir ./Wan-Dancer-14B
Wan-Dancer can generate long-duration, high-quality, rhythmic dance videos from music with global structure and temporal continuity. Our method decouples the process into global keyframe planning and local temporal refinement, leveraging full-track musical context to ensure long-range coherence.
Run the global stage script:
cd Wan-Dancer
./gen_video_global.sh
| Parameter | Description |
|---|---|
seed |
Random seed for reproducibility. |
image_path |
Path to reference image. Example: gen_video/ref_image/1001.jpg |
prompt_path |
Path to prompt file (defines dance style). Available styles:
|
music_path |
Path to input music file. Example: gen_video/music/ChineseClassicDance.WAV |
output_folder |
Output directory for generated video. |
timestamp |
Timestamp identifier for output files. |
num_inference_steps |
Number of diffusion inference steps (e.g., 48). |
| Dance Genres | Parameter | Generated Global Video |
|---|---|---|
| Chinese Classical Dance | seed=0 image_path='gen_video/ref_image/1001.jpg' prompt_path='gen_video/prompt/古典舞_global.txt' music_path='gen_video/music/ChineseClassicDance.WAV' num_inference_steps=48 cfg_scale=5 |
|
| Street Dance | seed=0 image_path='gen_video/ref_image/2001.jpg' prompt_path='gen_video/prompt/街舞_global.txt' music_path='gen_video/music/StreetDance.WAV' num_inference_steps=48 cfg_scale=5 |
|
| K-Pop Dance | seed=0 image_path='gen_video/ref_image/3001.jpg' prompt_path='gen_video/prompt/kpop_global.txt' music_path='gen_video/music_suno/3001.WAV' num_inference_steps=48 cfg_scale=5 |
|
| Latin Dance | seed=0 image_path='gen_video/ref_image/4001.jpg' prompt_path='gen_video/prompt/拉丁舞_global.txt' music_path='gen_video/music/LatinDance.WAV' num_inference_steps=48 cfg_scale=5 |
|
| Tap Dance | seed=0 image_path='gen_video/ref_image/5001.jpg' prompt_path='gen_video/prompt/踢踏舞_global.txt' music_path='gen_video/music/TapDance.wav' num_inference_steps=48 cfg_scale=5 |
Run the local refinement stage:
cd Wan-Dancer
./gen_video_local.sh
| Parameter | Description |
|---|---|
global_video_path |
Path to the global video generated in Step 1. Required for local refinement. |
prompt_path |
Path to prompt file (defines dance style). Available styles:
|
✅ All other parameters (
seed,image_path, etc.) are identical to Step 1.
| Dance Genres | Parameter | Generated Final Video |
|---|---|---|
| Chinese Classical Dance | seed=0 image_path='gen_video/ref_image/1001.jpg' prompt_path='gen_video/prompt/古典舞_local.txt' music_path='gen_video/music/ChineseClassicDance.WAV' num_inference_steps=24 cfg_scale=5 global_video_path='outputs/global_video/1001_ChineseClassicDance_seed0.mp4' |
|
| Street Dance | seed=0 image_path='gen_video/ref_image/2001.jpg' prompt_path='gen_video/prompt/街舞_local.txt' music_path='gen_video/music/StreetDance.WAV' num_inference_steps=24 cfg_scale=5 global_video_path='outputs/global_video/2001_StreetDance_seed0.mp4' |
|
| K-Pop Dance | seed=100 image_path='gen_video/ref_image/3001.jpg' prompt_path='gen_video/prompt/kpop_local.txt' music_path='gen_video/music_suno/3001.WAV' num_inference_steps=24 cfg_scale=5 global_video_path='outputs/global_video/3001_KPopDance_seed0.mp4' |
|
| Latin Dance | seed=0 image_path='gen_video/ref_image/4001.jpg' prompt_path='gen_video/prompt/拉丁舞_local.txt' music_path='gen_video/music/LatinDance.WAV' num_inference_steps=24 cfg_scale=5 global_video_path='outputs/global_video/4001_LatinDance_seed0.mp4' |
|
| Tap Dance | seed=0 image_path='gen_video/ref_image/5001.jpg' prompt_path='gen_video/prompt/踢踏舞_local.txt' music_path='gen_video/music/TapDance.wav' num_inference_steps=24 cfg_scale=5 global_video_path='outputs/global_video/5001_TapDance_seed0.mp4' |
Note: The num_inference_steps should be set to a larger value (e.g., 48) for longer time videos.
If you use this code or framework in your research, please cite:
@article{wan-dancer-2026,
title = {Wan-Dancer: A Hierarchical Framework for Minute-scale Coherent Music-to-Dance Generation},
author = {Huang, Mingyang and Zhang, Peng and Hu, Li and Wang, Guangyuan and Zhang, Ruoshi and Lu, Yi and Cheng, Gang and Zhang, Bang},
year = {2026},
eprint = {2607.09581},
archiveprefix = {arXiv},
primaryclass = {cs.CV},
url = {https://arxiv.org/abs/2607.09581},
note = {Project page: \url{https://humanaigc.github.io/wan-dancer-project/}}
}
This project is licensed under the Apache 2.0 License — see the LICENSE file for details.
This work builds upon and integrates components from the following open-source projects:
global_model.safetensors 34 GBlocal_model.safetensors 34 GBmodels_t5_umt5-xxl-enc-bf16.pth 11 GBmodels_clip_open-clip-xlm-roberta-large-vit-huge-14.pth 4.8 GBWan2.1_VAE.pth 508 MB