MultiTalk 是一个开源的音频驱动多人对话视频生成工具,由 MeiGen-AI 开发。它通过输入多路音频、参考图像和文本提示,生成具有唇部同步的多人交互视频。项目支持真实人物和卡通角色的视频生成,适用于对话、演唱和交互控制等场景。MultiTalk 采用创新的 L-RoPE 技术,解决音频与人物绑定问题,确保唇部动作与音频精准对齐。项目在 GitHub 上提供模型权重和详细文档,遵循 Apache 2.0 许可证,适合学术研究和技术开发者使用。
功能列表
- 支持多人对话视频生成:基于多路音频输入,生成多个角色互动的视频,唇部动作与音频同步。
- 卡通角色生成:支持生成卡通人物的对话或演唱视频,扩展应用场景。
- 交互控制:通过文本提示控制角色的行为和交互逻辑。
- 分辨率灵活性:支持 480p 和 720p 视频输出,适应不同设备需求。
- L-RoPE 技术:通过标签旋转位置嵌入,解决多音频与人物绑定问题,提升生成准确性。
- TeaCache 加速:优化视频生成速度,适合低显存设备运行。
- 开源模型:提供模型权重和代码,开发者可自由下载和定制。
使用帮助
安装流程
要使用 MultiTalk,需要在本地配置运行环境。以下是详细的安装步骤,适合 Python 开发者或研究人员:
- 创建虚拟环境
使用 Conda 创建 Python 3.10 环境,确保依赖隔离:conda create -n multitalk python=3.10 conda activate multitalk
- 安装 PyTorch 和相关依赖
安装 PyTorch 2.4.1 及其配套库,支持 CUDA 加速:pip install torch==2.4.1 torchvision==0.19.1 torchaudio==2.4.1 --index-url https://download.pytorch.org/whl/cu121 pip install -U xformers==0.0.28 --index-url https://download.pytorch.org/whl/cu121
- 安装其他依赖
安装 Ninja、Librosa 等必要库:pip install ninja psutil packaging flash_attn conda install -c conda-forge librosa pip install -r requirements.txt
- 下载模型权重
从 Hugging Face 下载 MultiTalk 和相关模型权重:huggingface-cli download Wan-AI/Wan2.1-I2V-14B-480P --local-dir ./weights/Wan2.1-I2V-14B-480P huggingface-cli download TencentGameMate/chinese-wav2vec2-base --local-dir ./weights/chinese-wav2vec2-base huggingface-cli download MeiGen-AI/MeiGen-MultiTalk --local-dir ./weights/MeiGen-MultiTalk
- 验证环境
确保所有依赖正确安装,检查 GPU 是否可用(推荐使用 CUDA 兼容的 GPU)。
使用方法
MultiTalk 通过命令行脚本 generate_multitalk.py
生成视频。用户需要准备以下输入:
- 多路音频:支持 WAV 格式的音频文件,确保每路音频对应一个角色的语音。
- 参考图像:提供角色外观的静态图像,用于生成视频中的人物。
- 文本提示:描述场景或角色交互的文本,例如“Nick 和 Judy 在咖啡店对话”。
生成短视频
运行以下命令生成单段短视频:
python generate_multitalk.py \
--ckpt_dir weights/Wan2.1-I2V-14B-480P \
--wav2vec_dir weights/chinese-wav2vec2-base \
--input_json examples/single_example_1.json \
--sample_steps 40 \
--mode clip \
--size multitalk-480 \
--use_teacache \
--save_file output_short_video
生成长视频
对于长视频,使用流式生成模式:
python generate_multitalk.py \
--ckpt_dir weights/Wan2.1-I2V-14B-480P \
--wav2vec_dir weights/chinese-wav2vec2-base \
--input_json examples/single_example_1.json \
--sample_steps 40 \
--mode streaming \
--use_teacache \
--save_file output_long_video
低显存优化
如果显存不足,设置 --num_persistent_param_in_dit 0
:
python generate_multitalk.py \
--ckpt_dir weights/Wan2.1-I2V-14B-480P \
--wav2vec_dir weights/chinese-wav2vec2-base \
--input_json examples/single_example_1.json \
--sample_steps 40 \
--mode streaming \
--num_persistent_param_in_dit 0 \
--use_teacache \
--save_file output_lowvram_video
参数说明
--mode
:clip
生成短视频,streaming
生成长视频。--size
:选择multitalk-480
或multitalk-720
输出分辨率。--use_teacache
:启用 TeaCache 加速,优化生成速度。--teacache_thresh
:取值 0.2 到 0.5,平衡速度与质量。
特色功能操作
- 多人对话生成
用户需准备多路音频和对应的参考图像。音频文件应清晰,采样率建议为 16kHz。参考图像需包含角色的面部或全身特征。文本提示需明确描述场景和角色行为,例如“两人在户外咖啡桌旁讨论工作”。生成后,MultiTalk 使用 L-RoPE 技术确保每路音频与对应角色绑定,唇部动作与语音同步。 - 卡通角色支持
提供卡通角色的参考图像(如 Disney 风格的 Nick 和 Judy),MultiTalk 可生成卡通风格的对话或演唱视频。提示示例:“Nick 和 Judy 在温馨房间里唱歌”。 - 交互控制
通过文本提示控制角色动作。例如,输入“女人喝咖啡,男人看手机”,MultiTalk 会生成相应的动态场景。提示需简洁但具体,避免模糊描述。 - 分辨率选择
使用--size multitalk-720
生成高清视频,适合展示在高质量显示设备上。低分辨率 480p 适合快速测试或低性能设备。
注意事项
- 硬件要求:推荐使用配备 CUDA 的 GPU,显存至少 12GB。低显存设备需启用优化参数。
- 音频质量:音频需无明显噪声,确保唇部同步效果。
- 许可证限制:生成内容仅限学术使用,禁止商业用途。
应用场景
- 学术研究
研究人员可使用 MultiTalk 探索音频驱动视频生成技术,测试 L-RoPE 等创新方法在多角色场景中的效果。 - 教育演示
教师可生成卡通角色对话视频,用于课堂教学或在线课程,增加趣味性和互动性。 - 虚拟内容创作
内容创作者可快速生成多人对话或演唱视频,用于短视频平台或虚拟角色展示。 - 技术开发
开发者可基于 MultiTalk 的开源代码,定制特定场景的视频生成工具,应用于虚拟会议或数字人项目。
QA
- MultiTalk 支持哪些音频格式?
支持 WAV 格式音频,建议采样率为 16kHz,确保唇部同步效果最佳。 - 如何解决音频与人物绑定错误?
MultiTalk 使用 L-RoPE 技术,通过为音频和视频嵌入相同标签,自动解决绑定问题。确保输入的音频和参考图像一一对应。 - 生成视频需要多长时间?
取决于硬件和视频长度。短视频(10秒)在高性能 GPU 上约需 1-2 分钟,长视频可能需 5-10 分钟。 - 是否支持实时生成?
当前版本不支持实时生成,需离线处理。未来版本可能优化低延迟生成。 - 如何优化低显存设备性能?
使用--num_persistent_param_in_dit 0
和--use_teacache
,降低显存占用。