大家好,欢迎来到灵智宝盒!这里是开源项目和实用工具的宝藏库,每期都为你带来免费、优质的资源,助你提升工作效率,优化生活方方面面!如果喜欢这些内容,别忘了点个关注,第一时间获取更多实用干货!
在前几期视频中,我们学习了如何从优秀作品中提取文案,并将其内化为适合自己选题的视频内容,用AI生成音频素材。接下来,本期的重点是为音频匹配画面的技术。通过换脸技术,不仅能生成吸引人的视频封面,还能自动合成博主的讲话视频,进一步强化粉丝的印象。
为什么?
第一节,先来探究一下为什么选择Facefusion的原因。 我之所以选择 Facefusion 作为主要的 AI 换脸工具,原因有以下几点。首先,Facefusion 对硬件要求较低,使用门槛不高。其次,它不仅支持视频换脸,还支持通过音频驱动实现视频嘴唇同步。此外,使用 Facefusion 不需要大量训练素材,操作更简便。而最重要的一点是,网上有丰富的教程和资料,学习曲线平缓,容易上手。 1. Facefusion硬件要求低
Facefusion硬件要求低,在执行视频换脸时,暂用实现显存不超过6G。
- 不仅支持视频换脸,还支持音频驱动视频嘴唇
-
不需要大量的训练素材
-
互联网上资料多,学习曲线平缓
Facefusion的安装
第二节,Facefusion的安装 Facefusion安装,分两部分进行。首先,是下载项目源码
- 下载项目源码
- https://github.com/facefusion/facefusion >
-
在视频介绍或博客中找到提供的链接,直接复制并粘贴到浏览器中打开,你就可以访问这个项目了。像这种纯英文的国外项目,一般只会提供源码和部署说明。源码的部署方式在我们之前的视频中已经介绍过几个项目,方法都大同小异。首先,你需要获取项目的源代码。GitHub上下载代码有两种方式:一是通过git命令下载,二是直接下载压缩包。这次我们仍然选择通过git来下载。 复制项目的仓库地址。然后,找一个空文件夹来存放项目。在文件夹的空白处右键点击,选择“Git Bash Here”。注意,这个选项需要你事先安装好Git。Git的下载地址我会放在视频介绍区。接下来,在弹出的命令行窗口中输入 git clone 加上刚刚复制的仓库地址,并按回车。稍等片刻,代码就会下载完成。 代码下载好后,运行项目之前,我们还需要安装Python和相关依赖库。对于Python环境,我建议大家使用Anaconda来配置,因为它集成了很多常用的基础库。直接复制Anaconda的下载链接到浏览器中,下载完成后双击安装,安装过程中的所有选项保持默认即可。安装完成后,还需要将两个路径添加到系统的环境变量中,分别是Scripts路径和bin路径。
配置好Python环境后,就可以安装Facefusion项目的依赖库了。建议大家将Facefusion项目运行在一个独立的虚拟环境中,这样可以避免多个项目之间因版本不兼容导致的报错。进入项目根目录后,打开命令行窗口,使用命令创建虚拟环境。命令执行完毕后,虚拟环境就创建好了,接着通过 conda activate 加上虚拟环境名称来激活这个环境。
激活虚拟环境后,我们开始安装依赖库。使用 pip install 加上项目根目录中的 requirements.txt 文件路径,回车执行。耐心等待安装完成。过程中可能会遇到一些问题,大多数情况下是网络问题。如果你有科学上网的条件,大部分问题都能解决。如果没有,也可以添加国内的镜像源。视频介绍区会提供如何添加镜像源的方法。如果大家对免费的科学上网工具感兴趣,欢迎在评论区留言,如果需求多的话,我会专门制作一期视频来分享。
-
配置独立虚拟环境
-
下载地址:https://www.anaconda.com/download/success
无
-
创建虚拟环境命令:
conda create --name facefusion_env
> -
国内镜像源: 前往查看
无
-
cuda、pytorch库
- 显卡驱动及cuda库
在显卡驱动和 CUDA 库的安装方面,过程相对简单,因此不再详细说明。这里主要讲解 PyTorch 库的安装,因为它更容易出问题。首先,打开我在博客中提供的链接,找到适配您显卡的 PyTorch 版本并获取对应的安装命令。我这里就直接复制准备好的命令粘贴执行,接下来就是耐心等待安装完成。
- 找自己显卡对应的版本
- 执行安装命令
```python
conda install pytorch==2.3.1 torchvision==0.18.1 torchaudio==2.3.1 pytorch-cuda=11.8 -c pytorch -c nvidia
-
遇到的问题
-
问题1
python usage: install.py [-h] --onnxruntime {default,cuda,openvino,directml} [--skip-conda] [-v] install.py: error: the following arguments are required: --onnxruntime
安装过程中可能会遇到一些问题,以下是我遇到的两个常见问题,只需按照文档中的提示进行操作即可解决。类似地,如果出现其他问题,可以仔细阅读报错信息中的红色字体,并将报错内容复制到谷歌搜索,通常都能找到解决方案。当然,还有更直接的方式,就是向 ChatGPT 提问。它的能力已经相当强大,在过去的一年里,我约 80% 的问题都是通过它解决的。
-
问题1解决方案:
python python install.py --onnxruntime default
> -
问题2
python [E:onnxruntime:Default, provider_bridge_ort.cc:1862 onnxruntime::TryGetProviderInfo_CUDA] D:\a\_work\1\s\onnxruntime\core\session\provider_bridge_ort.cc:1539 onnxruntime::ProviderLibrary::Get [ONNXRuntimeError] : 1 : FAIL : LoadLibrary failed with error 126 "" when trying to load "C:\ProgramData\anaconda3\envs\facefusion_env\Lib\site-packages\onnxruntime\capi\onnxruntime_providers_cuda.dll"
- 问题2解决办法(先找cuda11.8对应的版本gpu==1.17) 对应表
pip install onnxruntime-gpu==1.17 -i https://pypi.tuna.tsinghua.edu.cn/simple
-
-
运行facefusion
- 运行命令:
python facefusion.py run
当所有依赖库都安装完成,并且没有出现红色报错信息,说明环境已经搭建好了。此时你可以通过运行 python facefusion.py run 来启动项目。首次启动,会先下载该项目涉及到的模型文件,如果下载过程中发现很慢或者根本无法下载。可以到github上自行一个个下载保存到models文件夹下,这种方式下载非常快。模型下载完成后,就可以在运行命令后加上--skip-download参数来跳过下载检查而直接启动。
- 模型下载地址 前往下载
启动可能报错,报关于locahost的问题,这个只需要关闭一下代理就可以正常启动。
运行成功后,在浏览器中访问 127.0.0.1:7860,就能看到操作界面。接下来,介绍一些常用的功能。
- 运行命令:
常用功能
第三节,来看一看FacefuSion一些常用的功能。 - 图片换脸 第一个常用功能是图片换脸。在 PROCESSORS 菜单中选择 face_swapper(换脸)选项,然后在中间的界面分别选择源素材(source)和目标图片(target)。这里我用自己的照片作为源素材,目标图片选择了一位韩国美女(这是上次制作虚拟网红时搜集的素材)。配置保持默认即可。最后,点击 Start 按钮,就能看到换脸后的效果了——哇,效果非常性感!
如果觉得换脸后的图片不够清晰,可以在 PROCESSORS 中再添加一个脸部增强模型,选择 face_enhancer 选项,然后再次点击 Start。这次处理速度会稍慢一些,但生成的图片中,脸部清晰度明显提高了。不过,这里的画面依然有些模糊,那是因因为目标图片本身分辨率较低。换一张更清晰的目标图片试试看,这次生成的效果显然更清晰,细节更出色。
- 视频换脸
第二个功能是视频换脸,操作流程和图片换脸类似,只不过生成速度会慢很多,所以EXECUTION PROVIDERS 这里要选择显卡cuda,这样会快很多。在目标(target)这里选择一个视频,其他配置保持默认值,然后点击 Start 按钮。稍等片刻后,换脸效果就会生成。现在来看一下最终效果吧
这里有个小技巧:由于光线变化或脸部动作的影响,部分视频中的某些帧可能会错误识别为多个人,导致换脸效果不稳定。为了解决这个问题,可以在 FACE SELECTOR MODE 中选择 Manny,效果会显著提升。别问我是怎么知道的,这都是大量实践总结出来的经验。
- 视频嘴唇同步
相比前面两个功能,第三个——视频嘴唇同步——对内容创作者来说尤其实用。只需拍摄一小段视频,就可以自动生成大量口播内容。比如之前几期视频中的露脸口播部分,都是用这个功能实现的,真是一劳永逸,再也不用频繁拍摄了!
那么,来看下这个功能。首先输入一段文字,用 coSyvoice 生成音频(之前的视频中已经讲过 coSyvoice 的声音克隆,有兴趣的朋友可以回去看看)。然后回到 facefuSion 操作页面,选择 lip_Syner 选项,将刚生成的音频上传为源素材,在 target 中选择一个短视频(这里我选用了自己之前录制的素材)。点击 Start 按钮,稍等片刻后,嘴唇同步后的视频就生成了。让我们预览一下效果吧!
提高生成效率的一些技巧
第四节,facefusion使用过程中的一些技巧。 最后来看看一些提高生成效率的技巧。第一个是技巧,在参数调整方面。 - 部分参数调整 - EXECUTION THREAD COUNT/执行线程数量 设置为显存数量的2倍 - EXECUTION QUEUE COUNT/执行队列数 设为3 - SYSTEM MEMORY LIMIT/系统内存极限 设为系统实际内存
经过不断测试,修改这几个参数的值。在生成效率会快很多。首先,EXECUTION THREAD COUNT/执行线程数量 设置为显存数量的2倍;然后,EXECUTION QUEUE COUNT/执行队列数 设为3;SYSTEM MEMORY LIMIT/系统内存极限 设为系统实际内存。
- 在同步视频嘴唇的一些策略
在目标视频本身清晰度不高的情况下,不使用脸部增强face_enhancer选项会快很多。