DeepFaceLab、Roop、AnimeGAN等

通用环境配置

nvidia-smi

nvidia-smi是N卡驱动附带的命令行指令,可以查看当前的GPU信息:
其中 Driver Version是当前NVIDIA显卡驱动版本,CUDA Version是该驱动可用的CUDA版本上限

CUDA

CUDA是由NVIDIA推出的通用并行计算架构,使GPU能够解决图像以外的计算问题。
已安装的CUDA会附带nvcc -V命令行指令,用于查看版本

pytorch

pytorch是基于torch的开源机器学习库,支持跨平台:Windows(CUDA,CPU)、MacOS(CPU)、Linux(CUDA,ROCm,CPU)
pytorch的包名就叫torch
pytorch和CUDA版本对应关系可见官网链接:https://pytorch.org/get-started/previous-versions/。通常高版本的pytorch可以兼容低版本的CUDA。

  • 下载安装
    官网首页生成下载链接,或者在pytorch下载列表中找到符合的版本下载后再手动通过pip载入。其中cu为cuda版本,torch为torch的版本,cp为python版本。
    注意直接通过pip install torch安装的默认是CPU版。可通过import torch; print(torch.__version__)确认是CPU还是CUDA版。
    可通过import torch; print(torch.cuda.is_available())确认当前已安装的torch版本是否能与本机CUDA正常协作。

AnimeGAN人脸动漫化

一个私人的人脸动漫化库。
二代开源,但仅能处理正面大头贴,当出现侧脸或半身/全身人像时效果极差。
三代效果更好且有更多滤镜(迪士尼等),但似乎已停更,且多数功能未开源。

在线预览
git仓库

Roop

照片/视频换脸
操作说明可见本人仓库的fork


DeepFaceLab

照片/视频换脸
可参考官方文档入门视频
相比 Roop,DeepFaceLab更重(需要接收原始/目标人脸的多角度图片/视频以训练成模型,训练需要耗费大量时间)但效果更好。

  • 此外还有个实时换脸的扩展库DeepFaceLive用于直播推流
  • 注意,python 库 deepface 和 DeepFaceLab无关,是个轻量级人脸识别和人脸属性分析(年龄、性别、情感和种族)框架
安装

通过README中的下载链接下载,包含几个exe安装包,根据本机GPU选择合适的安装包。
比起直接git pull源代码,这种方式下载的内容开箱即用,不用配置环境、安装CUDA等了。安装完成后包含以下内容:

  • _internal目录集成了环境、源码(DeepFaceLab目录)等
  • workspace目录用于存放模型、数据集、导入导出文件
  • .bat文件,集成了各种功能,直接使用即可。数字从1~8代表换脸的8个步骤
事先准备
  • 脸部来源图片:workspace/data_src/或视频:workspace/data_src.mp4
    总计3000~8000张包含人脸的图片
    应尽量覆盖所有待替换脸部中出现的人脸角度、光照条件
    应包含尽量丰富的面部表情
    内容应尽量保持一致,如清晰度、胡子造型、妆容、发型(且优先选择短发)
  • 待替换脸部图片:workspace/data_dst/或视频:workspace/data_dst.mp4
操作流程

若来源和目标都是图片,则只需要 1、4、5、6、7
若来源和目标都是视频,则需要全部的 1~8

  1. clear workspace.bat (清理重置workspace目录)

  2. extract images from video data_src.bat(从data_src.mp4视频提取图片)
    默认全帧率,选择较低帧率会更快(建议5~10)
    jpg 速度更快,png 保留的图片信息更多

  3. extract images from video data_dst FULL FPS.bat (从data_dst.mp4视频提取图片)

    • 3 cut video (drop video on me).bat 用于视频截取+转码
  4. data_src faceset extract.bat(从src图片中提取脸部图片)
    结束后log显示图片数和人脸数
    face type:建议使用whole face,包含额头

    • 4 data_src faceset extract MANUAL.bat 手动提取
    • 4.1 data_src view aligned result.bat 打开一个看图软件浏览workspace\data_src\aligned内的图片,方便手动删除低质量或错误人脸
    • 4.2 data_src sort.bat 按指定方式排序,配合4.1使用,删除低质量或错误人脸。默认选项5:按人脸相似度排序。
  5. data_dst faceset extract.bat(从dst图片中提取脸部图片)

    • 5 data_dst faceset MANUAL RE-EXTRACT DELETED ALIGNED_DEBUG
      用于在自动提取后,手动重新标记。使用前应先删除aligned_debug目录中标线有问题的图片
    • 5.Xseg 进阶用法:人为告诉模型,哪些部分是人脸,哪些不是
  6. train Quick96.bat (使用H64开始训练模型,不会自动结束!)
    当预览窗口中第二列和第一列一样清晰,且最后一列也已清晰,则手动退出即可。
    此时loss值(即命令行窗口中最后一个数字)通常应低于0.02。
    选择不同的训练方式,参数和消耗时间会有所不同。
    SAEHD:高清,至少需要6G显存
    AMP:新模型,类似SAEHD,但还不完善
    Quick96:低端但快速,固定为96×96px,建议仅用于快速测试

    • Batch_size 取值为2的n次方,数字越大效果越好但性能要求也越高
    • Face Type:
      h(half):半脸,嘴到眉毛
      mf(mid half face):中半脸,比前者多30%
      f:脸,但不包括额头。适用于SRC或DST中有刘海覆盖额头的情况
      wf(whole face):包括额头和耳朵
      head:整个头部,包括头发。适用于SRC和DST都是短发的情况
    • DF / LIAE:选择架构及一些额外参数。其中LIAE更重(更高的VRAM使用),并且在复杂角度上表现更好。通常用默认的LIAE-UD即可。
    • Place models and optimizer on GPU:将负载都放在GPU,默认为y。当显存不够又不想降低质量时,可以禁用该属性,通过降低速度来实现效果。
  7. merge Quick96.bat(使用训练好的模型对图片进行换脸)
    注意需选择和步骤6中一样的模型

    • Choose blur mask modifier:遮罩平滑度,可用50~100。过高会导致结果趋近DST。
    • Apply color transfer to predicted face:通常选择RTC或LCT,用于处理SRC和DST肤色差距较大的场景
  1. merge to mp4.bat(将已经换好脸的图片转换成视频)
MVE(Machine Video Editor)

一个搭配deepfake使用的视频/图像编辑+项目管理工具,文档见此处
可用于多视频来源等场景

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,717评论 6 496
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,501评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,311评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,417评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,500评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,538评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,557评论 3 414
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,310评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,759评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,065评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,233评论 1 343
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,909评论 5 338
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,548评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,172评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,420评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,103评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,098评论 2 352

推荐阅读更多精彩内容