介绍
Google Colab 版本(浏览器内免费云计算)
本地安装
支持
最佳实践
简单的设置和执行 - 本地和通过 colab。
无需手动下载和安装先决条件
Google Colab 只有 2 个单元需要执行
Windows 用户只需一个文件即可安装、更新和运行。
下面有详细记录的选项。
不再想知道什么有什么作用!
对于我通过 Colab T4 进行的 9 秒 720p 60fps 测试剪辑:
原创 Wav2Lip | Easy-Wav2Lip |
---|---|
执行时间:6m 53s | 执行时间:56s |
这不是一个错字!我的剪辑从近 7 分钟缩短到不到 1 分钟!
跟踪数据在同一视频的各代之间保存,从而节省更多时间:
Easy-Wav2Lip 再次出现在同一个视频上 |
---|
执行时间:25s |
Easy-Wav2Lip 修复了嘴唇上的视觉错误:
3 个质量选项:
快速:Wav2Lip
改进:Wav2Lip 在嘴部周围带有羽毛遮罩,以恢复面部其余部分的原始分辨率
增强:Wav2Lip + mask + GFPGAN 在脸部进行升级
https://colab.research.google.com/github/anothermartz/Easy-Wav2Lip/blob/v8.3/Easy_Wav2Lip_v8.3.ipynb
要求:支持 cuda 12.2 的 Nvidia 卡或通过 Apple Silicon 或 AMD GPU 支持 mps 的 MacOS 设备
下载 Easy-Wav2Lip.bat
将其放在电脑上的文件夹中(例如:在文档中)
运行它并按照说明进行操作。它将在您运行它的任何文件夹中创建一个名为 Easy-Wav2Lip 的文件夹。
每当您想使用 Easy-Wav2Lip 时运行此文件
这应该处理所有必需组件的安装。
确保以下内容已安装并且可以通过您的终端访问:
Python 3.10(我只测试了3.10.11 - 其他版本可能无法工作!)
git
Windows 和 Linux:Cuda(只要有最新的 Nvidia 驱动程序就可以做到这一点,我只测试了 12.2)
导航到要安装 Easy-Wav2Lip 的文件夹后,在终端中运行以下命令:
设置 venv,在其中安装 ffmpeg,然后安装 Easy-Wav2Lip:
打开 cmd 并使用 cd EG 导航到要安装 EasyWav2Lip 的文件夹: cd Documents
将以下代码复制并粘贴到您的 cmd 窗口中: 注意:此位置将创建 2 个文件夹:Easy-Wav2Lip 和 Easy-Wav2Lip-venv(独立的 Python 安装)
py -3.10 -m venv Easy-Wav2Lip-venv Easy-Wav2Lip-venvScriptsactivate python -m pip install --upgrade pip python -m pip install requests set url=https://github.com/BtbN/FFmpeg-Builds/releases/download/latest/ffmpeg-master-latest-win64-gpl.zip python -c "import requests; r = requests.get('%url%', stream=True); open('ffmpeg.zip', 'wb').write(r.content)" powershell -Command "Expand-Archive -Path .\ffmpeg.zip -DestinationPath .\" xcopy /e /i /y "ffmpeg-master-latest-win64-gplbin*" .Easy-Wav2Lip-venvScripts del ffmpeg.zip rmdir /s /q ffmpeg-master-latest-win64-gpl git clone https://github.com/anothermartz/Easy-Wav2Lip.git cd Easy-Wav2Lip pip install -r requirements.txt python install.py
现在运行 Easy-Wav2Lip:
3. 关闭并重新打开 cmd,然后 cd 到与步骤 1 中相同的目录。
4.粘贴以下代码:
Easy-Wav2Lip-venvScriptsactivate cd Easy-Wav2Lip call run_loop.bat
请参阅用法以获取更多说明。
设置 venv,在其中安装 ffmpeg,然后安装 Easy-Wav2Lip:
打开终端并使用 cd EG 导航到要安装 Easy0Wav2Kip 的文件夹: cd ~/Documents
将以下代码复制并粘贴到终端窗口中: 注意:此位置将创建 2 个文件夹:Easy-Wav2Lip 和 Easy-Wav2Lip-venv(独立的 Python 安装)
python3.10 -m venv Easy-Wav2Lip-venv source EW2Lvenv/bin/activate python -m pip install --upgrade pip python -m pip install requests for file in ffmpeg ffprobe ffplay; do curl -O "https://evermeet.cx/ffmpeg/${file}-6.1.1.zip" unzip "${file}-6.1.1.zip" done mv -f ffmpeg ffprobe ffplay /Easy-Wav2Lip-venv/bin/ rm -f ffmpeg-6.1.1.zip ffprobe-6.1.1.zip ffplay-6.1.1.zip source EW2Lvenv/bin/activate git clone https://github.com/anothermartz/Easy-Wav2Lip.git cd Easy-Wav2Lip pip install -r requirements.txt python install.py
现在运行 Easy-Wav2Lip:
3. 关闭并重新打开终端,然后 cd 到与步骤 1 中相同的目录。
4.粘贴以下代码:
source Easy-Wav2Lip-venv/bin/activate cd Easy-Wav2Lip ./run_loop.sh
安装完所有内容后,应该会弹出一个名为 config.ini 的文件。
在此处添加视频和音频文件的路径并根据您的喜好配置设置。
专业提示:
在 Windows 上,右键单击要使用的文件时按住 Shift 键,然后按“a”或单击“复制为路径”,即可获得可粘贴为 video_file 或vocal_file 的路径。
MacOS:右键单击文件,按住 Option (Alt) 键,然后从上下文菜单中选择“将 [文件名] 复制为路径名”。
保存 config.ini 并关闭它,这将启动 Wav2Lip 进程,并且您的文件将保存在与 video_path 文件相同的目录中。
config.ini 将再次打开,您可以更改输入和设置。
有关如何开始的提示,请参阅下面的最佳实践。
请参阅下面的高级调整,了解 config.ini 中尚未解释的设置的说明
当然是原始的 Wav2Lip。
速度的巨大提升和基础质量的改善来自于 cog-Wav2Lip。
使用 GFPGAN 进行升级的代码主要来自 wav2lip-hq-updated-ESRGAN。
如果没有人工智能的帮助,我不可能做到这一点;在做这个之前,我的Python经验非常少!选择的法学硕士: Bing Chat (现在称为“Copilot”)。
感谢 JustinJohn 制作了 Wav2Lip_simplified colabs,这启发了我制作自己的、甚至更简单的版本。
如果您在运行此程序时遇到问题,请查看问题选项卡,看看是否有人写过相关文章。如果没有,请创建一个新线程,但确保包含以下内容:
如果合作:
Easy-Wav2Lip colab 版本号
有关所使用文件的信息。
如果本地安装:
EasyWav2Lip.bat 或手动安装
操作系统(Windows 11、Linux等)
GPU型号
GPU驱动版本
Python版本
有关使用的文件以及其他文件是否有效的信息
如果没有这些信息,我无论如何都会索要它,因此有关问题本身的回复将需要更长的时间。
很可能,如果其中任何一个与要求不同,那么这就是它不起作用的原因,你可能只需要使用 colab 版本(如果还没有的话)。
对于关于此问题和任何其他口型同步谈话的一般闲聊,我将陷入这种不和谐之中:
邀请链接:https://discord.gg/FNZR9ETwKY
Wav2Lip频道:https://discord.com/channels/667279414681272320/1076077584330280991
最好的结果来自于在通过 wav2lip 发送语音之前将语音与说话者的动作和表情对齐!
视频文件:
所有帧中必须有一张脸,否则 Wav2Lip 将失败
裁剪或遮盖您不想口型同步的面孔,否则它会随机选择。
使用 h264 .mp4 - 可能支持其他文件类型,但这就是它的输出
图像目前未经测试。
以各种方式使用小文件(尝试 <720p、<30 秒、30fps 等 - 较大的文件可能有效,但通常是失败的原因)
对于您的第一次尝试,请使用一个非常小的剪辑来习惯这个过程,只有当您熟悉后才应该尝试更大的文件以查看它们是否有效。
音频文件:
保存为 .wav,长度与输入视频相同。
注意:我注意到处理后的视频/音频被削减了大约 80 毫秒,我不知道如何解决这个问题,所以请确保你有比实际需要的多一点的时间!
您可以将其编码到视频文件中并将vocal_path留空,但这会增加处理时间几秒钟,因为它将音频从视频中分离出来
或者
单独选择您的音频文件
我不确定支持哪些文件类型,至少 .wav 和 .mp3 可以。
选项 | 优点 | 缺点 |
---|---|---|
声音2唇 | + 更准确的口型同步 + 没有声音时尝试闭上嘴 | - 有时会产生牙齿缺失(罕见) |
Wav2Lip_GAN | + 看起来更好 + 更保留说话者原有的表情 | - 不太擅长掩盖原始的嘴唇动作,尤其是在没有声音的情况下 |
我建议先尝试 Wav2Lip,如果您遇到扬声器牙齿上有很大缝隙的效果,请切换到 GAN 版本。
启用后,wav2lip 将独立裁剪每一帧上的脸部。
适合视频中的快速移动或剪切。
如果脸部处于奇怪的角度,可能会导致抽搐。
禁用时,wav2lip 将在 5 帧之间混合检测到的面部位置。
适合缓慢运动,特别是对于角度不寻常的面部。
当脸部在画面内快速移动时,嘴巴可能会偏移,在剪辑之间看起来很糟糕。
此选项控制在每个方向上从面部裁剪中添加或删除的像素数量。
价值 | 例子 | 影响 |
---|---|---|
U | U = -5 | 从脸部顶部移除 5 个像素 |
D | d = 10 | 在脸部底部添加 10 个像素 |
L | L = 0 | 左边脸没有变化 |
右 | R = 15 | 在脸部右侧添加 15 个像素 |
填充物可以帮助消除下巴或面部其他边缘处的硬纹,但填充物过多或过少都会改变嘴巴的大小或位置。通常的做法是在底部添加 10 个像素,但您应该尝试不同的值来找到剪辑的最佳平衡。
此选项控制处理后的面与原始面的混合方式。这对“快速”质量选项没有影响。
size将增加遮罩覆盖区域的大小。
羽化决定蒙版中心和边缘之间的混合量。
mouth_tracking会将蒙版的位置更新为每帧上嘴部的位置(较慢)
注意:由于框架被裁剪到脸部,嘴的位置已经很接近,仅当您发现蒙版似乎不跟随嘴的视频时才启用此功能。
debug_mask将使背景灰度化,蒙版变为彩色,以便您可以轻松地看到蒙版在帧中的位置。
此选项允许您自动处理多个视频和/或音频文件。
以末尾的数字命名您的文件,例如。 Video1.mp4、Video2.mp4等并将它们全部放在同一个文件夹中。
文件将从您选择的文件开始按数字顺序进行处理。例如,如果您选择Video3.mp4,它将处理Video3.mp4、Video4.mp4等。
如果您选择编号的视频文件和非编号的音频文件,它将使用相同的音频文件处理每个视频。对于使不同的图像/视频说出相同的台词很有用。
同样,如果您选择非编号视频文件和编号音频文件,则每个音频文件都会使用相同的视频。对于使相同的图像/视频表达不同的内容很有用。
这会向您的输出文件添加后缀,以便它们不会覆盖您的原始文件。
添加使用的设置 - 适合比较不同的设置,因为您将知道每个渲染使用的设置。将添加:Qualty_resolution_nosmooth_pads-UDLR EG:_Enhanced_720_nosmooth1_pads-U15D10L-15R30 如果将其设置为 0,则不会包含 pads_UDLR。如果将 output_height 设置为全分辨率,则不会包含分辨率。
在处理之前显示输入视频/音频,以便您可以检查以确保选择了正确的文件。它可能只适用于 .mp4,我只知道它不适用于我尝试过的 .avi。禁用此功能将为每个视频节省几秒钟的处理时间。
这将仅渲染视频的 1 帧并以全尺寸显示,这样您就可以调整设置,而不必每次都渲染整个视频。 frame_to_preview 用于选择您想要查看的特定帧 - 可能不完全准确于实际帧。