LOADING

AI视频换脸

素材5个月前更新 人工智能
4.6K 0 0
AI视频换脸

链接:https://pan.quark.cn/s/88bafbf8dfe7
提取码:fs46

失效去抖音找我!

 

deepfacelive其实操作用法很简单,难的是模型的制作。本帖主要讲deepfacelive(下文简称dflive)软件本身的操作,以及模型怎么从dfl转格式过来,至于模型如何训练才能效果好,请移步deepfacelab官方中文论坛教程区,看deepfacelab的详细教程

软件功能

deepfacelive是deepfacelab的配套软件,专注于实时换脸效果,核心算法和dfl是一模一样的,只是针对实时使用场景进行工程优化

可实现对摄像头输入或本地视频的输入,进行实时换脸计算,输出换脸后画面

电脑要求

1. 显卡N卡、A卡、集显均支持软件运行。 下载链接中有2个版本,N卡下载带NVIDIA字样的版本,A卡和无显卡用户下载带DirectX12的版本

2. 如果要实现摄像头实时换脸运算,对显卡性能有较高要求。具体性能要求和你摄像头分辨率、模型分辨率有关。我用3080ti显卡,跑1080p摄像头实时换脸,模型分辨率256,可以做到每秒30帧的输出。 其他配置没测试过,大家自己配置和运行效果可以留言供别人参考

3. 如果电脑性能不足,deepfacelive也能运行,只是计算速度慢,达不到实时。但也可便捷用于换脸视频制作

软件使用

1. 调整中文界面

软件是开源免费的,且自带中文版本,中文部分是我汉化的。所以不要听信有些黑商打着XX自研的旗号,卖套壳付费汉化版本

默认打开是英文界面,按下图所示,在菜单栏language中选择汉语,即可切换到熟悉的中文界面

2. 基本流程

软件基本流程就3个,选择输入,设置AI换脸运行参数,选择输出。完整流程和界面分区内容如下图所示

其中有2个模块比较特别,就是有个带Insight字样的人脸交换器,和人脸照片驱动器。这两个可以一开始忽略,后面遇到再说。这两个模块实际是其他的换脸算法,实现一张图换脸和让一张图跟随你表情变化的功能。

我们主要先学习deepfacelive正统流程,即如何用deepfacelab训练好导出的DFM格式模型,来实现实时换脸效果

3. 输入设置

dflive支持本地文件输入或本地摄像头输入,通过切换左上角的开关来进行切换

本地文件支持图片文件夹或视频文件作为输入,前者方便你使用dfl切好的序列帧

摄像机有3个选项,

驱动根据你实际情况选,没什么技巧,就看选了哪个更流畅就用哪个

设备序号就是选摄像头

分辨率按需选择,如果画面方向倒了,在选择摄像头后,有旋转按钮可以调节

3. 人脸检测器设置

各个参数意思如下

检测器:选择人脸检测算法,yoloV5和S3FD两个最常用。前者速度快但不准,后者速度略慢但精准

设备:选择什么硬件设备来运算。一般就选你的显卡。如果你有多个显卡,可以分配不同显卡做不同的模块计算工作。其他节点模块的设备选择方式一样,不再重复描述

检测器窗口大小:这个值越大,能识别到人脸尺寸约宽容,但速度越慢。一般200-300足够。如果画面有人脸却检测不到,增大这个值

检测置信阈值:一般默认值就行。高了可以过滤一些非人脸物件

最大人脸数:选择需要同时换画面上几个人脸。一般为1

排序:选择多个人脸中目标人脸的方法,比如选最大、最左、最中等等

时间维度上平滑:减少每帧之间人脸检测的尺寸波动。一般1就行,开太大会导致音画延迟增加

4. 人脸对齐器

这里参数只需要调节人脸覆盖范围和分辨率两个值,其他值基本用不到

分辨率调整成和你加载的换脸模型一致。一般加载模型后会自动调整这个值,不需要手动改。如果没自动变,就手动改一下

人脸覆盖范围保持默认值不变就行,只有当特殊情况,比如人脸特别肥大,或特别瘦的时候(相机焦距超出寻常范围),可以微调下这个值适配下。

4. 人脸标记器

这里参数默认选Google Facemesh就行,又快又准

5. 人脸交换器

这里模型就是选择已经做好的dfm格式模型

dfm格式模型实际就是deepfacelab的模型,但需要通过deepfacelab自带的这两个脚本来转化格式

通常大家说 DF架构和liae架构都是属于SAEHD模型,用“export SAEHD as dfm.bat”来转格式

如果你训练的是AMP模型,就用另一个脚本来转

转化得到的dfm格式模型,会在deepfacelab的workspace/model目录下,手动移动到deepfacelive目录下userdata/dfm_models中,即可在dflive软件里可见

软件模型有一堆英文名字的模型列表,这些模型并不是本地已安装的,使用后会自动开始从官方仓库进行下载。但由于科学上网原因,国内下载会失败。

至于dfm模型自己怎么去训练制作,移步这里进行学习https://dfldata.cc/forum.php?mod=viewthread&tid=595&extra=page=1

6. 帧调节器

几乎没用的节点

唯一用处,你的换脸模型质量太差,但输入源画面太清晰,导致两者融合不和谐,你可以用这个帧调节器,把原始画面的质量给降下来

7. 人脸融合器

人脸XY方向偏移:基本用不到,除非你的五官位置异于常人,需要调节下换上去的脸的坐标位置

人脸缩放:挺有用,如果你脸庞太大,可以适当用这个参数放大换上去的脸,显得更匹配

人脸遮罩类型:使用dst还是src的遮罩信息。默认勾选前2个就好

遮罩内向缩边:同deepfacelab合成参数里的向内缩边erode,一般开15

遮罩边缘羽化:同deepfacelab合成参数里的边缘羽化blur,一般开15-25

色彩迁移:一般用rct做色彩迁移。如果模dfm模型本身光影效果好,这个可以选none

插值:图像缩放用的插值计算法,保持默认bilinear

颜色压缩:用不到

人脸透明度:debug用,常规用不到。就是让换上去的脸透明一点

8. 视频流输出

源:选择窗口显示的画面,可以选择很多模式。最常用是“合成后画面”与“合成后画面否则原帧”,前者遇到画面没有人脸时,画面会卡住不动;后者画面没检测到人脸时,输出原始画面

窗口显示:把输出画面用单独一个窗口来显示

音画延迟:本地使用用不到,填0。只有当你用udp方式直接推流直播端口时,需要用到此参数。国内直播基本用不着,可以通过obs、直播伴侣等软件来实现推流

保存序列帧:如果需要把输出画面逐帧保存,可以在这里设置一个保存路径。如果不需要,就留空。注意保存图片是很费时的,开启后基本实现不了实时直播

补帧:换脸速度跟不上时,使用用补帧方式来生成未计算出来的画面帧

mpegts: 用udp推流时用。国内基本用不着,可用obs代替

9. 预览区

没什么好介绍的,用来看各个节点的画面效果

特殊的节点:

face swap(Insight)

无需训练dfm模型,直接使用一张参考人脸图进行换脸

和roop,rope等单图换脸工具用的同一个算法,都用的insight项目提供的128分辨率的换脸模型

主打一个方便,但清晰度是真不行,角度大了也不行

要参考的人脸图放到userdata\animatables 中

C,X,Y控制换脸效果的参数,自行调节

特殊的节点:

人脸照片驱动器

就曾经网上火过的“吗咿呀嘿”那种人脸唱歌效果

选择一张要驱动的图,然后你对着摄像头做表情,图中的人物也会对应做表情

接入其他软件

打开输出节点的窗口显示,然后用obs把窗口截取作为输入源,开启虚拟摄像头,就可以在其他需要用摄像头的软件里读取到换脸后的画面了

© 版权声明

相关文章