继续探索Roop(单张图视频换脸)的各方面:比如喜闻乐见的“加速”

文章目录

  • (一)Roop项目的特点
  • (二)Roop也能加速***
  • (三)Roop更新和依赖
    • (3.1)飞速更新
    • (3.2)依赖问题
    • (3.3)需要CUDA么

前两天写了《简单介绍Roop(类似SimSwap)单张图视频换脸的项目》 ,介绍了基本安装使用。
之后这个项目飞快的更新着,减少了很多问题更加实用了,所以准备多说几句。

(一)Roop项目的特点

官方:地址。

之前只觉得它很方便用,选一张图,选一个视频,点击开始。
后来发现这个项目更新得超级快,并且它最终合成的视频质量挺高的。
对比DeepFaceLab和SimSwap大概特点如下:

  • Roop:更注重源的特征,相对缺少目标视频的自然程度,角度远近有要求(单图嘛),很快。
  • DFL:注重源的特征,更注重目标视频的自然程度(除非素材不好),角度远近都能处理,很费时间。
  • SimSwap:很久没关注了,项目基本没动(最近更新了模型),似乎只替换了五官,所以非常自然但不像。

简单说就是Roop生成的结果非常像源,但可能不太自然,适合正面的变化不强烈的视频(沙雕舞蹈等)。
适合玩一玩,而不是DFL那样属于伪造级别了(作者说只是练手……哇噢)。

(二)Roop也能加速***

因为项目使用了NSFW检查器,会检查源图和目标视频每帧的内容。
本身为了安全着想是好事,但极大的拖慢了速度。
实测去掉NSFW内容检查后,大概快了7倍左右。
算是快不少了吧,我的天哪。

注释掉项目目录\roop\core.py几行相关的代码就可以了:

#from opennsfw2 import predict_video_frames, predict_image
......
        # if predict_image(target_path) > 0.85:
        #     quit()
......
    # seconds, probabilities = predict_video_frames(video_path=args.target_path, frame_interval=100)
    # if any(probability > 0.85 for probability in probabilities):
    #     quit()
......

所以到底要安全还是快速,很纠结啊。

⚠️⚠️⚠️
补充:
写完才看到代码修改了判断方式,100帧判断一次NSFW内容,所以不再会严重影响速度了。
稍微测试了一下,NSFW检测并不是很靠谱,可能检测错误,可能检测不出来。
⚠️⚠️⚠️

(三)Roop更新和依赖

(3.1)飞速更新

目前项目似乎处于飞速发展阶段,我刚提了个PR就发现一天N个版本就解决了问题。
看看这速度,我发现的全部问题都没了,所以决定不打扰了,告辞。
幸好master合并得不是很快……
继续探索Roop(单张图视频换脸)的各方面:比如喜闻乐见的“加速”_第1张图片
目前启动命令行有变化,可以指定硬件加速的类别。
已N卡为例,由原来的:

.\venv\Scripts\python.exe .\run.py --gpu

变成现在的:

.\venv\Scripts\python.exe .\run.py --gpu-vendor nvidia

(3.2)依赖问题

目前依赖文件requirements.txt变成这样的:

--extra-index-url https://download.pytorch.org/whl/cu118

numpy==1.23.5
opencv-python==4.7.0.72
onnx==1.14.0
insightface==0.7.3
psutil==5.9.5
tk==0.1.0
pillow==9.5.0
torch==2.0.1+cu118
onnxruntime==1.15.0; sys_platform == 'darwin' and platform_machine != 'arm64'
onnxruntime-silicon==1.13.1; sys_platform == 'darwin' and platform_machine == 'arm64'
onnxruntime-gpu==1.15.0; sys_platform != 'darwin'
tensorflow==2.13.0rc1; sys_platform == 'darwin'
tensorflow==2.12.0; sys_platform != 'darwin'
opennsfw2==0.10.2
protobuf==4.23.2
tqdm==4.65.0

意思就是一定得用GPU了,这没问题。
很多都指定的等号感觉不太好。
毕竟旧版依赖也能用,未来的新版依赖很可能也能用的。
感觉最好是写成>=最小版本,适应性强些(比如把python环境不按项目全装本机的人-_-参考这里)。

之前我装的是torch==2.0.0+cu118
因为torchaudiotorchvision当时最新的版本也是依赖torch==2.0.0+cu118

但是现在变成torch==2.0.1+cu118这也太新了吧。
所以也需要升级 torchaudio==2.0.2+cu118torchvision==0.15.2+cu118

(3.3)需要CUDA么

咱又不是开发用,所以cuda_11.8.0_522.06_windows.exe不需要装的。
我无脑按照官方说明安装后,又卸载了它(之前的项目些也都没要它啊)……

但CUDNN还是要的,所以cudnn-windows-x86_64-8.9.1.23_cuda11-archive.zip这部分不变。

你可能感兴趣的:(人工智能/机器学习,Python,Windows,音视频,python,人工智能,roop)