网站上的小白入门系列教程是基于2019.3.13的版本而编写,有部分内容已经发生了变化。而目前比较稳定的版本为620,这个版本保持了很长一段时间,并没有发现什么大问题,用着挺好。所以我决定针对这个版本从新写一个使用教程。(哭,写了几天项目作者开始疯狂更新版本….不过没关系620还是值得拥有!)

这个教程主要是为了把一些更新的内容囊括进来,不会像小白入门那么细致,但是我会尽量写的通俗易懂。

1. DeepFaceLab的安装

软件安装部分可以参考之前的教程,是一模一样的,核心要点只有一个:更新驱动(鲁大师, 驱动精灵,去英伟达官网下载都可以)。

2.DeepFaceLab小版本的选择

另外一个需要提前说明的问题是,关于小版本的选择的问题。

DeepFaceLab每一次发布都是4个小版本。

  • 10.1AVX:  N卡推荐这个,AVX值得是CPU的指令集,一般新的CPU都支持这个指令集。
  • 10.1SSE: 如果你是N卡,但是CPU不支持AVX,那么可以选择这个版本。
  • 9.2SSE:  这个版本CUDA是9.2, 其他同上。如果没有特殊原因还是建议使用10.1版
  • OpenCLSSE: 针对AMD显卡和CPU用户。

3.DeepFaceLab的基本流程。

DeepFaceLab虽然更新了很多版本,但是基本流程没有变。

主要是还是一下几个步骤:

  • 提取脸图
  • 训练模型
  • 图片转换
  • 合成视频

4.DeepFaceLab H64使用举例。

DeepFaceLab软件自带了5个模型,H64,H128,DF,LIAEF128,SAE 。 每个模型都有自己的特色,这里不展开说。

其中H64是一个经典模型,几乎所有的AI换脸软件都支持这个模型,我还是以这个模型为例来演示。

2) extract images from video data_src (SRC视频转图片)

3.2) extract images from video data_dst FULL FPS(DST视频转图片)

4) data_src extract faces S3FD best GPU (提取SRC人脸图片)

5) data_dst extract faces S3FD best GPU (提取DST人脸图片)

6) train H64(训练模型,不会自动结束,耗时久)

7) convert H64(图片换脸)

8) converted to mp4 (将图片合成视频)

所有步骤中记住一个点,如果停住了就按回车,有的时候需要按很多次。只有第六步没法按回车结束的。

第六步关闭的方法有两种,

一种直接把窗口关掉,右上角xx,大家都懂的。

另一种,在预览窗口回车(竟然还是回车…)

5.DeepFaceLab 步骤详解。

开始前,先说下我的基本配置和Workspace。

我的配置配置

系统:window10 ,

DFL: DeepFacelab10.1AVx 620,

CUDA: CUDA10.1 ,

显卡: GTX 1070 8G

Workspace介绍

workspace翻译过来就是工作空间,很多编程工具和设计类软件都有这个概念。这个目录就是用来放置素材和结果文件的。

软件自带了这个文件夹,文件夹里面有两个视频,三个目录

分别是:data_dst , data_src ,model , data_dst.mp4,data_src.mp4.

在运行软件的过程中还会生成图片和视频。这些文件和目录是干嘛的我会在下面的详细步骤中一一说明。

这里重点说一下这两个视频,src视频可以称为源视频,dst视频称为目标视频

换脸的过程就是把src视频中的人脸放到dst视频的身体上。

下面开始具体的操作。

2) extract images from video data_src

双击以上脚本,跳出一个黑色窗口,你需要输入帧率(推荐:10),选择输出格式(推荐jpg) 。 输入一个,按一下回车。

稍等片刻即可完成,英文版会有Done的提示,中文版看各自的翻译了,完成按任意键即可退出。执行成功,workspace/data_src下面会产生很多图片,如下图:

3.2) extract images from video data_dst FULL FPS(DST视频转图片)

这个步骤和上面的非常类似,只是这一次操作的是data_dst.mp4这个视频。

这一步中只要要输入jpg回车即可,等待一小段时间后,出现完成提示,即可关闭窗口。

此时,workspace/data_dst中出现了好多图片。

4) data_src extract faces S3FD best GPU

这一步骤的操作是,从图片中提取人脸,也叫切脸。主要分三个阶段,第一阶段和第二阶段是主要使用GPU,第三阶段使用CPU。

注意:第一次使用的时候第一阶段会停留 比较常的时间,这是正常现象!

操作成功后会显示处理了多少图片,提取到多少头像。同时,workspace/data_src/aligned 下面会产生很多头像。这个头像是非常关键的。

这一个环节需要注意两个点:

1. 如果驱动太老会报错,

2. 第一次运行这个步骤会特别慢,中途会有类似卡死的错觉,你只要等等即可。

5) data_dst extract faces S3FD best GPU

这一步和上一步一样的操作,只是对象不一样而已。

6) train H64.bat

这是一个核心步骤,并且是最特殊一步,他不会自动结束。第一次启动会提示你输入若干个参数,作为新手,可以直接回车回车回车,这样就会使用默认参数启动模型。

模型启动后,workspace/model 目录下会出现5个文,这就是模型文件。

参数配置完成后,软件会加载第四步和第五部提取出来的头像,用来训练模型。模型启动后,底部会出现时间和一些跳动数字。同时跳出一个新的窗口。上面会有很多头像。

刚开始如上,只有两列头像,其他区域为灰色。

在这个窗口上按P或者等待十几分钟之后预览图会刷新,第三列和四五列出现头像。随着时间的推移,这些头像会从模糊变清晰

因为这个步骤不会主动停止,所以让很多新手产生了一个困惑:我到底应该在什么时候关闭? 关闭后还能继续么?

首先,关闭后是可以继续的,软件会定时自动保存进度,下次用同样的方式启动后会自动加载之前的进度和配置。

其次,你可以通过两个依据判断是否可以停止这个步骤了。

第一:直接看图片,你认为第一列和第二列,第三列和第四列,已经够清晰了。

第二:看黑色窗口中跳动的数字,最后两个数字接近0.2 就差不多了。

7) convert H64

这个步骤主要实现图片换脸。参数是比较多的。新手可以一路回车到底,全部默认。

参数配置完成后,转换程序就会开始共工作,同时以百分比的形式显示转换进度。

转换过程中,workspace/data_dst/merged 下面会生成图片。这个图片就是已经换完脸的图片。

从中选一张,打开一看。托尼的脸已经被放到变形金刚男主角的身体上。因为我的训练时间非常短,所以效果一般。如果需要好的效果,可以增长训练时间。

8) converted to mp4

这一步主要是将已经换好脸的图片合成成视频,一般是合成mp4格式的视频。

合成视频的时候需要输入一个视频码率,原版默认值为16,这样会导致合成是视频非常大。

这里推荐输入3,在保证清晰度的情况下,文件也不会很大。

结束后,workspace下面会出现一个result.mp4的文件。这样整个换脸过程就结束了。

打开视频即可播放,和Fakeapp相比,DFL优点很多,比如清晰度更高,合成的视频带音轨,无水印。

写文章也是挺累的,边操作边截图,写完还得改错别字,能不能写个提纲,让AI来完成呢?

--------------------------------------------------------

获取更多Deepfakes/AI换脸内容可访问 deepfakes中文网

第一时间获取相关文章可关注微信公众号:托尼是塔克(TonyIsStark)

DeepFaceLab620稳定版使用过程详解!的更多相关文章

  1. cegui-0.8.2编译过程详解

    cegui 编译过程详解(cegui-0.8.2) cegui配置整了好长时间了,在一位大牛帮助下终于搞定了,网上的教程大多是老版本的,cegui-0.8.2版的配置寥寥无几,现在总结一下,献给正在纠 ...

  2. 理论经典:TCP协议的3次握手与4次挥手过程详解

    1.前言 尽管TCP和UDP都使用相同的网络层(IP),TCP却向应用层提供与UDP完全不同的服务.TCP提供一种面向连接的.可靠的字节流服务. 面向连接意味着两个使用TCP的应用(通常是一个客户和一 ...

  3. TCP协议的3次握手与4次挥手过程详解

    1.前言 尽管TCP和UDP都使用相同的网络层(IP),TCP却向应用层提供与UDP完全不同的服务.TCP提供一种面向连接的.可靠的字节流服务. 面向连接意味着两个使用TCP的应用(通常是一个客户和一 ...

  4. BabyLinux制作过程详解

    转:http://www.360doc.com/content/05/0915/14/1429_12641.shtml BabyLinux制作过程详解 作者:GuCuiwen email:win2li ...

  5. (转)Linux 开机引导和启动过程详解

    Linux 开机引导和启动过程详解 编译自:https://opensource.com/article/17/2/linux-boot-and-startup作者: David Both 原创:LC ...

  6. MySQL对数据库数据进行复制的基本过程详解

    MySQL对数据库数据进行复制的基本过程详解 这篇文章主要介绍了MySQL对数据库数据进行复制的基本过程,解读了Slave的一些相关配置,需要的朋友可以参考下 复制 复制是从一个MySQL服务器(ma ...

  7. 个人用户永久免费,可自动升级版Excel插件,使用VSTO开发,Excel催化剂安装过程详解及安装失败解决方法

    因Excel催化剂用了VSTO的开发技术,并且为了最好的用户体验,用了Clickonce的布署方式(无需人工干预自动更新,让用户使用如浏览器访问网站一般,永远是最新的内容和功能).对安装过程有一定的难 ...

  8. MySQL 语句执行过程详解

    MySQL 原理篇 MySQL 索引机制 MySQL 体系结构及存储引擎 MySQL 语句执行过程详解 MySQL 执行计划详解 MySQL InnoDB 缓冲池 MySQL InnoDB 事务 My ...

  9. TortoiseGIT的安装过程详解

    TortoiseGIT简介 TortoiseGIT 是Git版本控制系统的一个免费开源客户端,它是git版本控制的 Windows 扩展.可以使你避免使用枯燥而且不方便的命令行.它完全嵌入 Windo ...

随机推荐

  1. idea逆向生成hibernate工程

    1.创建maven工程 2.在resources下创建hibernate.cfg.xml文件 <?xml version='1.0' encoding='utf-8'?> <!DOC ...

  2. Codeforces Round #344 (Div. 2) 631 C. Report (单调栈)

    C. Report time limit per test2 seconds memory limit per test256 megabytes inputstandard input output ...

  3. springboot-activiti TaskLISTener无法注入service

    转自CSDN :https://blog.csdn.net/Laiguanfu/article/details/89366193 第一步创建springUtil类 @Componentpublic c ...

  4. sql练习03

    准备数据建表语句CREATE TABLE students(sno VARCHAR(3) NOT NULL, sname VARCHAR(4) NOT NULL,ssex VARCHAR(2) NOT ...

  5. UVA - 10829 L-Gap Substrings (后缀自动机+线段树启发式合并)

    题意:统计一段字符串中形如UVU的子串个数(其中V的长度固定为g). 问题等价于求满足$g+1\leqslant |j-i|\leqslant g+LCP(i,j)$的后缀(i,j)的对数,即$\su ...

  6. IT项目开发流程

    项目开发流程: 一.需求分析:相关系统分析员向用户初步了解需求,然后用相关的工具软件列出要开发的系统的大功能模块,每个大功能模块有哪些小功能模块,对于有些需求比较明确相关的界面时,在这一步里面可以初步 ...

  7. keep-alive实现返回保留筛选条件及筛选结果

    实现页面返回时,保留筛选条件和筛选结果 说明 . keep-alive 是Vue的内置组件,能在组件切换过程中将状态保留在内存中,防止重复渲染DOM 实现 结合router实现部分页面缓存 模板应用 ...

  8. Java如何导入一个新的项目

    下面将展示如何将一个项目导入eclipse中 1.点击文件-------->从系统中打开项目 2.选择你要导入的项目所在的目录 3.配置环境 单击项目,选择构建路径------>配置构建路 ...

  9. requests结合xpath爬取豆瓣最新上映电影

    # -*- coding: utf-8 -*- """ 豆瓣最新上映电影爬取 # ul = etree.tostring(ul, encoding="utf-8 ...

  10. springMVC中使用 JSR-303验证器( Validation 接口 )

    在pom.xml,添加validator验证器的依赖 <dependency> <groupId>org.hibernate</groupId> <artif ...