MusicInfuser:一个可以根据音乐和文本生成舞蹈视频的模型
MusicInfuser 是什么?
MusicInfuser 是一个将文本到视频扩散模型与音乐对齐的项目,能够根据音乐和文本生成舞蹈视频。它通过引入音乐-视频交叉注意力机制,使生成的视频能够与音乐节奏同步。
MusicInfuser 功能
音乐驱动的舞蹈视频生成:根据输入的音乐和文本提示生成高质量的舞蹈视频。
灵活的文本提示:用户可以通过文本提示指定舞蹈风格、场景、舞者特征等。
支持长序列生成:虽然模型最初是基于 73 帧序列训练的,但可以外推生成更长的视频序列。
随机种子控制:通过设置随机种子,用户可以生成不同的舞蹈结果。
MusicInfuser 应用
创意视频制作:为视频创作者提供音乐驱动的舞蹈视频生成工具,提升内容创作效率。
娱乐与表演:用于生成个性化的舞蹈表演视频,适用于虚拟现实、增强现实等场景。
教育与培训:帮助舞蹈学习者通过生成的视频更好地理解舞蹈动作与音乐节奏的配合。
MusicInfuser 使用方法
一、安装
1. 克隆仓库:
git clone https://github.com/SusungHong/MusicInfuser cd MusicInfuser
2. 创建并激活 Conda 环境:
conda create -n musicinfuser python=3.10 conda activate musicinfuser
3. 安装依赖:
pip install -r requirements.txt pip install -e ./mochi --no-build-isolation
4. 下载模型权重:
python ./music_infuser/download_weights.py weights/
二、推理(生成视频)
运行以下命令生成视频:
python inference.py --input-file {MP3或MP4文件路径} \ --prompt {文本提示} \ --num-frames {生成的帧数}
input-file:输入文件(MP3 或 MP4),从中提取音频。
prompt:生成舞蹈的文本提示。提示越具体,生成结果通常越好,但过于具体可能会降低音频的影响。默认值为 "a professional female dancer dancing K-pop in an advanced dance setting in a studio with a white background, captured from a front view"。
num-frames:生成的帧数。默认值为 145。
其他可选参数:
seed:随机种子,用于控制生成结果的随机性。默认值为 None。
cfg-scale:文本提示的分类器自由引导(CFG)比例。默认值为 6.0。
三、训练
1. 数据预处理:
bash music_infuser/preprocess.bash -v {数据集路径} -o {处理后的视频输出目录} -w {预训练的 Mochi 模型路径} --num_frames {帧数}
2. 运行训练:
bash music_infuser/run.bash -c music_infuser/configs/music_infuser.yaml -n 1
注意:当前实现仅支持单 GPU 训练,训练 73 帧序列需要大约 80GB 的显存。
相关链接
GitHub 项目页面:https://github.com/SusungHong/MusicInfuser
论文:https://arxiv.org/abs/2503.14505