DeepFaceLab相关文章
一:《简单介绍DeepFaceLab(DeepFake)的使用以及容易被忽略的事项》
二:《继续聊聊DeepFaceLab(DeepFake)不断演进的2.0版本》
三:《如何翻译DeepFaceLab(DeepFake)的交互式合成器》
四:《想要提高DeepFaceLab(DeepFake)质量的注意事项和技巧(一)》
五:《想要提高DeepFaceLab(DeepFake)质量的注意事项和技巧(二)》
六:《友情提示DeepFaceLab(DeepFake)目前与RTX3080和3090的兼容问题》
七:《高效使用DeepFaceLab(DeepFake)提高速度和质量的一些方法》
八:《支持DX12的DeepFaceLab(DeepFake)新版本除了CUDA也可以用A卡啦》
从DeepFaceLab官网看到一个相关的项目:
【SimSwap】:Swapping face using ONE single photo 一张图免训练换脸。
感觉很神奇,百度了解到是上海交通大学和腾讯联合研发的一个框架。
知乎上有介绍,论文链接:Arxiv,ACM DOI。
SimSwap的意思就是Simple Swap,简易的换脸。
似乎没有更多的介绍,于是自己试了一下没有那么完美但似乎还挺有意思,
我放了一个自己做的视频到优酷上面,对比了一下原版DFL和SimSwap的区别:
SimSwap对比视频
我不确定这个应该叫安装么……
首先你得安装了git,准备好目录然后:
git clone [email protected]:neuralchen/SimSwap.git
当然也可以通过其他可视化工具来克隆项目代码,比如Sourcetree,TortoiseGit。
记得pull看是否有新代码提交。
项目依赖:
官方推荐用Anaconda来管理。
Anaconda官网 | The World’s Most Popular Data Science Platform。
是个管理基于Python的开发环境管理平台。主要用于管理和切换多套不同项目环境,主要是解决不同的项目依赖不同版本库的问题。
我下载了Windows的版本:Anaconda3-2021.05-Windows-x86_64.exe。
安装过程就略过吧,懒得写了……
⭐️打开Anaconda控制台,按照官方写的步骤:
conda create -n simswap python=3.6 #创建名为simwap的环境
conda activate simswap #激活这个环境
conda install pytorch==1.8.0 torchvision==0.9.0 torchaudio==0.8.0 cudatoolkit=10.2 -c pytorch
(option): pip install --ignore-installed imageio
pip install insightface==0.2.1 onnxruntime moviepy
⚠️:使用conda或pip安装时可能会很慢或者失败,请多试几次,或者在更好的网络条件时进行,必要时可以手动用迅雷下载一些实在难以下载的文件……emmm……
⭐️然后需要下载和放置一些预训练的模型:
1)项目使用了insightface 来做脸部识别和对其,进行图像预处理。
需要下载antelope.zip文件解压到./insightface_func/models 目录中,微软网盘。
不要使用其他版本的 insightface 。
更新:应大家要求我也放这里了。
2)项目使用face-parsing.PyTorch进行脸部解析和图像后期处理。
需要下载79999_iter.pth文件到 ./parsing_model/checkpoint 目录中,谷歌网盘。
谷歌咱难以下载,所以我传了一份文件到这里了。
3)还需要两个预训练模型:
拷贝 arcface_checkpoint.tar 到 ./arcface_model 中。
解压 checkpoints.zip 到项目的根目录中 ./
谷歌网盘 或者 百度网盘,密码: jd2v
PS:前面提到的./目录也就是根目录,就是你克隆下来的项目目录,最终目录结构大概如下:
如果你有个新30系列显卡,那么按前面的步骤完成后,执行命令时会报CUDA版本错误。
那么重新执行一下前面的句,关于cuda和pytorch的安装语句,小改如下:
conda install pytorch torchvision torchaudio cudatoolkit=11.1 -c pytorch -c conda-forge
顺便提一句,可以通过Nvidia控制面板->系统信息->组件查看你的显卡的CUDA版本。
官方给了一些例子如下。
PS:执行命令前,别忘了用Anaconda控制台,并且激活simswap配置,不要在base下就执行命令。
conda activate simswap
确认是在simswap环境配置下,而不是在base下,进入克隆下来的目录,执行代码。
(simswap) C:\SimSwap>python test_one_image.py --isTrain false --name people --Arc_path arcface_model/arcface_checkpoint.tar --pic_a_path crop_224/6.jpg --pic_b_path crop_224/ds.jpg --output_path output/
上面的命令,将莱昂纳多的脸,换到了发哥的头上。
是官方的例子,当然自己执行也一样效果。
只换一张脸 (the one with highest confidence by face detection).
(simswap) C:\SimSwap>python test_video_swapsingle.py --isTrain false --use_mask --name people --Arc_path arcface_model/arcface_checkpoint.tar --pic_a_path ./demo_file/Iron_man.jpg --video_path ./demo_file/multi_people_1080p.mp4 --output_path ./output/multi_test_swapsingle.mp4 --temp_path ./temp_results
换视频中所有的脸(非常诡异的效果)
(simswap) C:\SimSwap>python test_video_swapmulti.py --isTrain false --use_mask --name people --Arc_path arcface_model/arcface_checkpoint.tar --pic_a_path ./demo_file/Iron_man.jpg --video_path ./demo_file/multi_people_1080p.mp4 --output_path ./output/multi_test_swapmulti.mp4 --temp_path ./temp_results
还可以多种方式,指定脸换脸,去掉logo等,请看原文吧。
大概效果和官方的介绍是一样的。
的确很神奇,大幅度转动头部都可以……
最困难的部分居然是下载那些预训练模型文件(什么是谷歌网盘?微软也不行啊)。
用conda安装各种组件也慢得离谱,经常超时出错,呵呵呵,多试几次就习惯了。
没有Deepfacelab效果那么好,不过速度很快…… 没有训练过程嘛。
和DeepFaceLab相比较,效果不佳大概有两方面原因: