File size: 10,318 Bytes
dfc9961
 
 
3bf6d05
 
dfc9961
 
 
3bf6d05
 
 
dfc9961
3bf6d05
dfc9961
 
 
 
 
 
3bf6d05
dfc9961
 
 
3bf6d05
dfc9961
 
 
3bf6d05
dfc9961
 
 
3bf6d05
 
 
 
 
 
 
dfc9961
 
 
3bf6d05
 
 
dfc9961
 
 
3bf6d05
 
 
dfc9961
3bf6d05
 
dfc9961
3bf6d05
 
 
 
 
 
 
 
 
 
dfc9961
3bf6d05
dfc9961
3bf6d05
 
 
dfc9961
 
3bf6d05
 
dfc9961
3bf6d05
dfc9961
 
3bf6d05
 
dfc9961
3bf6d05
dfc9961
 
3bf6d05
 
dfc9961
3bf6d05
dfc9961
3bf6d05
dfc9961
3bf6d05
 
 
dfc9961
 
3bf6d05
dfc9961
3bf6d05
 
 
 
 
 
 
 
 
dfc9961
 
3bf6d05
 
 
 
 
 
 
 
dfc9961
3bf6d05
dfc9961
3bf6d05
dfc9961
3bf6d05
 
 
dfc9961
 
3bf6d05
dfc9961
3bf6d05
 
 
 
dfc9961
3bf6d05
dfc9961
3bf6d05
 
 
 
 
 
 
 
dfc9961
3bf6d05
dfc9961
 
 
 
 
 
3bf6d05
 
 
 
 
 
 
 
 
dfc9961
 
 
 
3bf6d05
dfc9961
 
 
 
3bf6d05
dfc9961
3bf6d05
 
dfc9961
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
---
license: apache-2.0
language:
  - en
  - zh
pipeline_tag: image-to-video
library_name: diffusers
tags:
  - video
  - video genration
  - music-to-dance
---
# Wan-Dancer-14B

<p align="center">
    <img src="assets/logo.png" width="400"/>
<p>

<p align="center">
    πŸ’œ <a href="https://humanaigc.github.io/wan-dancer-project/"><b>Wan-Dancer</b></a> &nbsp&nbsp | &nbsp&nbsp πŸ–₯️ <a href="https://github.com/Wan-Video/Wan-Dancer">GitHub</a> &nbsp&nbsp  | &nbsp&nbspπŸ€— <a href="https://huggingface.co/Wan-AI/Wan-Dancer-14B">Hugging Face</a>&nbsp&nbsp | &nbsp&nbspπŸ€– <a href="https://www.modelscope.cn/models/Wan-AI/Wan-Dancer-14B">ModelScope</a>&nbsp&nbsp | &nbsp&nbsp πŸ“‘ <a href="https://arxiv.org/abs/2607.09581">Paper</a> &nbsp&nbsp 
<br>


[**Wan-Dancer: A Hierarchical Framework for Minute-scale Coherent Music-to-Dance Generation**](https://arxiv.org/abs/2607.09581) <be>


## πŸ”₯ Latest News!!
* July 13, 2026: πŸ’ƒ We introduce **[Wan-Dancer](https://humanaigc.github.io/wan-dancer/)**, a method can generate long-duration, high-quality, rhythmic dance videos from music with global structure and temporal continuity. We released the [model weights](#model-download) and [inference code](https://github.com/Wan-Video/Wan-Dancer). And now you can try it on [ModelScope Studio](https://www.modelscope.cn/studios/Wan-AI/Wan-Dancer) or [HuggingFace Space](https://huggingface.co/spaces/Wan-AI/Wan-Dancer)!


## πŸ“‘ Todo List
- Wan-Dancer Music-to-Dance
    - [x] Inference code of Wan-Dancer
    - [x] Checkpoints of Wan-Dancer
    - [x] ComfyUI integration


## Run Wan-Dancer

#### Installation
Clone the repo:
```sh
git clone https://github.com/Wan-Video/Wan-Dancer.git
cd Wan-Dancer
```

Install dependencies:
```sh
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
```

#### Model Download

| Models              | Download Links                                                                                                                              | Description |
|--------------------|---------------------------------------------------------------------------------------------------------------------------------------------|-------------|
| Wan-Dancer-14B | πŸ€— [Huggingface](https://huggingface.co/Wan-AI/Wan-Dancer-14B) πŸ€– [ModelScope](https://www.modelscope.cn/models/Wan-AI/Wan-Dancer-14B)  | Music-to-Dance | |


Download models using huggingface-cli:
``` sh
pip install "huggingface_hub[cli]"
huggingface-cli download Wan-AI/Wan-Dancer-14B --local-dir ./Wan-Dancer-14B
```

Download models using modelscope-cli:
``` sh
pip install modelscope
modelscope download Wan-AI/Wan-Dancer-14B --local_dir ./Wan-Dancer-14B
```

#### Run Wan-Dancer
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.

##### 1. 🎬 Generate Global Keyframe Video

Run the global stage script:

```bash
cd Wan-Dancer
./gen_video_global.sh
```

###### πŸ”§ Important Parameters

| 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).<br>Available styles:<ul><li>Chinese Classic Dance: `gen_video/prompt/ε€ε…Έθˆž_global.txt`</li><li>K-Pop Dance: `gen_video/prompt/kpop_global.txt`</li><li>Street Dance: `gen_video/prompt/θ‘—θˆž_global.txt`</li><li>Tap Dance: `gen_video/prompt/踒踏舞_global.txt`</li><li>Latin Dance: `gen_video/prompt/ζ‹‰δΈθˆž_global.txt`</li></ul> |
| `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). |


###### 🌰 Examples
| Dance Genres | Parameter             | Generated Global Video |
| ------------ |-----------------------|-----------------|
| Chinese Classical Dance | seed=0<br>image_path='gen_video/ref_image/1001.jpg'<br>prompt_path='gen_video/prompt/ε€ε…Έθˆž_global.txt'<br>music_path='gen_video/music/ChineseClassicDance.WAV'<br>num_inference_steps=48<br>cfg_scale=5 | [![Chinese Classical Dance](assets/1001.jpg)](https://cloud.video.taobao.com/vod/mV2fwDpfJ-pODxx6qn-ifq3_UMgbze7P_cI4cLO_vOo.mp4) |
| Street Dance | seed=0<br>image_path='gen_video/ref_image/2001.jpg'<br>prompt_path='gen_video/prompt/θ‘—θˆž_global.txt'<br>music_path='gen_video/music/StreetDance.WAV'<br>num_inference_steps=48<br>cfg_scale=5 | [![Street Dance](assets/2001.jpg)](https://cloud.video.taobao.com/vod/MQiVGjY_ngH3imgfIl37xaQoJfbWadYldlZoMWJFMKQ.mp4) |
| K-Pop Dance | seed=0<br>image_path='gen_video/ref_image/3001.jpg'<br>prompt_path='gen_video/prompt/kpop_global.txt'<br>music_path='gen_video/music_suno/3001.WAV'<br>num_inference_steps=48<br>cfg_scale=5 | [![K-Pop Dance](assets/3001.jpg)](https://cloud.video.taobao.com/vod/WGS6Z3VWpgGh8jnt2lrW99XeTB6uu9-H6lCGk1HBLZg.mp4) |
| Latin Dance | seed=0<br>image_path='gen_video/ref_image/4001.jpg'<br>prompt_path='gen_video/prompt/ζ‹‰δΈθˆž_global.txt'<br>music_path='gen_video/music/LatinDance.WAV'<br>num_inference_steps=48<br>cfg_scale=5 | [![Latin Dance](assets/4001.jpg)](https://cloud.video.taobao.com/vod/jnwCUj3WvuErBAxF78b-kttEJoegA6-8VmLMZsayBGI.mp4) |
| Tap Dance | seed=0<br>image_path='gen_video/ref_image/5001.jpg'<br>prompt_path='gen_video/prompt/踒踏舞_global.txt'<br>music_path='gen_video/music/TapDance.wav'<br>num_inference_steps=48<br>cfg_scale=5 | [![Tap Dance](assets/5001.jpg)](https://cloud.video.taobao.com/vod/lfrYGNMKzYaLvU3IsMyVJM003T5WZL6QKR7xiifEVAg.mp4)|

##### 2. πŸŽ₯ Generate Final High-Resolution Video

Run the local refinement stage:

```bash
cd Wan-Dancer
./gen_video_local.sh
```

###### πŸ”§ Additional Required Parameters

| 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).<br>Available styles:<ul><li>Chinese Classic Dance: `gen_video/prompt/ε€ε…Έθˆž_local.txt`</li><li>K-Pop Dance: `gen_video/prompt/kpop_local.txt`</li><li>Street Dance: `gen_video/prompt/θ‘—θˆž_local.txt`</li><li>Tap Dance: `gen_video/prompt/踒踏舞_local.txt`</li><li>Latin Dance: `gen_video/prompt/ζ‹‰δΈθˆž_local.txt`</li></ul> |

> βœ… All other parameters (`seed`, `image_path`, etc.) are identical to Step 1. 

###### 🌰 Examples
| Dance Genres | Parameter             | Generated Final Video |
| ------------ |-----------------------|-----------------|
| Chinese Classical Dance | seed=0<br>image_path='gen_video/ref_image/1001.jpg'<br>prompt_path='gen_video/prompt/ε€ε…Έθˆž_local.txt'<br>music_path='gen_video/music/ChineseClassicDance.WAV'<br>num_inference_steps=24<br>cfg_scale=5<br>global_video_path='outputs/global_video/1001_ChineseClassicDance_seed0.mp4' | [![Chinese Classical Dance](assets/1001.jpg)](https://cloud.video.taobao.com/vod/UycK9FTbYM6imr_6jF9aYbNYTiBggyE0EYptc2TRIAw.mp4) |
| Street Dance | seed=0<br>image_path='gen_video/ref_image/2001.jpg'<br>prompt_path='gen_video/prompt/θ‘—θˆž_local.txt'<br>music_path='gen_video/music/StreetDance.WAV'<br>num_inference_steps=24<br>cfg_scale=5<br>global_video_path='outputs/global_video/2001_StreetDance_seed0.mp4' | [![Street Dance](assets/2001.jpg)](https://cloud.video.taobao.com/vod/JZtIncJf7zPptZAYsQsoSxA_tyW_r62JfBBikBiTPcY.mp4) |
| K-Pop Dance | seed=100<br>image_path='gen_video/ref_image/3001.jpg'<br>prompt_path='gen_video/prompt/kpop_local.txt'<br>music_path='gen_video/music_suno/3001.WAV'<br>num_inference_steps=24<br>cfg_scale=5<br>global_video_path='outputs/global_video/3001_KPopDance_seed0.mp4' | [![K-Pop Dance](assets/3001.jpg)](https://cloud.video.taobao.com/vod/Si5ze8sR0Rm-aPUGSKsTJ2PXJAu3HtnVAzEPM85bkrc.mp4) |
| Latin Dance | seed=0<br>image_path='gen_video/ref_image/4001.jpg'<br>prompt_path='gen_video/prompt/ζ‹‰δΈθˆž_local.txt'<br>music_path='gen_video/music/LatinDance.WAV'<br>num_inference_steps=24<br>cfg_scale=5<br>global_video_path='outputs/global_video/4001_LatinDance_seed0.mp4' | [![Latin Dance](assets/4001.jpg)](https://cloud.video.taobao.com/vod/kL-0AAqQtigvaidF8Xa8YeTIs4pDLOa_4n5nqXmYiRk.mp4) |
| Tap Dance | seed=0<br>image_path='gen_video/ref_image/5001.jpg'<br>prompt_path='gen_video/prompt/踒踏舞_local.txt'<br>music_path='gen_video/music/TapDance.wav'<br>num_inference_steps=24<br>cfg_scale=5<br>global_video_path='outputs/global_video/5001_TapDance_seed0.mp4' | [![Tap Dance](assets/5001.jpg)](https://cloud.video.taobao.com/vod/GbnX-XzekrvNulbbDMw_2kEotadZmUT6KFY5smTkNZ0.mp4) |

<strong>Note:</strong> The `num_inference_steps` should be set to a larger value (e.g., 48) for longer time videos.


-------


## Citation
If you use this code or framework in your research, please cite:

```bibtex
@article{wan-dancer-2026,
  title={Wan-Dancer: A Hierarchical Framework for Minute-scale Coherent Music-to-Dance Generation},
  author={Mingyang Huang, Peng Zhang, Li Hu, Guangyuan Wang, Bang Zhang},
  website={https://humanaigc.github.io/wan-dancer/},
  url={https://arxiv.org/abs/2607.09581},
  year={2026}
}
```

## License Agreement
This project is licensed under the Apache 2.0 License β€” see the [LICENSE](LICENSE) file for details.


## Acknowledgements

This work builds upon and integrates components from the following open-source projects:

1. [DiffSynth-Studio](https://github.com/modelscope/DiffSynth-Studio)  
2. [Wan2.1](https://github.com/Wan-Video/Wan2.1)