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_videotoolboxhevc_videotoolbox
  • --face-selector-order的默认值改为large-small
  • 用上下文感知的推理管理器替换全局变量
  • 修复人脸交换器uniface模型中的闪烁问题
  • 修复ROCm和DirectML的线程和预览崩溃问题
  • 修复webp图像的质量问题
  • 修复ffmpeg处理的终止问题

额外更新

我也额外做了一些修改

  • 汉化界面以及部分选项按钮
  • 优化缓存管理路径
  • 删除非必要的前置检查项优化执行速度

更新详解

换脸模式

增加了换脸像素提升选项。

2024 09 27 9499e696dedbcc23efb4ad507519e4ca 1

最高可提升到1024X1024像素(只能在换脸模式下开启)

2024 09 27 d8682a7ac1482b9ea0c7d29100de5720 2

年龄调节

该模式可独立开启,也可以跟其他模式一起使用。

2024 09 27 8b14368186a943290e6679b7eab44a32 3

开启后可以在下方的年龄修改参数进行调节。

2024 09 27 4d8b5e7b0e3d220211ab962f61e0997c 4

参数默认值是0。大于0是增加年龄,使人物变老,小于0是减少年龄,使人物变得年轻。

目标文件上传需要处理的视频或图片。

2024 09 27 113a1ac93b0fcd419de3c1f8cc497a62 5

调节年龄查看效果。

2024 09 27 a6aeda2c72259b98136df4a6e4425db3 6

💡当然还可以同时开启脸部增强和帧增强来保证输出的效果质量。

2024 09 27 a044f6b6f145438ecc7ffca37820800e 7

但是在增加年龄时,脸部增强和帧增强选项会将人物脸部的某些细节给处理掉,产生负效果

从左往右分别是未开启增强、开启脸部增强、开启脸部增强+帧增强。

2024 09 27 2d6ee04cfb972f6e9b50e103c499a914 8

表情恢复

该模式需要结合换脸一起使用。

2024 09 27 6b1ad933fdbe9a732af5099ca67dadab 9

在某些换脸的时候,可能会出现眼睛睁不开,嘴巴抽搐等问题。可尝试开启该模式进行修复表情。

2024 09 27 98d822a7e75c60014a802bb608edb736 10

人脸编辑

该模式可独立开启,也可以跟其他模式一起使用。

2024 09 27 d17aab31077589a18e657f194d3dbbed 11

该模式下可以对脸部五官进行细致的调整。支持视频/图像。

同样的,在目标文件这里上传图像/视频。

2024 09 27 46c4b6836bc76c1cb9f14fa2a7c2d274 13

调整左边的参数,这里我调整了嘴巴闭合度这个选项。

2024 09 27 bbc8238c0f5d253e960d185f6f80349e 14

可以看到右侧的预览效果。

2024 09 27 e90f968635c2ce1bc80ff41afacc5a06 15

也可以结合脸部增强帧增强选项,输出高清的图片/视频。

2024 09 27 416909cc56e5f7137129bbc25739d918 16

任务系统

介绍

这是本次更新比较重要的模块之一。什么是任务系统?简单来说,你可以把它看做是FaceFusion的队列系统。

你可以将你要执行的操作统统加入到队列内,然后执行这个队列。相当于批量。

怎么使用呢?

首先找到位于开始按钮上方的用户界面工作流

2024 09 27 685d68fe016774ec1b90eb11862138e5 17
2024 09 27 908c5d73785c651d9f4d5c3de9b417a4 18

有三个选项,默认是instant_runner模式。

  • instant_runner实时模式。即不使用任务系统。
  • job_runner任务运行模式。选择后执行你设定好的任务队列。
  • job_manager任务管理模式。在该模式下设置、管理任务。

创建任务

在开始任务之前,我们需要创建一个任务,并设置任务内容。

选择job_manager模式。

2024 09 27 65a32b804cdffae1ad353fedd5287121 19

任务操作这里有很多选项。

2024 09 27 03933508049dfdc7bc28a6afa17d8bfe 20

首先选择job-create,并在下方的任务ID框里设置任务名。

(中文没试过,建议英文,避免特殊符号)

2024 09 27 408dea4e5188043c09874877ef201f41 21

然后点击应用,上方日志输出创建成功。

2024 09 27 f25c6aa95f0d8de45679f137f175e74b 22

并且可以看到任务操作这里自动变成了job-add-step

添加任务内容

接着就像往常一样,将你需要处理的素材导入FaceFusion

比如我这里上传了两张图片换脸。

2024 09 27 6024cb4584c1439877bee7c405de20f0 23

然后点击下方的应用,一定确保任务操作选项选择的是job-add-step

2024 09 27 1710c7f1a5a07a1249ab6b3a541e4a51 24

日志这里显示添加成功

2024 09 27 59d24ab05fcd16ea5af93914c84b9119 25

到这里为止,我们第一个步骤就添加好了。一个任务下可以有多个步骤。

再创建第二个步骤

将这两张图片清除掉

2024 09 27 22fa3858cdadd7318f8a06880399049c 26

这次我上传一张新的图片和视频,并且额外勾选了脸部增强帧增强选项。

2024 09 27 7c01cf01a52f8d44b81b0f17f7ec8f2d 27

同样的,点击应用。

2024 09 27 3d5e68c8023fa06a47f5535ed04f55d0 28

显示添加成功。

2024 09 27 c6007dc6d381be78d71ff5764ea8d547 29

到这里为止,我们Task1任务内就有两个步骤,分别是:图片换图片、图片换视频。

并且这两个步骤开启的模式和选项各不相同。

提交任务

当你的步骤添加完毕后,需要提交任务,这一步是告诉FaceFusion我们已经准备好了,将刚才的步骤合并到任务里。

2024 09 27 37469a0968e825693bf3e56964475dca 30

任务操作这里选择job-submit,点击应用。

日志显示已提交。

2024 09 27 93e2db3232770b5312ce034b0d33262e 31

到这里为止,我们前期的准备工作已经做好了,接下来就是运行该任务。

执行任务

用户界面工作流选择job_runner模式,任务操作选择job-run

2024 09 27 ece46bd097b0edb07574ba0d8fb80357 32

点击开始执行刚才的任务内容,最后就会得到一张图片和一段视频。

根据这个流程,你可以批量处理多个不同种类的素材,图片、视频都可以添加到任务队列中一起执行。

并且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

2024 09 27 85eb7b7f06f5765abff351ec016e2816 33

导入一张双人的图片,我们现在想要对这个图像中的人物进行换脸。

2024 09 27 5509a09e1ece90264cc6a684491d5b9e 34

按照之前的逻辑,创建两个步骤,分别换。

步骤1

2024 09 27 df7271002bde707a0ab7a24f8ca5a50a 35

步骤2

2024 09 27 c36634ac2033b01f54fa5810512b7fdb 36

最后只能得到两张图像。但是我想接着步骤1产生的结果去执行步骤2。

这个时候就需要用到job-remix-step模式。

首先一定确保你已经添加过步骤了!!!

首先一定确保你已经添加过步骤了!!!

首先一定确保你已经添加过步骤了!!!

2024 09 27 c9b79ae40123ec5da93fe844b01eaf62 37

然后切换到job-remix-step模式。

2024 09 27 a233284b833457d9db69c5d0d745dc60 38

可以看到步骤索引里有两个步骤,这就是我们任务里已添加的步骤数量。

2024 09 27 01e598e40231bb53a76d6a612f8f3b45 39

如果你添加了3个,这里显示的就是3。

2024 09 27 78eb55be69bdd474a87ca8b3e18dc944 40

现在切换到job-remove-step模式。

删除索引1

2024 09 27 0833ba499dc7d24e43e56a8ee0e89fdb 41
2024 09 27 414e9865ebd421aa996885da5d7d096f 42

这个时候应该只有索引0

2024 09 27 b4c19e49563b1ac79edc4f98aacd55c2 43

将右边人脸需要换的图像放上去,并切换到job-remix-step模式。

2024 09 27 d875bc96ab7d26c260806f9d60ee7b32 44

步骤索引是0,点击应用。

2024 09 27 834c8f837c43c79c482b90759d4d3622 45

可以看到多了个索引1。

2024 09 27 df1f18649899dd658de142f6ed8bab32 46

这就是将步骤1的结果在步骤2使用,最后生成一张混合后的图像。

最后记得切换到job-submit提交该任务。

最后执行该任务。

2024 09 27 c160f568aaa0398c1ce9c29d0e629abf 47

最后合成的图片效果。如果是处理视频的操作也一样。

2024 09 27 89fa6c89a9e988f8953211a6353a9887 48

以上就是任务系统的使用以及参数说明。如果还不太理解可以查看视频教程。

日志系统

这个就是方便大家在处理的时候查看信息,不用切换到启动器中去查看。

2024 09 27 b46afd4aa93c2262a9d97553e477a37e 49