玩转StyleGan2:手把手教你安装并运行项目!

时间过得是真快,离上次分享《用AI生成一堆漂亮且独一无二的女朋友!》已经快过去半个多月了。光分享效果,而不分享如何实现,这不是我的风格。所以从今天开始,我会带大家一起玩转这个强大的高清人脸生成项目(不懂开源项目的可以理解为软件)。

目前规划了几个主题

1. 安装并运行

2. 虚拟人脸编辑,操控虚拟人物表情

3. 真实人脸编辑,操控任何人的表情。

4. 云端运行。

今天就来介绍第一部分,详细演示如何安装这个并运行这个项目,生成1024×1024的高清“虚拟”人脸。这个“虚拟”并不是指很假或者2d,3d动画,而是指这个人在现实世界中不存在。AI通过学习现实世界中各种人脸的特征,然后重新生成一张逼真的人脸。

首先介绍一下官方的配置要求:

Both Linux and Windows are supported. Linux is recommended for performance and compatibility reasons.
64-bit Python 3.6 installation. We recommend Anaconda3 with numpy 1.14.3 or newer.
TensorFlow 1.14 or 1.15 with GPU support. The code does not support TensorFlow 2.0.
On Windows, you need to use TensorFlow 1.14 — TensorFlow 1.15 will not work.
One or more high-end NVIDIA GPUs, NVIDIA drivers, CUDA 10.0 toolkit and cuDNN 7.5. To reproduce the results reported in the paper, you need an NVIDIA GPU with at least 16 GB of DRAM.
Docker users: use the provided Dockerfile to build an image with the required library dependencies.

 

虽然有很多要求,但是这里最重要的一个要求是“高端显卡”。我这里演示用的是RTX 2080ti (滴滴云的服务器,大师码:8888) 。我也尝试过用GTX 1070,可以跑起来。

除了硬件要求外,系统方面的话最好是win10。其他要求我会在后面步骤中说清楚。

下面就拎一下整体流程:

1. 安装git软件

2. 获取Stylegan2源代码

3. 安装VS2017

4. 安装Cuda和Cudnn

5. 安装anconda

6. 安装pip依赖

7. 修改部分源代码

8. 运行项目生成图片

大概就是这些点,虽然看起来步骤有点,有点难……其实真的有点多,有点难!当然,有人带路的话肯定会好很多。

1. 安装git

Git 是一个分布式版本控制软件,与CVS、Subversion一类的集中式版本控制工具不同,它采用了分布式版本库的做法,不需要服务器端软件,就可以运作版本控制,使得源代码的发布和交流极其方便。

对于程序员来说应该很熟悉,对于大众来说也许有点深奥,但是今天我们需要用到的就一行命令,而且我会给出这条命令。

如果你电脑上还没有这个软件,需要先去官网下载:

https://git-scm.com/downloads

 

 

打开网址后,点击Downloads下面的Window下载。

下载完后找到exe文件,直接双击打开,一路Next到底,就安装成功了。然后按键盘上的快捷键Win+R 输入cmd打开命令行。

 

然后,在命令行中输入git,如果跳出类似的信息就证明已经安装成功。

2. 获取源代码

源代码是这里最重要的部分,那些牛逼的效果都是由这部分控制。完成第一步后,这里就可以快速获取源代码了。我这里专门建了一个名为StyleGan2的文件夹来存放相关文件,文件夹的放在桌面上。

然后输入命令:

#进入目标文件夹,每个人可能不一样。
cd C:\Users\dc2-user\Desktop\StyleGan2
#获取源代码
git clone https://github.com/NVlabs/stylegan2.git

这个目标文件夹每个人都可能不一样,所以这个路径也可能不一样。获取这个路径的方式其实很简单。假设我在桌面上创建了一个文件夹test。

 

我只要点击一下上方的路径导航右侧空白区域,就可以看到这个文件夹的完整路径,复制这个路径就好了。

 

3. 安装VS2017

安装vs2017的目的主要是为了安装C++的编译器,因为这个项目中的一个步骤需要编译。安装vs2017的过程并不复杂,但是文件会比较大,C盘可能会有点心累。这里需要特别注意vs的版本,低于2015可能会出问题,而用高版本的2019我也遇到了问题。

VS2017 官方下载地址:

https://docs.microsoft.com/en-us/visualstudio/releasenotes/vs2017-relnotes

打开后点击下载即可,此时需要你登陆,如果你有账号直接登陆即可,如果没有就注册一个。

登陆成功之后,点击箭头处的Download

 

然后搜索2017,再点击Downolad进行下载。此时下载的并不是软件本身,而是一个安装器。玩过有些大型游戏的人,对于安装器应该不陌生。

打开这个安装器,选择 使用C++的桌面开发,然后点击安装。安装文件大概7G,安装时间看你网络情况,安装过程无需人工干预,很简单。

4. 安装Cuda和Cudnn

所有基于深度学习的软件都需要这两个东西,对于早期玩过AI换脸的朋友,安装这两个东西可以说是熟门熟路。DeepFaceLab其实也需要这个,只是已经集成在安装包里了。这个安装过程,我在deepfaker.xyz上有非常详细的介绍,有需要的可以打开网址搜关键词即可找到文章。为了照顾不太熟悉的朋友,我这里还是简单演示下。

CUDA的下载比较简单。只要打开网址:

https://developer.nvidia.com/cuda-10.0-download-archive

然后根据下图箭头选择选项。Version这部分选择10即可,我是Server版,所以选择了Server2016

下载后,双击打开,默认安装即可。

Cudnn的安装也并不复杂,只是又需要注册一个账号。

打开网址:

https://developer.nvidia.com/rdp/cudnn-archive

然后往下滚动,选择到CuDNNv7.5.0  for CUDA10.0 。点击一下,选择Window10的版本。

 

下载完成后你会获得一个压缩包,里面包含了一些文件。只需要将这些文件拷贝到CUDA的同名目录就好了。

上一步安装的CUDA默认应该在C盘下面,大概的路径如上图。把Cudnn压缩包中的文件拖动到这个目录即可。

5. 安装anconda

anconda是为了创建Python的虚拟环境,有了这个东西,我们就可以在同一台电脑上搞多个深度学习的项目而互不影响。这一点非常有用。这个东西吧,版本非常讲究,直接用最新版会出问题。

通过网址:

https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/

找到红色箭头出的版本下载。

作为一个从坑里爬出来的人告诉你,这一点非常重要。其实这里就是为了拿到一个Python3.6的环境,按理说用最新版的anconda肯定也支持Python3.6。但是理论不等于实际。实际情况是你通过Anconda创建3.6的环境时无法使用pin安装依赖,这个时候就会很崩溃,用conda命令安装会慢到怀疑人生,国内镜像又不好弄(这段看不懂的不用管就对了。)

Anconda的安装并也不复杂,也是双击打开,然后一路Next。

 

安装完后会软件会自动打开主界面,并且自带一个base的环境,你也可以通过create创建一个新的环境。我就简单粗暴直接用base这个环境了。点击绿色播放按钮可以打开命令行。或者按下win键,输入“An”直接打开命令行。

6. 安装pip依赖

安装依赖可以理解为使用python的前期准备。不懂就不用管,跟着做就好了。根据官方要求,需要安装Numpy 1.14.3 ,TensorFlow 1.14

安装命令如下:

pip install numpy==1.14.3

 

本来这是一个很简单的事情,但是一报错很多人就懵逼了。出现红色错误提示说是缺少东西。缺啥补啥,立马来一个命令:

pip install distributed==1.12.8

安装完这个之后再执行上面的命令,numpy就算安装成功了。然后安装深度学习框架TensorFlow

pin install tensorflow-gpu==1.14

由于特色国情,这个加载过程可能会非常慢,原因大家都懂得,所以给你们一条加速命令。

pip install tensorflow-gpu==1.14 -i https://mirrors.aliyun.com/pypi/simple

速度立马从原始社会进入信息时代,下载速度起码能达到几十兆每秒,你带宽够的情况下。

虽然速度问题解决了,但是很不幸,你还会遇到两个问题

 

一个问题是:

ERROR: tensorboard 1.14.0 has requirement setuptools>=41.0.0, but you'll have setuptools 39.1.0 which is incompatible.

另一个问题是:

ERROR: Cannot uninstall 'wrapt'. It is a distutils installed project and thus we cannot accurately determine which files belong to it which would lead to only a partial uninstall.

解决方法为:

pip install --upgrade setuptools
pip install -U --ignore-installed wrapt enum34 simplejson netaddr
pin install tensorflow-gpu==1.14 -i https://mirrors.aliyun.com/pypi/simple

 

7. 修改部分源代码

 

经历千辛万苦,终于万事俱备了。接下来就是几行命令的事儿了。

#进入目标文件夹
cd C:\Users\dc2-user\Desktop\StyleGan2\stylegan2
#生成25张高清头像
python run_generator.py generate-images --network=gdrive:networks/stylegan2-ffhq-config-f.pkl --seeds=6600-6625 --truncation-psi=0.5

从预期来说,此时就可以在stylegan2下面的results目录中看到人脸图片了。但是…..毫无意外又出问题了。

 

坑1 :找不到编译器路径。

我一直以为之前安装了Vs2017路径就自动识别了,没想到直接报异常。懵逼三秒后通过提示推理出了解决方法。

找到源文件custom_ops.py。用Notepad++打开,找到红色箭头所指的地方。这里默认设置了几个路径。按理说不需要手动设置,但是因为Vs的小版本不一样,导致路径错误。

此时,需要找到我们自己的安装路径,然后去替换源文件中的路径。只需要把第一条替换即可。修改后记得按Ctrl+S保存。

坑2:感谢伟大的局域网,你又被加载速度卡死了。

这个坑就看你自己的网络了,如果运气好,就不用管了。如果运气不好,那么又得折腾一番。首先根据地址去下载模型 ,然后创建models目录,然后修改源代码。

通过迅雷或者其他下载工具,手动下载文件。

http://d36zk2xti64re0.cloudfront.net/stylegan2/networks/stylegan2-ffhq-config-f.pkl

把文件放置到stylegan2下面的models目录,这个目录需要手动创建。

修改pretrained_networks.py中的第32行,右侧替换为:

./models/stylegan2-ffhq-config-f.pkl

再次运行

#进入目标文件夹
cd C:\Users\dc2-user\Desktop\StyleGan2\stylegan2
#生成25张高清头像
python run_generator.py generate-images --network=gdrive:networks/stylegan2-ffhq-config-f.pkl --seeds=6600-6625 --truncation-psi=0.5

 

如无意外,会出现

Loding network.. (加载模型)

Setingup TensorFlow…(编译插件)

Generating image… (生成图片)

然后去文件夹results下面找到000开头的文件夹,打开最新的一个,就可以在里面看好高清头像了。

到了这一步,你终于彻彻底底的成功了。

在上面的命令行中我们可以看到两个参数,分别是–seeds=6600-6625 和 –truncation-psi=0.5 。

truncation-psi :不知道怎么翻译,也没人教我啊。大概指的是是生成人物的差异度,一般取值为0.5或者1.0,或者中间值,应该是越大差异越大。

seeds:可以理解为“种子” ,通过这个可以直接控制生成的人物。不同的种子,会生成不同的人。seed的值可以是一个范围,也可以几个离散的点。根据测试,他的取值范围大概是:0~4,294,967,295 (Seed must be between 0 and 2**32 – 1)

两个参数组合调整,生成个几十亿张脸是非常轻松滴!

生成的图片无论是牙齿还是皱纹都一清二楚。

眼睫毛,眉毛,头发完全和真人照片无差别。如果把这些照片混入互联网中,估计没有人能识别出来。

希望大家都能成功走到这一步,以后又多了一项吹牛逼的技能,当然对有些人来说说可能会创造巨大的价值。

=====================

公众号:托尼是塔克

交流群:1129237074

 

小尾巴==========================
公众号:托尼不是塔克
交流群
知识星球
==============================