SuperAPI AI 工具集

Easy-Wav2Lip

Easy-Wav2Lip 是一个基于 Wav2Lip 的 lipsync(唇形同步)工具,旨在简化 Wav2Lip 的使用并提高输出质量。它提供了 Google Colab 和本地安装两种方式,无需手动下载和安装前置依赖。Colab 版本仅需两个单元格即可执行;Windows 用户只需一个批处理文件即可完成安装、更新和运行。该项目改进了视觉质量,提供了三种质量选项:基础、改进(带羽化蒙版)、增强(结合 GFPGAN 放大)。根据官方测试,处理 9 秒 720p 60fps 视频从近 7 分钟缩短到不到 1 分钟,并且跟踪数据在同视频多次生成间会保存以节省时间。本地安装需要 Nvidia 显卡支持 CUDA 12.2,或 MacOS 设备支持 MPS(Apple Silicon 或 AMD GPU)。支持通过 config.ini 配置文件设置输入输出路径和参数,并支持批量处理、调试蒙版、预览设置等功能。

访问官网

工具介绍

Easy-Wav2Lip 是一个开源项目,旨在让 Wav2Lip 的高质量唇形同步变得简单易用。它提供了 Google Colab 和本地安装两种方式,简化了安装和运行流程。

主要能力

  • 简化设置与执行:在 Colab 上只需执行两个单元格;Windows 用户只需一个批处理文件即可安装、更新和运行。
  • 提升速度:官方测试显示,处理 9 秒 720p 60fps 视频的时间从近 7 分钟缩短到不到 1 分钟。
  • 改进视觉效果:修复嘴唇上的视觉瑕疵,并提供三种质量选项:基础 Wav2Lip、改进(使用羽化蒙版恢复面部其他区域的原始分辨率)、增强(Wav2Lip + 蒙版 + GFPGAN 对面部进行放大)。
  • 缓存跟踪数据:同一视频的多次生成会保存跟踪数据,进一步节省时间。
  • 详细文档:提供了配置选项中各项设置的说明。

使用方式

Google Colab 版本

访问提供的 Colab 链接,执行两个单元格即可。这是最简单且兼容性最好的方式。 链接:https://colab.research.google.com/github/anothermartz/Easy-Wav2Lip/blob/v8.3/Easy_Wav2Lip_v8.3.ipynb

本地安装

要求:Nvidia 显卡支持 CUDA 12.2,或 MacOS 设备支持 MPS(Apple Silicon 或 AMD GPU)。

自动安装(Windows 64位):

  1. 下载 Easy-Wav2Lip.bat
  2. 将其放在电脑上的某个文件夹中
  3. 运行并按照说明操作。它会在运行目录下创建 Easy-Wav2Lip 文件夹。
  4. 以后每次使用只需运行此文件。

手动安装: 确保终端可访问以下组件:Python 3.10(仅测试了 3.10.11)、Git、Windows & Linux 需要 CUDA(最新 Nvidia 驱动即可,仅测试 12.2)。

Windows 手动安装:

  1. 打开 cmd,使用 cd 导航到安装目录。
  2. 复制并粘贴以下代码(注意:会创建两个文件夹:Easy-Wav2Lip 和 Easy-Wav2Lip-venv):
git clone https://github.com/anothermartz/Easy-Wav2Lip.git
cd Easy-Wav2Lip
python -m venv ../Easy-Wav2Lip-venv
call ../Easy-Wav2Lip-venv/Scripts/activate
python -m pip install --upgrade pip
pip install ffmpeg-python
pip install -r requirements.txt
  1. 运行:关闭并重新打开 cmd,cd 到同一目录,粘贴:
call ../Easy-Wav2Lip-venv/Scripts/activate
python run.py

MacOS 和 Linux 安装(未测试):

  1. 打开终端,使用 cd 导航到安装目录。
  2. 复制并粘贴以下代码:
git clone https://github.com/anothermartz/Easy-Wav2Lip.git
cd Easy-Wav2Lip
python3 -m venv ../Easy-Wav2Lip-venv
source ../Easy-Wav2Lip-venv/bin/activate
python -m pip install --upgrade pip
pip install ffmpeg-python
pip install -r requirements.txt
  1. 运行:关闭并重新打开终端,cd 到同一目录,粘贴:
source ../Easy-Wav2Lip-venv/bin/activate
python run.py

安装完成后,会弹出 config.ini 文件。在此添加视频和音频文件的路径,并配置设置。保存并关闭后,将开始 Wav2Lip 处理,输出文件保存在 video_path 文件同一目录下。

高级调整

  • wav2lip_version:建议先尝试 Wav2Lip,如果出现牙齿间隙大的效果再切换到 GAN 版本。
  • nosmooth:启用后 wav2lip 会独立裁剪每一帧的脸部,适合快速运动或视频剪辑;禁用则会在5帧之间混合检测到的脸部位置,适合慢速运动。
  • pads:控制每个方向从脸部裁剪中添加或移除的像素数。通常底部加10像素,但需实验。
  • mask:控制处理后的脸部如何与原脸部混合。size 增加蒙版覆盖区域,feathering 决定混合程度,mouth_tracking 每帧更新蒙版位置(较慢)。
  • debug_mask:将背景变为灰度,蒙版显示为彩色,便于查看蒙版位置。

批量处理

  • 将文件以数字结尾命名(如 Video1.mp4, Video2.mp4),放在同一文件夹。
  • 按数字顺序处理。可混合编号视频与非编号音频,或非编号视频与编号音频。
  • 会为输出文件添加后缀以避免覆盖原文件。
  • include_settings_in_suffix 可添加所用设置,便于比较。

最佳实践

  • 在通过 wav2lip 之前,最好将语音与说话者的动作和表情对齐。
  • 所有帧中必须有人脸,否则会失败。
  • 裁剪或遮罩掉不想同步的脸部,否则会随机选择。
  • 使用 h264 .mp4 格式。
  • 使用小文件(<720p, <30秒, 30fps等)尝试。
  • 音频保存为 .wav,长度与输入视频相同。注意处理后会截掉约80ms。

适用场景

适用于需要为视频进行唇形同步的场景,如制作虚拟主播、视频配音、动画制作等。

限制

  • 本地安装需要特定硬件和软件环境。
  • 处理大文件可能失败。
  • 输出格式为 h264 .mp4(其他格式可能支持但未测试)。
  • 音频会截掉约80ms,需要额外预留。

致谢

本项目基于 Wav2Lip,速度提升和基础质量改进来自 cog-Wav2Lip,GFPGAN 放大代码主要来自 wav2lip-hq-updated-ESRGAN。