FaceFusion3.0,批量处理,人脸编辑,表情恢复,年龄修改,NSFW,日志系统(WIN/MAC)
以下是3.0版本的详细更新内容。我也会在下面讲解本次新增的功能使用方法以及需要注意的问题。
新增功能
- 换脸模式下新增”像素提升”功能
- “人脸检测器”新增多角度处理能力
- 新增年龄修改模式
- 新增Live Portrait技术支持的表情恢复模式
- 新增Live Portrait技术支持的人脸编辑模式
- 新增任务系统,重构架构,使所有功能都成为一个任务
- 新增日志系统,可在界面上查看实时使用信息
新增模型
- 新增GHOST人脸交换模型
- 新增帧增强器
real_esrgan_x8
模型 - 为SimSwap和GHOST引入ArcFace转换器模型
- 新增自制的
peppa_wutz
人脸特征点模型
优化以及问题修复
- 基于本地哈希验证引入离线优先的资源
- 将
顺序
、年龄
和性别
转移到人脸选择器 - 支持CUDA 12.4、TensorRT 10.4、OpenVino 2024.1和ROCm 6.2
- 在无头模式下提供适当的错误代码
- 用
resnet_34
模型替换人脸解析器 - 用更优秀的
fairface
模型替换gender_age
模型 - 在无人脸模式下提供适当的错误代码
- 将CLI迁移到命令以及相关参数
- 调整UI布局和视觉外观
- 由于精度低而删除人脸检测器模型
yunet
- 更新到最新的Gradio 4
- 提供多范围滑块来修剪视频帧
- 确保更加准确的基准测试结果
- 引入
--face-landmark-model
参数 - 引入
--output-audio-encoder
参数 - 添加视频编码器
h264_videotoolbox
和hevc_videotoolbox
- 将
--face-selector-order
的默认值改为large-small - 用上下文感知的推理管理器替换全局变量
- 修复人脸交换器
uniface
模型中的闪烁问题 - 修复ROCm和DirectML的线程和预览崩溃问题
- 修复
webp
图像的质量问题 - 修复
ffmpeg
处理的终止问题
额外更新
我也额外做了一些修改
- 汉化界面以及部分选项按钮
- 优化缓存管理路径
- 删除非必要的前置检查项优化执行速度
更新详解
换脸模式
增加了换脸像素提升
选项。
最高可提升到1024X1024像素(只能在换脸模式下开启)
年龄调节
该模式可独立开启,也可以跟其他模式一起使用。
开启后可以在下方的年龄修改参数进行调节。
参数默认值是0。大于0是增加年龄,使人物变老,小于0是减少年龄,使人物变得年轻。
在目标文件
上传需要处理的视频或图片。
调节年龄查看效果。
💡当然还可以同时开启脸部增强和帧增强来保证输出的效果质量。
但是在增加年龄时,脸部增强和帧增强选项会将人物脸部的某些细节给处理掉,产生负效果
。
从左往右分别是未开启增强、开启脸部增强、开启脸部增强+帧增强。
表情恢复
该模式需要结合换脸一起使用。
在某些换脸的时候,可能会出现眼睛睁不开,嘴巴抽搐等问题。可尝试开启该模式进行修复表情。
人脸编辑
该模式可独立开启,也可以跟其他模式一起使用。
该模式下可以对脸部五官进行细致的调整。支持视频/图像。
同样的,在目标文件
这里上传图像/视频。
调整左边的参数,这里我调整了嘴巴闭合度
这个选项。
可以看到右侧的预览效果。
也可以结合脸部增强
、帧增强
选项,输出高清的图片/视频。
任务系统
介绍
这是本次更新比较重要的模块之一。什么是任务系统?简单来说,你可以把它看做是FaceFusion的队列系统。
你可以将你要执行的操作统统加入到队列内,然后执行这个队列。相当于批量。
怎么使用呢?
首先找到位于开始按钮上方的用户界面工作流
有三个选项,默认是instant_runner
模式。
instant_runner
实时模式。即不使用任务系统。job_runner
任务运行模式。选择后执行你设定好的任务队列。job_manager
任务管理模式。在该模式下设置、管理任务。
创建任务
在开始任务之前,我们需要创建一个任务,并设置任务内容。
选择job_manager
模式。
任务操作
这里有很多选项。
首先选择job-create
,并在下方的任务ID框里设置任务名。
(中文没试过,建议英文,避免特殊符号)
然后点击应用,上方日志输出创建成功。
并且可以看到任务操作
这里自动变成了job-add-step
添加任务内容
接着就像往常一样,将你需要处理的素材导入FaceFusion
比如我这里上传了两张图片换脸。
然后点击下方的应用,一定确保任务操作
选项选择的是job-add-step
日志这里显示添加成功
到这里为止,我们第一个步骤就添加好了。一个任务下可以有多个步骤。
再创建第二个步骤
将这两张图片清除掉
这次我上传一张新的图片和视频,并且额外勾选了脸部增强
、帧增强
选项。
同样的,点击应用。
显示添加成功。
到这里为止,我们Task1
任务内就有两个步骤,分别是:图片换图片、图片换视频。
并且这两个步骤开启的模式和选项各不相同。
提交任务
当你的步骤添加完毕后,需要提交任务,这一步是告诉FaceFusion我们已经准备好了,将刚才的步骤合并到任务里。
任务操作这里选择job-submit
,点击应用。
日志显示已提交。
到这里为止,我们前期的准备工作已经做好了,接下来就是运行该任务。
执行任务
用户界面工作流
选择job_runner
模式,任务操作
选择job-run
点击开始执行刚才的任务内容,最后就会得到一张图片和一段视频。
根据这个流程,你可以批量处理多个不同种类的素材,图片、视频都可以添加到任务队列中一起执行。
并且FaceFusion中的所有参数和设置都支持添加到任务队列中,比如你可以一个步骤是给图片修改年龄,下一个步骤是视频换脸,再下一个是图片换脸。最后统一一起执行,效率非常高。
参数讲解
上面我们完成了一个基本任务的运行。任务操作中还有许多选项,这里我把这些选项的含义都讲解下。
job_runner模式下
job-run
执行选定任务。
job-run-all
执行所有任务。比如你创建了多个任务,该模式下会执行所有的任务。
job-retry
该模式会尝试执行之前运行但失败的任务。
job-retry-all
该模式会尝试执行之前运行但失败的所有任务。
job_manager模式下
job-create
创建任务。
job-submit
提交指定任务。
job-delete
删除任务。
job-add-step
向指定任务中添加步骤。
job-remix-step
混合设定的步骤。用于混合两个步骤产生的视频。
job-insert-step
用于在混合步骤中进行插入新的步骤。
job-remove-step
用于移除混合步骤中的指定步骤。
这里job-remix-step
混合步骤多用于处理多人的图片或者视频。
有些不太好理解。我举个例子来解释下。
创建一个新的任务,名字叫hunhe
导入一张双人的图片,我们现在想要对这个图像中的人物进行换脸。
按照之前的逻辑,创建两个步骤,分别换。
步骤1
步骤2
最后只能得到两张图像。但是我想接着步骤1产生的结果去执行步骤2。
这个时候就需要用到job-remix-step
模式。
首先一定确保你已经添加过步骤了!!!
首先一定确保你已经添加过步骤了!!!
首先一定确保你已经添加过步骤了!!!
然后切换到job-remix-step
模式。
可以看到步骤索引里有两个步骤,这就是我们任务里已添加的步骤数量。
如果你添加了3个,这里显示的就是3。
现在切换到job-remove-step
模式。
删除索引1
这个时候应该只有索引0
将右边人脸需要换的图像放上去,并切换到job-remix-step
模式。
步骤索引是0,点击应用。
可以看到多了个索引1。
这就是将步骤1的结果在步骤2使用,最后生成一张混合后的图像。
最后记得切换到job-submit
提交该任务。
最后执行该任务。
最后合成的图片效果。如果是处理视频的操作也一样。
以上就是任务系统的使用以及参数说明。如果还不太理解可以查看视频教程。
日志系统
这个就是方便大家在处理的时候查看信息,不用切换到启动器中去查看。