说明文档
🔉👄 Wav2Lip STUDIO
<div align="center"><b><a href="README.md">English</a> | <a href="README_CN.md">简体中文</a></b></div>
<img src="https://user-images.githubusercontent.com/800903/258130805-26d9732f-4d33-4c7e-974e-7af2f1261768.gif" width="100%">
https://user-images.githubusercontent.com/800903/262435301-af205a91-30d7-43f2-afcc-05980d581fe0.mp4
💡 描述
本仓库包含 Wav2Lip Studio 独立版本。
这是一个一体化解决方案:只需选择一个视频和一个语音文件(wav 或 mp3),该工具就能生成口型同步视频、换脸、声音克隆,以及带声音克隆的视频翻译(类似 HeyGen)。
它通过应用特定的后处理技术,提高了 Wav2Lip 工具 生成的口型同步视频的质量。

📖 快速索引
- 🚀 更新日志
- 🔗 系统要求
- 💻 安装
- 🐍 教程
- 🐍 使用方法
- 👄 关键帧管理器
- 👄 输入视频
- 📺 示例
- 📖 幕后原理
- 💪 质量技巧
- ⚠️ 已知限制
- 📝 待办事项
- 😎 贡献
- 🙏 致谢
- 📝 引用
- 📜 许可证
- ☕ 支持 Wav2lip Studio
🚀 更新日志
2024.10.13 为驱动视频添加头像
- 💪 为驱动视频添加了 10 个新头像,现在可以在生成驱动视频之前选择一个头像。
- 📺 添加了在生成口型同步视频之前是否闭嘴的功能。
- 🐛 简化的 Docker 安装,请按照以下说明操作。
- ♻ 更好的 macOS 集成,请按照以下说明操作。
- 🚀 在 ComfyUI 面板中,现在可以在修改视频后重新生成遮罩和关键帧,以获得更好的嘴部遮罩。
2024.09.03 Lip Sync Studio 中的 ComfyUI 集成
- 💪 端到端管理和链接您的 ComfyUI 工作流。
2024.08.07 重大更新(仅限独立版本)
- 📺"添加驱动视频功能":此功能允许您生成驱动视频以获得更好的口型同步效果。
2024.05.06 重大更新(仅限独立版本)
- 🐛"数据结构":我不得不重新组织文件以获得更好的视频输出质量。以前的版本以牺牲视频质量为代价在内存中完成所有操作;每一轮处理都会降低视频质量,例如,如果您进行换脸 + Wav2Lip,由于需要为 Wav2Lip 创建第一轮处理,然后为换脸创建第二轮处理,质量会下降。您现在会在每个项目中找到一个"data"目录,其中包含工具工作所需的所有文件,并在不同轮次处理中保持质量(质量至上)。
- ♻"Wav2Lip 视频输出":生成 Wav2Lip 视频后,视频会在输出目录中编号。点击"视频质量"会加载指定质量的最后一个视频。
- 👄"Zero Mouth":此功能应该允许在进行口型同步之前闭上人物的嘴,有时效果不明显或可能会给图像增加一些闪烁,但在某些情况下我获得了不错的效果。从技术上讲,这将需要两轮处理来闭上嘴,您可以在"data\zero"中找到工具使用的帧。
- 👬"克隆声音":界面已重新设计。
- 💪"高质量 vs 最佳质量":在此版本中,高质量和最佳质量之间差别不大。最佳质量适用于面部在屏幕上较大的视频,例如 4K 视频。底层处理只是使用不同的 GFPGAN 模型和不同的面部对齐方式。
- ▶ "显示帧编号":仅在低质量模式下,帧编号会出现在左上角。这有助于识别您想要修改的帧。
- 📺"显示 Wav2Lip 输出":此功能允许您查看考虑输入音频的 Wav2Lip 输出。
- "新的面部对齐":面部对齐已重新审视。
- 🔑"放大、缩小、右移...":现在您会明白为什么有时结果很奇怪,会产生变形的嘴唇、破损的牙齿或其他非常奇怪的东西。我推荐这里的视频教程:https://www.patreon.com/posts/key-feature-103716855
2024.02.09 加速更新(仅限独立版本)
- 👬 克隆声音:添加控制来管理声音克隆(请参阅使用方法部分)
- 🎏 翻译视频:在翻译面板中添加功能来管理翻译(请参阅使用方法部分)
- 📺 添加修剪功能:添加修剪视频的功能。
- 🔑 自动遮罩:添加自动计算遮罩参数(填充、膨胀...)的功能。如果需要,您可以更改参数。
- 🚀 加速处理:所有处理现在都更快了,分析、换脸、高质量生成
- 💪 减少磁盘空间使用:生成后删除临时文件,只保留必要的数据,将大大减少磁盘空间使用。
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 Fidelity 的控制。
- 👄 移除了图像作为输入,SadTalker 更适合这个用途。
- 🐛 修复了关于输入和输出视频之间差异导致遮罩错误放置的错误。
- 💪 优化了质量流程以提高效率。
- 🚫 中断现在会在处理创建帧时生成视频
2023.08.13
- ⚡ 加速计算
- 🚢 更改用户界面:添加隐藏参数的控制
- 👄 仅在需要时跟踪嘴部
- 📰 控制调试
- 🐛 修复缩放因子错误
💻 安装
🔗 系统要求(Windows、Linux、macOS)
- FFmpeg:从 FFmpeg 官方网站 下载。按照适合您操作系统的说明进行操作,注意 ffmpeg 必须可以从命令行访问。
- 确保 ffmpeg 在您的 PATH 环境变量中。如果没有,请将其添加到您的 PATH 环境变量中。
- pyannote.audio:您需要同意共享您的联系信息才能访问 pyannote 模型。 为此,请访问以下两个链接:
设置每个字段并点击"同意并访问仓库"

-
创建 Huggingface 访问令牌:
- 使用您的账户登录
- 在设置中转到 访问令牌
- 以读取模式创建新令牌
- 复制令牌
- 将其粘贴到 api_keys.json 文件中
{ "huggingface_token": "您的令牌" } -
安装 python 3.10.11(Mac 用户请按照以下说明操作)
-
安装 git
-
检查 ffmpeg、python、cuda 和 git 安装
python --version git --version ffmpeg -version nvcc --version(仅当您有 Nvidia GPU 且不是 MacOS 时)必须返回类似以下内容
Python 3.10.11 git version 2.35.1.windows.2 ffmpeg version N-110509-g722ff74055-20230506 Copyright (c) 2000-2023 the FFmpeg developers built with gcc 12.2.0 (crosstool-NG 1.25.0.152_89671bf) bla bla bla... 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
Linux 用户
- 确保已安装 git-lfs
sudo apt-get install git-lfs
Windows 用户
- 如果尚未安装,请安装 Cuda 11.8。

- 安装 Visual Studio。在安装过程中,确保在 Visual Studio 安装程序中包含 Python 和 C++ 包。

- 如果您的计算机上有多个 Python 版本,请编辑 launch.py 并更改以下行:
REM set PYTHON="您的 python.exe 路径"set PYTHON="您的 python.exe 路径" - 双击 wav2lip-studio.bat,这将安装依赖项并下载模型
macOS 用户
-
安装 python 3.9
brew update brew install python@3.9 brew install ffmpeg brew install git-lfs git-lfs install xcode-select --install -
在文件夹中解压 wav2lip-studio.zip
unzip wav2lip-studio.zip -
安装环境和依赖项
cd /您的Wav2lipStudio文件夹 /opt/homebrew/bin/python3.9 -m venv venv ./venv/bin/python3.9 -m pip install inaSpeechSegmenter ./venv/bin/python3.9 -m pip install tyro==0.8.5 pykalman==0.9.7 ./venv/bin/python3.9 -m pip install transformers==4.33.2 ./venv/bin/python3.9 -m pip install spacy==3.7.4 ./venv/bin/python3.9 -m pip install TTS==0.21.2 ./venv/bin/python3.9 -m pip install gradio==4.14.0 imutils==0.5.4 moviepy websocket-client requests_toolbelt filetype 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 openai-whisper==20231117 resampy==0.4.0 scenedetect==0.6.2 uvicorn==0.23.2 starlette==0.35.1 fastapi==0.109.0 ./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 numpy==1.24.43.1. 对于 Silicon 芯片,还需要一个额外的步骤
./venv/bin/python3.9 -m pip uninstall torch torchvision torchaudio ./venv/bin/python3.9 -m pip install --pre torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/nightly/cpu sed -i '' 's/from torchvision.transforms.functional_tensor import rgb_to_grayscale/from torchvision.transforms.functional import rgb_to_grayscale/' venv/lib/python3.9/site-packages/basicsr/data/degradations.py -
安装模型
git clone https://huggingface.co/numz/wav2lip_studio-0.2 models git clone https://huggingface.co/KwaiVGI/LivePortrait models/pretrained_weights -
启动 UI
mkdir projects export PYTORCH_ENABLE_MPS_FALLBACK=1 ./venv/bin/python3.9 wav2lip_studio.py
教程
🐍 使用方法
##参数
- 输入项目名称并按回车键。
- 选择一个视频(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" }, ... ]
- 文本格式:
- 输入视频:允许使用输入视频中的音频、声音克隆和翻译。有关更多详细信息,请参阅输入视频部分。
- 驱动视频:选择一个头像来生成驱动视频。
- 头像:在 10 个头像中选择用于驱动视频,每个头像在口型同步输出视频上都会产生不同的驱动结果。
- 闭嘴:在生成驱动视频之前闭上头像的嘴。
- 生成驱动视频:生成驱动视频。
- 视频质量:
- 低:原始 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。
- 自动遮罩:默认为 True,如果为 False,您可以手动绘制遮罩。
- 嘴部遮罩膨胀:这将膨胀嘴部遮罩以覆盖嘴部周围更多的区域。取决于嘴部大小。
- 面部遮罩腐蚀:这将腐蚀面部遮罩以去除面部周围的一些区域。取决于面部大小。
- 遮罩模糊:这将模糊遮罩使其更平滑,尽量保持小于或等于嘴部遮罩膨胀。
- 填充滑块:这将为头部添加填充以避免在视频中切掉头部。
当您配置关键帧时,它的影响会持续到下一个关键帧,因此中间帧将以相同的配置生成。 请注意,此配置无法在 UI 中看到中间帧。
输入视频

如果翻译音频中没有声音,将使用输入视频中的音频。如果输入视频的口型同步效果不好,这可能很有用。
###克隆声音:
- 说话人数量:视频中的说话人数量。帮助克隆知道要克隆多少个声音。
- 克隆前去除背景声音:在克隆前去除背景中的噪音/音乐。
- 克隆声音:从输入视频克隆声音。
- 声音:克隆声音的列表。您可以重命名声音以在翻译中识别它们。
对于每个声音,您可以:
- 播放:收听声音。
- 重新生成句子:重新生成句子样本。
- 保存声音:将声音保存到您的声音库。
- 声音文件:模型用来创建克隆声音的声音文件列表。您可以修改声音文件来更改克隆的声音。确保每个文件中只有一个声音,没有背景声音和音乐。 您可以通过点击播放按钮来收听声音文件。并更改说话人名称来识别声音。

###翻译:
翻译面板现在与克隆声音面板关联,因为翻译将尝试识别说话人来翻译声音。

- 语言:翻译输入视频的目标语言。
- Whisper 模型:用于翻译的 whisper 模型列表,在 5 个模型之间选择,模型越高,质量越好但处理越慢。
- 翻译:将输入视频翻译为选定的语言。
- 翻译结果:翻译后的文本。
- 翻译音频:翻译后的音频。
- 转换为音频:将翻译后的文本转换为翻译后的音频。
对于翻译文本的每个片段,您可以:
- 修改翻译后的文本
- 修改片段的开始和结束时间。
- 更改片段的说话人。
- 通过点击播放按钮收听原始音频。
- 通过点击红色象形图按钮收听翻译后的音频。
- 通过点击回收按钮生成此片段的翻译。
- 通过点击垃圾桶按钮删除片段。
- 通过点击向下箭头按钮在此片段下方添加新片段。
📺 示例
https://user-images.githubusercontent.com/800903/262439441-bb9d888a-d33e-4246-9f0a-1ddeac062d35.mp4
https://user-images.githubusercontent.com/800903/262442794-61b1e32f-3f87-4b36-98d6-f711822bdb1e.mp4
https://user-images.githubusercontent.com/800903/262449305-901086a3-22cb-42d2-b5be-a5f38db4549a.mp4
https://user-images.githubusercontent.com/800903/267808494-300f8cc3-9136-4810-86e2-92f2114a5f9a.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 以下,并在处理后再放大。
- 如果初始阶段过长,请考虑使用"缩放因子"来减小视频尺寸。
- 虽然对视频大小没有严格限制,但较大的视频将需要更多的处理时间。建议使用"缩放因子"来最小化视频大小,然后在处理完成后放大视频。
已知问题:
如果您在安装 insightface 时遇到问题,请按照以下步骤操作:
- 下载 insightface 预编译版 并将其粘贴到 Wav2lip-studio 的根文件夹中
- 在终端中转到 wav2lip-studio 文件夹并输入以下命令:
.\venv\Scripts\activate
python -m pip install -U pip
python -m pip install insightface-0.7.3-cp310-cp310-win_amd64.whl
祝您使用愉快
📝 待办事项
- ✔️ 独立版本
- ✔️ 添加使用换脸图像的方法
- ✔️ 添加使用视频作为音频输入的可能性
- ✔️ 将 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-0.2
作者 numz
创建时间: 2024-02-09 16:31:47+00:00
更新时间: 2024-10-26 22:50:52+00:00
在 Hugging Face 上查看