deepfakes怎么用_deepfakes-FaceSwap使用笔记

deepfakes怎么用_deepfakes-FaceSwap使用笔记安装过程需要魔法上网,有些包国内下载太慢了conda环境在AnacondaPrompt里,查看所有环境,两个命令都行condaenvlistcondainfo–envs查看安装的包condalist更换环境,前面的conda不写好像也行condaactivatefaceswap提示nomodulenamedcv2进入相应的环境,安装缺少的包condainstallope…

大家好,又见面了,我是你们的朋友全栈君。

安装过程

需要魔法上网,有些包国内下载太慢了

conda环境

在Anaconda Prompt里,查看所有环境,两个命令都行

conda env list

conda info –envs

dbff4bc9ee45440a682ab53c31c0d655.png

查看安装的包

conda list

fe60df655605eb6f71855b7ec515b841.png

更换环境,前面的conda不写好像也行

conda activate faceswap

f5bcfbacc6c063aa8768952cdfcf7dfc.png

提示no module named cv2

进入相应的环境,安装缺少的包

conda install opencv

提取人脸

9d957ce449e8e435ac6ed22ad159ab33.png

Input Dir可以是视频或者图片文件夹

Output Dir是输出的截取好的人脸图片文件夹

Alignments是对齐文件,用于标注人脸的位置信息,不填的话会默认生成在Input Dir。如果要自定义,需要新建一个.fsa后缀的空文件

下面的Extract Every N是每N张图片截取一张人脸,对视频就是每N帧截取一张人脸。官方建议视频是每半秒或一秒截取一张。比如,60帧的视频,半秒就填30

提取两个人脸的图片。

删除无关图片

提取的人脸图片有的可能不是要进行操作的那个人,比如视频里出现多个人,或者多个人的合照,其他人也会被提取。应该删除无关信息

为了便于操作,可以先进行分类,Data框里的三项都应填入

41980531358546debe53a879797a6e93.png

分类之后,将无关的图片文件删除。然后在Tools – Alignments – Job里选择 Remove-Faces,Data框里的Frames Folder不用填,另外两项需要填。完成后,alignments文件也就是.fsa文件会更新,同时会在同目录生成一个备份文件

3543406ab0078d5d12fab8bafdc3e4a9.png

合并多个alignments

Job选择Merge。Data框里,alignments文件放入一个文件夹,并在Alignments File选择时按Shift或Ctrl选择多个alignments文件。

将所有人脸图片放入一个文件夹,Faces Folder选择该文件夹。Frames Folder不填。合并后会生成一个新的alignments

15473baefdee05bfbf20c90d3e9ae314.png

训练模型

填入Input A/B,以及相应的alignmens文件(在Extract里生成的),然后新建一个模型目录并选择,模型将会存在该目录。显卡比较垃圾的话跑一会就会报错,在Trainer里选择Lightweight。根据预览的图片选择何时停止。我用GTX 1050 2G,训练了一个晚上,loss值看起来已经降不下去了,可能跟我的图片数量太少有关(A:100+张,B:1400+张),生成的视频也还凑合,有时清楚有时模糊。

训练可以随时停止,指向相同的文件夹可以继续接着之前的训练。

ac5ae978c840cd27e5b5982466c596c1.png

生成视频

602a3dafe017f87b6cbbfc42ed0f42a3.png

注意这里的alignmens可能和之前Extract出来的不一样。

可以通过ffmpeg将视频每一帧都抽出来,然后对生成的所有图片进行换脸,然后再将帧合成为视频,再将原来的音频合并。

抽取视频的每一帧

ffmpeg -i /path/to/my/video.mp4 /path/to/output/video-frame-%d.png

将帧合并为视频

ffmpeg -r 60 -f image2 -s 1920×1080 -i video-frame-%0d.png -vcodec libx264 -crf 25 -pix_fmt yuv420p test.mp4

%04d 表示用零来填充直到长度为4,i.e 0001…0020…0030…2000 and so on. 如果没有填充,需要相应更改,如 pic%d.png or %d.png

-r 帧率(fps)

-f image2 图像合成视频默认设置

-crf 画质,数值小意味着画质高,通常设置为15-25

-s 分辨率(1920×1080)

-pix_fmt yuv420p 像素格式

test.mp4 输出在当前文件夹,输出结果为test.mp4

video-frame-%0d.png,这里的%0d是对齐长度。

如果使用这种自行抽帧的方法,需要对抽出的所有图片进行Extract,并且Extract Every N设置为1,这里生成的alignments文件可以用于Convert

或者直接在Input Dir里输入视频文件,并对视频文件进行Extract,且Extract Every N设置为1,生成的alignments文件可以用于Convert。当Input Dir里输入视频文件时,Output Dir里生成的还是图片,是已经换过脸的每一帧的图片,仍然需要用ffmpeg进行合并。

说的好像有点乱,总之就是每一帧都应该有一个有alignment,需要先有这个alignments文件才能Convert。

conda env备份

1、进入虚拟环境后,输入以下命令进行备份:

conda env export > environment.yaml

该虚拟环境的信息便被保存在了 environment.yaml 文件中

2、重装该环境

conda env create -f environment.yaml

离线备份:

直接在conda的envs目录下找到要备份的环境目录,复制一份目录保存下来。用conda env list查看环境目录

离线恢复安装

conda create –name env_name –clone env_path –offline

参考链接

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/141274.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • 第十一章 :日志采集工具flume使用

    第十一章 :日志采集工具flume使用第十一章 :日志采集工具flume使用

  • 腾讯创始人团队_美国it名人

    腾讯创始人团队_美国it名人http://blog.csdn.net/cyblueboy83/article/details/44037487新年一到,支付宝微信红包大战硝烟再起,阿里腾讯为抢地狂烧钱,QQ、微信朋友圈红包满天飞,着实让大家玩得不亦乐乎。社交领域一直是互联网创业的大热门,从PC到移动端,从OICQ、MSN到QQ。到了移动互联网时代,社交领域应用开始彻底爆发,直奔黄金期。腾讯在过去几年里,社

  • mongoVue激活成功教程版「建议收藏」

    mongoVue激活成功教程版「建议收藏」下载地址:https://pan.baidu.com/s/1mhPejwO#list/path=%2Fwindows%20soft

  • flutter byte(Unit8List) 转 ios Uint8[] 转 c语言char*

    flutter byte(Unit8List) 转 ios Uint8[] 转 c语言char*最近用flutter写ios线上项目,有一个功能让把设备传来的数据加密,而这个坑爹的加密的方法是c语言写的,用flutter各种尝试,始终不能还原c的加密过程,只能调用ios原生代码,然后用原生代码调用c语言加密,然后将加密的数据返回过程是这么个过程,但是3种语言的类型各不相同,所以中间就出现来各种转换,本人一个安卓屌丝,碰到swift和c语言也是一脸懵逼,很简单的东西我搞了2天,先看…

  • pcap文件格式及文件解析[通俗易懂]

    pcap文件格式及文件解析[通俗易懂]第一部分:PCAP包文件格式一基本格式:文件头数据包头数据报数据包头数据报……二、文件头:文件头结构体sturctpcap_file_header{DWORDmagic;DWORDversio

  • pywin32、win32api、win32gui、win32com、win32con 都是啥?「建议收藏」

    pywin32、win32api、win32gui、win32com、win32con 都是啥?「建议收藏」pywin32、win32api、win32gui、win32com、win32con名称非常类似,特别容易混淆,今天就用600字给大家区分一下文章目录pywin32win32guiwin32conwin32apiwin32com记录时间pywin32pywin32主要的作用是供Python开发者快速调用WindowsAPI的一个模块库。该模块的另一个作用是是通过Python进行COM编程。落地场景:如果你想在Windows操作系统用Python实现自动化工作,pywin32模块经常用到

    2022年10月11日

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号