deepfacelive实时换脸教程(2024最新版)

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

软件功能
deepfacelive是deepfacelab的配套软件,专注于实时换脸效果,核心算法和dfl是一模一样的,只是针对实时使用场景进行工程优化
可实现对摄像头输入或本地视频的输入,进行实时换脸计算,输出换脸后画面


软件下载
目前软件最新版本是20230709版本
百度盘下载见这个帖子
【最新软件】deepfacelab20211120 deepfacelive20230709-【DFL】软件下载-deepfacelab中文网 - Powered by Discuz!
原始github官方下载地址,自行在页面中查看下载方法,不赘述
GitHub - iperov/DeepFaceLive: Real-time face swap for PC streaming or video calls

电脑要求

1. 显卡N卡、A卡、集显均支持软件运行。 下载链接中有2个版本,N卡下载带NVIDIA字样的版本,A卡和无显卡用户下载带DirectX12的版本
2. 如果要实现摄像头实时换脸运算,对显卡性能有较高要求。具体性能要求和你摄像头分辨率、模型分辨率有关。我用3080ti显卡,跑1080p摄像头实时换脸,模型分辨率256,可以做到每秒30帧的输出。 其他配置没测试过,大家自己配置和运行效果可以留言供别人参考

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


软件使用
1. 调整中文界面

软件是开源免费的,且自带中文版本,中文部分是我汉化的。所以不要听信有些黑商打着XX自研的旗号,卖套壳付费汉化版本
默认打开是英文界面,按下图所示,在菜单栏language中选择汉语,即可切换到熟悉的中文界面
 

【高端操作】deepfacelive实时换脸教程(2024最新版)





2. 基本流程
软件基本流程就3个,选择输入,设置AI换脸运行参数,选择输出。完整流程和界面分区内容如下图所示
其中有2个模块比较特别,就是有个带Insight字样的人脸交换器,和人脸照片驱动器。这两个可以一开始忽略,后面遇到再说。这两个模块实际是其他的换脸算法,实现一张图换脸和让一张图跟随你表情变化的功能。
我们主要先学习deepfacelive正统流程,即如何用deepfacelab训练好导出的DFM格式模型,来实现实时换脸效果


 

【高端操作】deepfacelive实时换脸教程(2024最新版)




 

【高端操作】deepfacelive实时换脸教程(2024最新版)


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模型自己怎么去训练制作,移步这里进行学习【教程汇总】DFL从入门到精通(持续更新)-【DFL】精品教程-deepfacelab中文网 - Powered by Discuz!

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. 预览区
 

【高端操作】deepfacelive实时换脸教程(2024最新版)



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


特殊的节点:
face swap(Insight)
 


无需训练dfm模型,直接使用一张参考人脸图进行换脸
和roop,rope等单图换脸工具用的同一个算法,都用的insight项目提供的128分辨率的换脸模型
主打一个方便,但清晰度是真不行,角度大了也不行
要参考的人脸图放到userdata\animatables 中
 

【高端操作】deepfacelive实时换脸教程(2024最新版)



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


特殊的节点:
人脸照片驱动器

 


就曾经网上活过的“吗咿呀嘿”那种人脸唱歌效果
选择一张要驱动的图,然后你对着摄像头做表情,图中的人物也会对应做表情


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

结语
软件操作很简单,基本默认参数就可以用,选一个模型就行。
难的是dfm模型怎么制作,自己制作可以到论坛教程区学习
【教程汇总】DFL从入门到精通(持续更新)-【DFL】精品教程-deepfacelab中文网 - Powered by Discuz!
也可以到论坛模型区下载别人做好的模型。但注意,如果下载的模型不是dfm格式,需要自行用前文说的deepfacelab脚本做格式转化
模型区模型质量有高有低,注意看别人的使用评价后再下载

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/589645.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

51单片机中TCON, IE, PCON等寄存器的剖析

在单片机中,如何快速通过名字记忆IQ寄存器中每一个控制位的作用呢? IE(interrupt enable)寄存器中,都是中断的使能位置。 其中的EA(enable all)是总使能位,ES(enable serial)是串口…

构建安全的SSH服务体系

某公司的电子商务站点由专门的网站管理员进行配置和维护,并需要随时从Internet进行远程管理,考虑到易用性和灵活性,在Web服务器上启用OpenSSH服务,同时基于安全性考虑,需要对 SSH登录进行严格的控制,如图10…

WorkQueue模型

WorkQueues,也被称为任务队列模型。当消息处理比较耗时的时候,可能生产消息的速度会远远大于消息的消费速度。长此以往,消息就会堆积越来越多,无法及时的处理。此时就可以使用work模型:让多个消费者绑定到一个队列&…

gem5学习(8):创建一个简单的缓存对象--Creating a simple cache object

目录 一、SimpleCache SimObject 二、Implementing the SimpleCache 1、getSlavePort() 2、handleRequest() 3、AccessEvent() 4、accessTiming() (1)缓存命中:sendResponse() (2)缓存未命中: 三、…

matlab概率论例子

高斯概率模型: [f,xi] ksdensity(x): returns a probability density estimate, f, for the sample in the vector x. The estimate is based on a normal kernel function, and is evaluated at 100 equally spaced points, xi, that cover the range of the da…

Mybatis行为配置之Ⅰ—缓存

专栏精选 引入Mybatis Mybatis的快速入门 Mybatis的增删改查扩展功能说明 mapper映射的参数和结果 Mybatis复杂类型的结果映射 Mybatis基于注解的结果映射 Mybatis枚举类型处理和类型处理器 再谈动态SQL Mybatis配置入门 Mybatis行为配置之Ⅰ—缓存 Mybatis行为配置…

读书笔记1-C++ Primer Plus

C是在C语言基础上开发的一种集面向对象编程(OOP)、通用编程和传统的过程化编程于一体的编程语言。本书是根据2003年的ISO/ANSI C标准编写的,通过大量短小精悍的程序详细而全面地阐述了C的基本概念和技术。 全书分17章和10个附录,分…

使用WAZUH检测LD_PRELAOD劫持、SQL注入、主动响应防御

目录 1、检查后门 使用工具检测后门 1.chkrootkit 2.rkhunter 手动检查文件 检查ld.so.preload文件 2、检测LD_PRELOAD ubuntu配置 wazuh配置 3、检测SQL注入 ubuntu配置 攻击模拟 4、主动响应 wauzh的安装以及设置代理可以参考本篇:WAZUH的安装、设置…

Apache Flink连载(二十三):Flink HA - Flink基于Yarn HA

🏡 个人主页:IT贫道_大数据OLAP体系技术栈,Apache Doris,Clickhouse 技术-CSDN博客 🚩 私聊博主:加入大数据技术讨论群聊,获取更多大数据资料。 🔔 博主个人B栈地址:豹哥教你大数据的个人空间-豹哥教你大数据个人主页-哔哩哔哩视频 目录 1. Yarn HA配置 ​​​​…

Cache替换算法

由于Cache很小,主存很大,Cache很容易装满,Cache满了怎么办? ——采用替换算法。 全相联映射:Cache完全满了才需要替换,需要在全局中选择替换哪一块。直接映射:如果对应位置非空,则…

linux线程与进程

简要 在Linux系统中,进程(Process)和线程(Thread)是操作系统中两个重要的概念,它们都是用于执行程序的执行单元,但有一些关键的区别。 在Linux系统中,可以使用fork系统调用创建新…

Vue3-30-路由-嵌套路由的基本使用

什么是嵌套路由 嵌套路由 &#xff1a;就是一个组件内部还希望展示其他的组件&#xff0c;使用嵌套的方式实现页面组件的渲染。 就像 根组件 通过路由渲染 普通组件一样&#xff0c;嵌套路由也是一样的道理。 嵌套路由的相关关键配置 1、<router-view> 标签 声明 被嵌套组…

在 Spring 中操作 Redis

&#x1f9f8;欢迎来到dream_ready的博客&#xff0c;&#x1f4dc;相信您对博主首页也很感兴趣o (ˉ▽ˉ&#xff1b;) &#x1f4dc;redis和缓存及相关问题和解决办法 什么是缓存预热、缓存穿透、缓存雪崩、缓存击穿 目录 1、引入依赖 2、对 Redis 的配置文件进行书写 3、S…

kivy PageLayout 的说明及例子

PageLayout 是 Kivy GUI 框架中的一个布局管理器&#xff0c;它允许开发者在同一个窗口中放置多个页面&#xff0c;用户可以通过滑动来浏览这些页面。PageLayout 的工作方式类似于一个可以滑动的标签页&#xff08;TabbedPanel&#xff09;&#xff0c;但其页面可以自由调整大小…

Linux常用命令大全总结及讲解(超详细版)

前言&#xff1a; Linux 是一个基于Linux 内核的开源类Unix 操作系统&#xff0c;Linus Torvalds于 1991 年 9 月 17 日首次发布的操作系统内核。Linux 通常打包为Linux 发行版。 Linux 最初是为基于Intel x86架构的个人计算机开发的&#xff0c;但此后被移植到的平台比任何其…

K8S 中对 Windows 节点的利用

目录 漏洞概述 漏洞详情 ​编辑 漏洞验证 补丁分析 在集群中探索 参考资料 在许多组织中&#xff0c;所运行的很大一部分服务和应用是 Windows 应用。Windows 容器提供了一种封装进程和包依赖项的方式&#xff0c;从而简化了 DevOps 实践&#xff0c;令 Windows 应用程序…

【xdma】 pcie.bar设置

FPGA优质开源项目– PCIE通信 xdma 两者保持一致 FPGA开源项目 – PCIE I/O控制卡 xdma PCIe的XDMA应用 读写部分分为两种&#xff0c;一种是数据的读写&#xff0c;另一种是配置数据的读写&#xff0c;在数据读写部分&#xff0c;DMA通过MIG控制DDR完成数据读写。配置数据…

使用 Tkinter 制作一个进制转换工具,好用!

在平时工作学习当中&#xff0c;我们经常会编写一些简单的 Python GUI 工具&#xff0c;以此来完成各种各样的自动化任务&#xff0c;比如批量处理文件&#xff0c;批量处理图片等等。当我们进行这些工具的编写之时&#xff0c;往往只关注了功能的实现&#xff0c;而忽略了页面…

基于Docker的软件环境部署脚本,持续更新~

使用时CtrlF搜索你想要的环境&#xff0c;如果没有你想要的环境&#xff0c;可以评论留言&#xff0c;会尽力补充。 本文提供的部署脚本默认参数仅适合开发测试&#xff0c;请根据实际情况调节参数。 数据库 MySQL version: 3.9 services:mysql:image: mysql:8.0.35container…

【Unity美术】Unity工程师对3D模型需要达到的了解【二】

&#x1f468;‍&#x1f4bb;个人主页&#xff1a;元宇宙-秩沅 &#x1f468;‍&#x1f4bb; hallo 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! &#x1f468;‍&#x1f4bb; 本文由 秩沅 原创 &#x1f468;‍&#x1f4bb; 收录于专栏&#xff1a;Uni…