OpenFaceswap 入门教程(2):软件使用篇!
安装完OpenFaceswap之后,是不是就迫不及待的想要“见证奇迹”了呢? 都说磨刀不误砍柴工。开始之前请先做一个准备。然后大致了解一下换脸的过程
============================================
该软件已经停更很久,推荐使用更新,更强的DeepFaceLab!
============================================
换脸基本步骤是:
- 把视频切成很多图片
- 把图片中的人脸提取出来
- 通过人脸来训练模型
- 通过模型对图片换脸
- 把换脸后的图片合成视频
具体的操作过程如下:
1.创建素材目录workspace
创建一个叫workspace的目录用来放你的视频图片等素材。 所谓换脸,就是把张三的脸放到李四头上,或者反过来。所以你需要在workspace下面在创建两个目录A和B。用来放两个人的素材。
最后的目录结构大致如下:
A 里面放的是被换脸的人,A目录下应该有一个被换脸人的视频 FBB.mp4
B 放的是将要去替换别人的人。B目录下应该有一个换人的视频FMT.mp4
Face 目录是从视频里提取的人脸。
Model 为训练的模型目录
Result 为结果目录,替换完的图片和视频都会在这里。
这个目录结构完全可以自己来命名,为了方便讲解和验证请大家也创建一个这样的目录结构。
其实,FBB.mp4和FTM.mp4为换脸的视频素材,必须事先准备好。你可以自己准备,也可以用我从网上收集的两个视频。
网盘地址:https://pan.baidu.com/s/1dHUtY6KiEII95nGKg_G6rQ 提取码:75gx
2. A的人脸截取
点击 VIDEO A 跳出一个串口,选择自己的workspace目录,选中A文件夹中的FBB.mp4
点击 IMAGES A 后面的黄色文件夹图标。选中FBB,然后点击 IMAGES A 。跳出黑色窗口,片刻之后窗口底部出现 press any key to continue… 证明这一部操作成功,在FBB目录下会出现好多图片。
点击 FACES A 后面黄色文件夹,选中Face目录,然后点击FACES A 开始从图片中提取人脸。
点击完后会出现黑色窗口,稍等片刻之后出现进度条。没出现进去条就证明你的电脑环境没有设置好,需要去查看软件安装的章节。
进度条结束之后,会显示Image Found xxx 。 告诉你发现多少张图片,提取了多少个人脸。
此时打开 Face目录,可以看到很多人脸图片,证明人脸提取已经成功。
3. B的人脸截取
B的操作和A是一毛一样,只是选择的视频和目录不同。这里选得是FTM.mp4。目录是B,FTM,Face等。
4. 训练模型
训练模型是一个比较耗时的过程,少则一两天,多则半个月,配置不同,耗时不同。 如果你之前没有穿件Model目录,可以点击黄色文件夹之后选着Create Folder 。如果已经有了就直接选中后Open。
然后点击MODEL开始训练。点击后跳出一个黑色窗口,底部会有一个动态的显示。同时出现一个叫training的预览窗口。
随着时间的推移,预览窗口会发生变化,出现很多人头,训练的过程,就是人脸从模糊变清晰的国产。
上面红色框中的数字是一个训练指标,Loss_A,Loss_B后面的数字越小越好,一般来说当数值小到0.02 或者0.0.1就差不多了,当然你也可以直接看预览图的效果,如果人脸非常清晰了,这个环节就结束了。
为了演示整个过程,我这里只是训练了几分钟,就开始进入下一个环节了。
5. 人脸替换
人脸替换的结果我们保存在Result,所以先通过点击文件夹选中Result ,然后点击Open。
点击 SWAPS开始换脸。跳出黑色窗口,出现进度条。最后出现Done! 就证明转换已经全部完成。
这一个步骤做的事情,就是把B的脸放到A的头上,最终产生的一堆换了脸的图片。
Result目录随便打开一张看一下,脸已经换过去了。我这里由于训练时间超短,所以脸是模糊的。训练久了脸就会变得清晰,看起来就不会这么假了。
6. 导出视频
我们训练的最终目的肯定不是图片换脸,而是视频换脸。所以最后一步,是将图标合成视频。
点击文件夹,选中Result,Save 。
点击 MOVIE ,弹出黑色窗口,片刻之后,出现Press any key to …. 证明合成已经结束。
此时,Result下面出现了一个FBB的视频。
到这里,整个换脸软件的使用就结束了。
刚开始,大家换出来的连肯能都是这一个样子的。 随着 MODEL环节时间的增长,效果会越来越好。除了模型的训练时长之外。最终换脸的效果很大程度取决于A 和B下面的视频素材。
求问训练过程和提取图片的过程可以暂停吗?
可以的,黑色窗口关掉就可以了!
请教一下我在FACES A提取脸部的步骤出先问题,没有脸部被提取出来只出现一个档案叫alignments.json,我是哪里没做好呢?
请问提取图片完没有人脸被提出来,只有一个alignments.json档案,是我哪里出错了吗?
有错误提示么?
对,我也遇到同样问题,没有错误提示,进度条跑完最后一句话是使用了xxx张图片,识别出了0个脸部
有可能是视频加了反人脸识别,
根据我的尝试,youtube上的视频都提不出来
請問我已經訓練了20小時了
生成的影片臉跟身體的顏色差很多
感覺臉就像貼上去的
是訓練時間太短還是有可能有別的問題呢?
两个改进的方向:1. 丰富素材,2.继续训练
大大,你好
我安裝了CUDA 10.1 CuDnn v7.5.0.56
打開OpenFaceSwap按著教程做,按下 FACEA就這樣了
請問出現以下情況要怎樣解決
謝謝!
Traceback (most recent call last):
File “faceswap\faceswap.py”, line 8, in
from lib.cli import FullHelpArgumentParser
File “C:\OpenFaceSwap\faceswap\lib\cli.py”, line 7, in
from lib.FaceFilter import FaceFilter
File “C:\OpenFaceSwap\faceswap\lib\FaceFilter.py”, line 3, in
import face_recognition
File “C:\OpenFaceSwap\python\python-3.6.3.amd64\lib\site-packages\face_recognition\__init__.py”, line 7, in
from .api import load_image_file, face_locations, batch_face_locations, face_landmarks, face_encodings, compare_faces, face_distance
File “C:\OpenFaceSwap\python\python-3.6.3.amd64\lib\site-packages\face_recognition\api.py”, line 4, in
import dlib
ImportError: DLL load failed: 找不到指定的模組。
相应的软件你都安装了么? 按照安装篇!
我遇到一模一样的问题!请问你解决了吗
到合成的時候出現這個 請問是什麼問題呢?
Failed to convert image: C:\OpenFaceSwap\workplace\A\新增資料夾\720P_1500K_227626841A3419.jpg. Reason: Error while calling cudaMalloc(&data, new_size*sizeof(float)) in file D:\pythonfs\scripts\dlib\dlib\dnn\gpu_data.cpp:195. code: 2, reason: out of memory
Failed to convert image: C:\OpenFaceSwap\workplace\A\新增資料夾\720P_1500K_227626841A3420.jpg. Reason: Error while calling cudaGetLastError() in file D:\pythonfs\scripts\dlib\dlib\dnn\gpu_data.cpp:117. code: 2, reason: out of memory
内存溢出,一般是因为配置不够,或者运行这个的时候有其他程序占用了显存。
教程里写的是把B的脸换成A? 但是软件里写的是Will convert image set A into face B?这不就是把A换成B么?所以应该是哪种呀
A,B很容易搞混,你一步一步操作下去看结果就知道了!
大大!求問每次訓練到loss小於0.008的時候就會重新開始是哪裡出錯了呢?
另外就是我就算訓練到0.008感覺撕裂感還是很嚴重是為什麼呢?
您好好像卡在模型训练这里,这是报错信息
ResourceExhaustedError (see above for traceback): OOM when allocating tensor with shape[64,2048,4,4] and type float on /job:localhost/replica:0/task:0/device:GPU:0 by allocator GPU_0_bfc
[[Node: model_1/conv2d_5/convolution = Conv2D[T=DT_FLOAT, data_format=”NCHW”, dilations=[1, 1, 1, 1], padding=”SAME”, strides=[1, 1, 1, 1], use_cudnn_on_gpu=true, _device=”/job:localhost/replica:0/task:0/device:GPU:0″](model_1/conv2d_5/convolution-0-TransposeNHWCToNCHW-LayoutOptimizer, conv2d_5/kernel/read)]]
Hint: If you want to see a list of allocated tensors when OOM happens, add report_tensor_allocations_upon_oom to RunOptions for current allocation info.
[[Node: loss_1/mul/_597 = _Recv[client_terminated=false, recv_device=”/job:localhost/replica:0/task:0/device:CPU:0″, send_device=”/job:localhost/replica:0/task:0/device:GPU:0″, send_device_incarnation=1, tensor_name=”edge_1685_loss_1/mul”, tensor_type=DT_FLOAT, _device=”/job:localhost/replica:0/task:0/device:CPU:0″]()]]
Hint: If you want to see a list of allocated tensors when OOM happens, add report_tensor_allocations_upon_oom to RunOptions for current allocation info.
溢出了,显存不够! 升级设备或者降低参数配置。
Trainer不要選original,選LowMem
提取人脸的时候 命令行paused咋回事
软件安装正常
我在训练完模型以后按ENTER为啥没有图片保存在Model文件夹,只是一些H5文件?而且再点击Swap进行换脸操作也是提示失败,no valid model found?
你好,我在采集脸部时卡住了
我创建了一个新的文件夹来当做FACE
但是进行第三部时,却根本不显示进度条,我已经按照安装篇进行了三次还是不行,
不知道什么原因
我的GPU一直上不去,10以下,CPU倒是用到一些
这个东西我也无解,我GPU大概50%
大大问一下,为什么解压包解压完后,并没有一个安装文件,是直接就是全部啦,但是点击运行程序时,双击没反应。但是其他的卸载的运行程序都是可以的。
我写这个教程有点久了,我提供的文件里应该是一个安装文件。安装完后会有exe出现,双击就能打开了。
AMD的U和显卡可以用吗,什么都装好了报错。Error while calling cudaGetDevice(&the_device_id) in file D:\pythonfs\scripts\dlib\dlib\dnn\gpu_data.cpp:178. code: 35, reason: CUDA driver version is insufficient for CUDA runtime version
openfaceswap不支持AMD显卡,DeepFaceLab的opencl版本支持。
lz,您是不是忘了写素材的地址呀。文章里写道:“FBB.mp4和FTM.mp4为换脸的视频素材,必须事先准备好。你可以自己准备,也可以用我从网上收集的两个视频。
网盘地址:”
这里的网盘地址是空的啊~~~
补上咯!
“啊哦,来晚了,该分享文件已过期”…..lz,你是不是忘了更改文件的有效期啊T_T
还有这种事情啊!我去看看!
提取不到脸啊,请问怎么回事C:\OpenFaceSwap>pause
请按任意键继续. . .
请按任意键继续. . .
C:\OpenFaceSwap\python\python-3.6.3.amd64\lib\site-packages\h5py\__init__.py:36: FutureWarning: Conversion of the second argument of issubdtype from `float` to `np.floating` is deprecated. In future, it will be treated as `np.float64 == np.dtype(float).type`.
from ._conv import register_converters as _register_converters
Using TensorFlow backend.
Output Directory: C:\OpenFaceSwap\alignA
Input Directory: C:\OpenFaceSwap\imgA
Loading Extract from Extract_Align plugin…
Using json serializer
Alignments filepath: C:\OpenFaceSwap\imgA\alignments.json
Starting, this may take a while…
16%|████████████▏ | 829/5250 [00:00<00:00, 31%|███████████████████████▎ | 1608/5250 [00 46%|██████████████████████████████████▉ | 24 62%|███████████████████████████████████████████████▏ 78%|█████████████████████████████████████████████████████████ 94%|█████████████████████████████████████████████████████████ 100%|█████████████████████████████████████████████████████████ ███████████████████| 5250/5250 [00:00<00:00, 8186.30it/s]
Writing alignments to: C:\OpenFaceSwap\imgA\alignments.json
————————-
Images found: 5250
Faces detected: 0
————————-
Done!
请按任意键继续. . .
我的也是,超级郁闷。你解决了吗?
OpenFaceswap 目前cudnn能用10了嗎
这个软件已经停止更新了,所以cudnn版本已经固定了,不能升级。
大大您好,为什么我点击 IMAGES A 只有空白黑色窗口
我也是这个问题,感觉安装都正常啊
提不出脸的
根据我的尝试,youtube的视频全部都提不出脸
有些视频可能加了比较先进的反人脸识别,这个软件又比较老了,跟不上时代了。。
软件是比较老了,不过一般人脸是可以的。提取不出来估计是哪里有点问题。
请问有多张图片(要换上的脸)的话能运行吗?怎么操作呢?
直接选图片也是可以的。