InfiniteTalk 使用教程

无限时长数字人视频生成 · 音频驱动口型同步

⭐ 5.9K Star · 开源免费

📖 项目简介

InfiniteTalk 是由 MeiGen-AI 团队开源的无限时长数字人视频生成框架。只需一张照片和一段音频,即可生成高度逼真的说话视频,支持精准口型同步、头部动作、身体姿态和面部表情跟随音频驱动,且支持无限时长生成。

基于 Wan2.1-I2V-14B 基座模型,InfiniteTalk 提出了创新的稀疏帧视频配音框架,在口型准确性和身份保持方面大幅超越传统方案。

核心亮点

💬
精准口型同步
不仅嘴型精准,还同步头部、身体和表情
♾️
无限时长生成
突破传统短视频限制,音频多长视频多长
📸
图片驱动
一张照片 + 一段音频即可生成说话视频
👥
多人动画
支持多人场景的同时动画生成

⚙️ 环境要求

⚠️
低显存用户可使用 --num_persistent_param_in_dit 0 参数或量化模式(FP8)来降低显存占用。

🚀 安装步骤

1

创建 Conda 环境并安装 PyTorch

bash conda create -n multitalk python=3.10 conda activate multitalk 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
2

安装 Flash Attention

bash pip install misaki[en] pip install ninja psutil packaging wheel pip install flash_attn==2.7.4.post1
3

安装其他依赖

bash pip install -r requirements.txt conda install -c conda-forge librosa ffmpeg
4

下载模型权重

需要下载 3 个模型:基座模型、音频编码器、InfiniteTalk 权重

bash 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/InfiniteTalk --local-dir ./weights/InfiniteTalk

🎯 使用方法

单 GPU 推理(480P)

bash python generate_infinitetalk.py \ --ckpt_dir weights/Wan2.1-I2V-14B-480P \ --wav2vec_dir weights/chinese-wav2vec2-base \ --infinitetalk_dir weights/InfiniteTalk/single/infinitetalk.safetensors \ --input_json examples/single_example_image.json \ --size infinitetalk-480 \ --sample_steps 40 \ --mode streaming \ --motion_frame 9 \ --save_file infinitetalk_res

720P 高分辨率

--size 参数改为 infinitetalk-720 即可输出 720P 视频。

低显存模式

添加 --num_persistent_param_in_dit 0 参数可大幅降低显存占用。

多人动画

将模型路径改为 weights/InfiniteTalk/multi/infinitetalk.safetensors 即可支持多人场景。

Gradio Web UI

bash python app.py \ --ckpt_dir weights/Wan2.1-I2V-14B-480P \ --wav2vec_dir weights/chinese-wav2vec2-base \ --infinitetalk_dir weights/InfiniteTalk/single/infinitetalk.safetensors \ --num_persistent_param_in_dit 0 \ --motion_frame 9
启动后打开浏览器访问 Gradio 界面,可视化操作上传图片和音频,一键生成数字人视频。

常见问题

Q: 显存不够怎么办?

使用 --num_persistent_param_in_dit 0 参数启动低显存模式,或使用 --quant fp8 量化模式进一步降低显存占用。

Q: 支持哪些分辨率?

支持 480P 和 720P 两种分辨率。使用 --size infinitetalk-480--size infinitetalk-720 切换。

Q: 生成的视频最长可以多长?

理论上无限长!默认最大帧数为 1000 帧(约 40 秒),可通过 --max_frame_num 参数调整。streaming 模式支持无限长度生成。

Q: 长视频有色偏问题怎么办?

超过 1 分钟的视频可能出现色偏。一个技巧是将输入图片转换为短视频(平移或缩放),可以显著改善长视频质量。