说明文档
🔉👄 Wav2Lip STUDIO 独立版
<img src="demo/demo.gif" width="100%">
demo/demo1.mp4
💡 简介
本仓库包含 Wav2Lip Studio 独立版本。
这是一个一站式解决方案:只需选择视频和语音文件(wav 或 mp3),工具就会生成口型同步视频、换脸、声音克隆以及带声音克隆的视频翻译(类似 HeyGen)。 它通过应用特定的后处理技术,提高了 Wav2Lip 工具 生成的口型同步视频的质量。

📖 快速索引
- 🚀 更新日志
- 🔗 系统要求
- 💻 安装说明
- 🐍 教程
- 🐍 使用方法
- 👄 关键帧管理器
- 👄 输入视频
- 📺 示例
- 📖 工作原理
- 💪 质量技巧
- ⚠️ 注意限制
- 📝 待办事项
- 😎 贡献指南
- 🙏 致谢
- 📝 引用
- 📜 许可证
- ☕ 支持 Wav2lip Studio
🚀 更新日志
2024.01.20 重大更新(仅限独立版本)
- ♻ 项目管理:添加管理多个项目的功能
- 👪 引入多人换脸:现在可以在一个镜头中换多个脸(参见使用方法部分)
- ⛔ 可见人脸限制:即使帧中未检测到人脸,现在也可以完成整个流程!
- 📺 视频尺寸:支持高分辨率视频输入(已测试 1980x1080,应该支持 4K 但速度较慢)
- 🔑 关键帧管理器:添加关键帧管理器以更好地控制视频生成
- 🍪 coqui TTS 集成:移除 bark 集成,改用 coqui TTS(参见使用方法部分)
- 💬 对话功能:添加多人对话功能(参见使用方法部分)
- 🔈 录制自己的声音:添加录制自己声音的功能(参见使用方法部分)
- 👬 克隆声音:添加从视频中克隆声音的功能(参见使用方法部分)
- 🎏 视频翻译:添加带声音克隆的视频翻译功能(参见使用方法部分)
- 🔉 Wav2lip 音量放大器:添加放大 wav2lip 输出音量的功能(参见使用方法部分)
- 🕡 在语音开始前添加延迟
- 🚀 加速处理:提升处理速度
2023.09.13
- 👪 引入换脸功能:facefusion 集成(参见使用方法部分)此功能处于实验阶段。
2023.08.22
- 👄 引入 bark(参见使用方法部分),此功能处于实验阶段。
2023.08.20
- 🚢 引入 GFPGAN 模型作为选项。
- ▶ 添加恢复生成功能。
- 📏 优化生成后释放内存。
2023.08.17
- 🐛 修复紫嘴唇问题
2023.08.16
- ⚡ 添加 Wav2lip 和增强视频输出,可选择下载最适合您的版本,通常是"生成的视频"。
- 🚢 更新用户界面:引入 CodeFormer 保真度控制。
- 👄 移除图片输入功能,SadTalker 更适合此用途。
- 🐛 修复输入和输出视频之间导致遮罩位置不正确的差异问题。
- 💪 优化质量流程以提高效率。
- 🚫 中断时,如果流程已创建帧,仍会生成视频
2023.08.13
- ⚡ 加速计算
- 🚢 更改用户界面:添加隐藏参数控制
- 👄 仅在需要时追踪嘴部
- 📰 控制调试
- 🐛 修复缩放因子问题
🔗 系统要求
- FFmpeg:从 FFmpeg 官方网站 下载。按照适合您操作系统的说明进行安装,注意 ffmpeg 必须能从命令行访问。
💻 安装说明
Windows 用户
-
安装 Visual Studio。在安装过程中,确保在 Visual Studio 安装程序中包含 Python 和 C++ 包。

-
安装 git
-
如果尚未安装,安装 Cuda 11.8

-
检查 python 和 git 安装
python --version git --version nvcc --version应返回类似以下内容
Python 3.10.11 git version 2.35.1.windows.2 nvcc: NVIDIA (R) Cuda compiler driver Copyright (c) 2005-2022 NVIDIA Corporation Built on Wed_Sep_21_10:41:10_Pacific_Daylight_Time_2022 Cuda compilation tools, release 11.8, V11.8.89 Build cuda_11.8.r11.8/compiler.31833905_0 -
如果您的计算机上有多个 Python 版本,编辑 wav2lip-studio.bat 并更改以下行:
REM set PYTHON=\"your python.exe path\"set PYTHON=\"your python.exe path\" -
双击 wav2lip-studio.bat,这将安装依赖项并下载模型
MACOS 用户
-
安装 python 3.9
brew update brew install python@3.9 brew install git-lfs git-lfs install -
安装环境和依赖项
cd /YourWav2lipStudioFolder /opt/homebrew/bin/python3.9 -m venv venv ./venv/bin/python3.9 -m pip install torch==2.1.2 torchvision==0.16.2 torchaudio==2.1.2 ./venv/bin/python3.9 -m pip install -r requirements.txt ./venv/bin/python3.9 -m pip install transformers==4.33.2 ./venv/bin/python3.9 -m pip install numpy==1.24.4如果 pip install -r requirements.txt 不起作用或时间过长
./venv/bin/python3.9 -m pip install inaSpeechSegmenter ./venv/bin/python3.9 -m pip install gradio==4.14.0 imutils==0.5.4 numpy opencv-python==4.8.0.76 scipy==1.11.2 requests==2.28.1 pillow==9.3.0 librosa==0.10.0 opencv-contrib-python==4.8.0.76 huggingface_hub==0.20.2 tqdm==4.66.1 cutlet==0.3.0 numba==0.57.1 imageio_ffmpeg==0.4.9 insightface==0.7.3 unidic==1.1.0 onnx==1.14.1 onnxruntime==1.16.0 psutil==5.9.5 lpips==0.1.4 GitPython==3.1.36 facexlib==0.3.0 gfpgan==1.3.8 gdown==4.7.1 pyannote.audio==3.1.1 TTS==0.21.2 openai-whisper==20231117 resampy==0.4.0 scenedetect==0.6.2 uvicorn==0.23.2 starlette==0.35.1 fastapi==0.109.0 fugashii ./venv/bin/python3.9 -m pip install torch==2.1.2 torchvision==0.16.2 torchaudio==2.1.2 ./venv/bin/python3.9 -m pip install transformers==4.33.2 ./venv/bin/python3.9 -m pip install numpy==1.24.4 -
安装模型
git clone https://huggingface.co/numz/wav2lip_studio models -
启动界面
./venv/bin/python3.9 wav2lip_studio.py
所有用户
- pyannote.audio:您需要同意共享您的联系信息以访问 pyannote 模型。 为此,请访问以下两个链接:
设置每个字段并点击"同意并访问仓库"

- 创建 Huggingface 访问令牌:
- 使用您的账户登录
- 进入设置中的访问令牌
- 以读取模式创建新令牌
- 复制令牌
- 将其粘贴到 api_keys.json 文件中
{ \"huggingface_token\": \"your token\" }
教程
🐍 使用方法
##参数
- 输入项目名称并点击回车。
- 选择视频(avi 或 mp4 格式)。注意 avi 文件不会显示在视频输入中,但处理仍然可以正常工作。
- 换脸(需要时间,请耐心等待):
- 换脸:选择您想要与视频中人脸交换的人脸图像(现在支持多张人脸),左边的人脸是 id 0。
- 分辨率缩放因子:视频的分辨率将除以此因子。因子越大,处理越快,但输出视频的分辨率越低。
- 最小人脸检测宽度:要检测的人脸最小宽度。允许忽略视频中的小人脸。
- 对齐人脸:允许在发送到 Wav2Lip 处理之前校正头部。
- 说话人变化时生成关键帧:允许在说话人变化时生成关键帧。这使您可以更好地控制视频生成。
- 场景变化时生成关键帧:允许在场景变化时生成关键帧。这使您可以更好地控制视频生成。
- 设置上述参数后,点击生成关键帧,有关更多详细信息,请参阅关键帧管理器部分。
- 音频,3 个选项:
- 将音频文件放入"语音"输入框。或使用"录制"按钮录制一个。
- 使用文本转语音 coqui TTS 集成生成音频。
- 选择语言
- 选择声音
- 在"提示"文本区域中以文本格式或 json 格式写入您的语音:
- 文本格式:
Hello, my name is John. I am 25 years old. - Json 格式(您可以请 ChatGPT 为您生成对话):
[ { \"start\": 0.0, \"end\": 3.0, \"text\": \"Hello, my name is John. I am 25 years old.\", \"speaker\": \"arnold\" }, { \"start\": 3.0, \"end\": 4.0, \"text\": \"Ho really ?\", \"speaker\": \"female_01\" }, ... ]
- 文本格式:
- 输入视频:允许使用输入视频中的音频、声音克隆和翻译。有关更多详细信息,请参阅输入视频部分。
- 视频质量:
- 低:原始 Wav2Lip 质量,速度快但效果不太好。
- 中:通过对嘴部应用后处理获得更好的质量,速度较慢。
- 高:通过应用后处理并提升嘴部质量获得更好的质量,速度较慢。
- Wav2lip 检查点:在 2 个 wav2lip 模型之间选择:
- Wav2lip:原始 Wav2Lip 模型,速度快但效果不太好。
- Wav2lip GAN:通过对嘴部应用后处理获得更好的质量,速度较慢。
- 人脸修复模型:在 2 个人脸修复模型之间选择:
- Code Former:
- 值为 0 提供更高的质量,但可能会显著改变人物的面部外观并导致帧之间明显的闪烁。
- 值为 1 提供较低的质量,但更一致地保持人物的面部并减少帧闪烁。
- 不建议使用低于 0.5 的值。调整此设置以获得最佳效果。建议从 0.75 开始。
- GFPGAN:通常质量更好。
- Code Former:
- 音量放大器:不是放大输出音频的音量,而是允许您在发送到 Wav2Lip 时放大音频音量。这使您可以更好地控制嘴唇动作。
关键帧管理器

全局参数:
- 仅追踪嘴部:此选项仅追踪嘴部,移除其他面部动作,如脸颊和下巴的动作。
- 仅显示说话人人脸:此选项允许您只关注说话人的人脸,其他人脸将被隐藏。
- 帧号:允许您在视频帧之间移动的滑块。
- 添加关键帧:允许在当前帧号添加关键帧。
- 移除关键帧:允许在当前帧号移除关键帧。
- 关键帧:所有关键帧的列表。
对于关键帧上的每个人脸:
- 人脸 Id:当前关键帧中所有人脸的列表。
- 说话人:复选框,用于将当前关键帧的当前人脸 Id 设置为说话人。
- 换脸 Id:复选框,用于在当前人脸 Id 上设置当前关键帧的换脸 id。
- 嘴部遮罩膨胀:这将膨胀嘴部遮罩以覆盖嘴部周围更多区域。取决于嘴部大小。
- 人脸遮罩腐蚀:这将腐蚀人脸遮罩以移除人脸周围的一些区域。取决于人脸大小。
- 遮罩模糊:这将模糊遮罩使其更平滑,尽量保持在嘴部遮罩膨胀值以下或相等。
- 填充滑块:这将向头部添加填充以避免在视频中切掉头部。
输入视频

如果翻译音频中没有声音,将使用输入视频中的音频。如果输入视频的口型同步不好,这可能很有用。
克隆声音:
- 说话人数量:视频中的说话人数量。帮助克隆知道要克隆多少个声音。
- 克隆前移除背景声音:在克隆前移除背景中的噪音/音乐。
- 克隆声音:从输入视频克隆声音。
- 声音:克隆的声音列表。
翻译:
- 语言:翻译输入视频的目标语言。
- Whisper 模型:用于翻译的 whisper 模型列表,在 5 个模型之间选择,模型越大质量越好但处理越慢。
- 翻译:将输入视频翻译为所选语言。
- 翻译结果:翻译后的文本。
- 翻译音频:翻译后的音频。
- 转换为音频:将翻译文本转换为翻译音频。
📺 示例
demo/demo2.mp4
demo/demo3.mp4
demo/demo4.mp4
demo/demo5.mp4
📖 工作原理
此扩展分几个阶段运行,以提高 Wav2Lip 生成视频的质量:
- 生成换脸视频:如果"换脸"字段中有图像,脚本首先生成换脸视频,此操作需要时间,请耐心等待。
- 生成 Wav2lip 视频:然后脚本使用输入视频和音频生成低质量的 Wav2Lip 视频。
- 视频质量增强:使用低质量视频,通过用户定义的增强器创建高质量视频。
- 遮罩创建:脚本在嘴部周围创建遮罩,并尝试保持其他面部动作,如脸颊和下巴的动作。
- 视频生成:然后脚本获取高质量的嘴部图像,并在嘴部遮罩的引导下将其叠加到原始图像上。
💪 质量技巧
- 使用高质量视频作为输入
- 使用具有一致帧率的视频。有时,视频可能表现出异常的播放帧率(不是标准的 24、25、30、60),这可能导致人脸遮罩问题。
- 使用高质量音频文件作为输入,没有背景噪音或音乐。使用 https://podcast.adobe.com/enhance 等工具清理音频。
- 膨胀嘴部遮罩。这将帮助模型保留一些面部动作并隐藏原始嘴部。
- 遮罩模糊最多是嘴部遮罩膨胀值的两倍。如果您想增加模糊,请增加嘴部遮罩膨胀的值,否则嘴部会模糊,底层嘴部可能会可见。
- 放大可以改善结果,特别是嘴部区域。但是,它会延长处理时间。使用 Olivio Sarikas 的此教程放大您的视频:https://www.youtube.com/watch?v=3z4MKUqFEUk。确保去噪强度设置在 0.0 到 0.05 之间,选择"revAnimated"模型,并使用批处理模式。我很快会为此创建一个教程。
⚠ 注意限制
- 为了加速处理,尽量保持分辨率在 1000x1000px 以下,并在处理后进行放大。
- 如果初始阶段过长,请考虑使用"缩放因子"来减小视频尺寸。
- 虽然视频没有严格的大小限制,但较大的视频将需要更多的处理时间。建议使用"缩放因子"来最小化视频大小,然后在处理完成后放大视频。
📝 待办事项
- ✔️ 独立版本
- ✔️ 添加使用换脸图像的方法
- ✔️ 添加使用视频作为音频输入的可能性
- ✔️ 将 avi 转换为 mp4。Avi 不会显示在视频输入中,但处理工作正常
- [ ] ComfyUI 集成
😎 贡献指南
我们欢迎对本项目的贡献。提交 pull request 时,请提供更改的详细描述。有关更多信息,请参阅 CONTRIBUTING。
🙏 致谢
☕ 支持 Wav2lip Studio
这个项目是一个开源项目,免费使用和修改。我依靠用户的支持来维持这个项目并帮助改进它。如果您想支持我,可以在我的 Patreon 页面捐款。任何贡献,无论大小,都非常感谢!
您的支持帮助我支付开发和维护成本,并允许我分配更多的时间和资源来增强这个项目。感谢您的支持!
📝 引用
如果您在文章、教程或演示中在自己的作品中使用此项目,我们鼓励您引用此项目以感谢其中付出的努力。
要引用此项目,请使用以下 BibTeX 格式:
@misc{wav2lip_uhq,
author = {numz},
title = {Wav2Lip UHQ},
year = {2023},
howpublished = {GitHub repository},
publisher = {numz},
url = {https://github.com/numz/sd-wav2lip-uhq}
}
📜 许可证
- 本仓库中的代码按 LICENSE 文件 中的 MIT 许可证发布。
numz/wav2lip_studio
作者 numz
创建时间: 2024-01-18 18:50:09+00:00
更新时间: 2024-02-11 23:09:19+00:00
在 Hugging Face 上查看