MultiTalk 是语音驱动的多人对话视频生成框架,能够依据多流音频输入、参考图像和提示词,生成符合提示交互、唇形和音频同步的视频内容,可用于多人对话、歌唱场景、交互控制和卡通角色生成等。
MultiTalk支持单人和多人视频生成,能呈现出非常自然的对话场景,通过提示词直接操控虚拟人物,实现真实的互动效果,能生成真人形象,可应用于卡通角色制作与歌唱场景,支持 480p 和 720p 输出,能适配任意宽高比,可生成最长 15 秒的视频内容。
1、创建 Conda 环境并安装 PyTorch 和 xformers
conda create -n multitalk python=3.10
conda activate multitalk
pip install torch==2.2.2 torchvision==0.17.2 torchaudio==2.2.2 --index-url https://download.pytorch.org/whl/cu121
pip install -U xformers==0.0.25.post1 --index-url https://download.pytorch.org/whl/cu121
2、安装 Flash-attn
pip install packaging
pip install ninja
pip install psutil==7.0.0
pip install flash-attn==2.5.6 --no-build-isolation
或通过 whl 文件安装:
wget https://github.com/Dao-AILab/flash-attention/releases/download/v2.5.6/flash_attn-2.5.6+cu122torch2.2cxx11abiFALSE-cp310-cp310-linux_x86_64.whl
python -m pip install flash_attn-2.5.6+cu122torch2.2cxx11abiFALSE-cp310-cp310-linux_x86_64.whl
3、安装其他依赖
conda install -c conda-forge librosa
pip install -r requirements.txt
4、安装 FFmpeg
conda install -c conda-forge ffmpeg
或
sudo yum install ffmpeg ffmpeg-devel
1、模型下载
模型名称 | 下载链接 | 说明 |
---|---|---|
Wan2.1-I2V-14B-480P | 🤗 Huggingface | 基础模型 |
chinese-wav2vec2-base | 🤗 Huggingface | 音频编码器 |
MeiGen-MultiTalk | 🤗 Huggingface | 音频条件权重 |
使用 huggingface-cli 下载:
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
2、将 MultiTalk 模型链接或复制到 Wan2.1 目录
链接方式:
mv weights/Wan2.1-I2V-14B-480P/diffusion_pytorch_model.safetensors.index.json weights/Wan2.1-I2V-14B-480P/diffusion_pytorch_model.safetensors.index.json_old
sudo ln -s {绝对路径}/weights/MeiGen-MultiTalk/diffusion_pytorch_model.safetensors.index.json weights/Wan2.1-I2V-14B-480P/
sudo ln -s {绝对路径}/weights/MeiGen-MultiTalk/multitalk.safetensors weights/Wan2.1-I2V-14B-480P/
复制方式:
mv weights/Wan2.1-I2V-14B-480P/diffusion_pytorch_model.safetensors.index.json weights/Wan2.1-I2V-14B-480P/diffusion_pytorch_model.safetensors.index.json_old
cp weights/MeiGen-MultiTalk/diffusion_pytorch_model.safetensors.index.json weights/Wan2.1-I2V-14B-480P/
cp weights/MeiGen-MultiTalk/multitalk.safetensors weights/Wan2.1-I2V-14B-480P/
模型兼容 480P 和 720P 分辨率,当前代码仅支持 480P 推理,720P 需多 GPU 支持(后续更新)。
唇形同步精度:音频 CFG 值在 3-5 时效果最佳,提高该值可改善同步效果。
视频片段长度:模型基于 25 FPS、81 帧视频训练,生成 81 帧时提示跟随效果最佳,最长可生成 201 帧,但过长可能降低提示跟随性能。
长视频生成:音频 CFG 影响片段间色调一致性,设为 3 可减轻色调变化。
采样步数:减少步数(如 10 步)可加快生成速度,不影响唇形同步,但会影响动作和视觉质量;步数越多,视频质量越高。
1、单人场景
• 单片段短视频生成:
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 --frame_num 81 --mode clip --save_file single_exp
• 长视频生成:
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 --save_file single_long_exp
2、多人场景
• 单片段短视频生成:
python generate_multitalk.py --ckpt_dir weights/Wan2.1-I2V-14B-480P \
--wav2vec_dir 'weights/chinese-wav2vec2-base' --input_json examples/multitalk_example_1.json --sample_steps 40 --frame_num 81 --mode clip --save_file multi_exp
• 长视频生成:
python generate_multitalk.py --ckpt_dir weights/Wan2.1-I2V-14B-480P \
--wav2vec_dir 'weights/chinese-wav2vec2-base' --input_json examples/multitalk_example_2.json --sample_steps 40 --mode streaming --save_file multi_long_exp