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

news2024/12/29 10:40:38

文章目录

  • (一)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()
......

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

(三)Roop更新和依赖

(3.1)飞速更新

目前项目似乎处于飞速发展阶段,我刚提了个PR就发现一天N个版本就解决了问题。
看看这速度,我发现的全部问题都没了,所以决定不打扰了,告辞😄。
幸好master合并得不是很快……
在这里插入图片描述
目前启动命令行有变化,可以指定硬件加速的类别。
已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这部分不变。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/614883.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

如何修复vcruntime140.dll文件?多种解决vcruntime140.dll的方法分享

在使用Windows操作系统时,经常会遇到一些错误提示,比如缺少vcruntime140.dll文件。这个文件是Visual C Redistributable Package的一部分,它负责运行C程序。如果你在运行某些软件或游戏时收到了“缺少vcruntime140.dll文件”的错误提示&#…

电子科技大学计算机系统结构半期考试参考答案

2023 答案-半期试题(15分) 1、试分析采用哪种设计方案实现求浮点数乘法FPMUL对系统性能提高更大。假定FPMUL操作占整个测试程序执行时间的10%。 一种设计方案是增加专门的FPMUL硬件,可以将FPMUL操作的速度加快到10倍&#…

IP协议与ethernet协议

一、IP协议 1.IP协议作用和意义 (1)计算机网络体系结构 (2)网络互联使用路由器 (3)IP网的意义 当互联网上的主机进行通信时,就好像在一个网络上通信一样,看不见互连的各具体的网络…

Vue.js 中的渲染函数是什么?如何使用渲染函数?

Vue.js 中的渲染函数是什么?如何使用渲染函数? Vue.js 是一款流行的前端框架,它提供了许多方便的工具和 API,用于构建交互式的用户界面。其中,渲染函数是 Vue.js 中一个强大的工具,它可以让我们以编程的方…

深度解析java异步多线程优化版

快速使用需求:我不要理解一堆理论想直接用 操作说明 ITask.java PutEsTask.java TaskExecutor.java TaskQueue.java TestMain.java请把这几个类文件复制下去,运行testMain的方法,根据TestMain的运行日志,【1】-> 【8】不同需求…

2.3 网络设计与redis、memcached、nginx组件

目录 一、网络模块需要处理哪些事情二、reactor网络设计模型三、网络模块与业务的关系四、redis、memcached、nginx1、redis2、memcached3、ngnix4、总结 一、网络模块需要处理哪些事情 网络编程主要关注客户端与服务端交互的四个问题: 1、连接建立 2、消息到达 3、…

《不要挑战人性》笔记(一)

恒河猴实验 代母实验 将刚出生的小猴子与母亲分开,让它与绒布妈妈跟铁丝妈妈生活在一起。铁丝妈妈身上有食物,绒布没有食物,小猴子更喜欢绒布妈妈,即使它在铁丝妈妈那里得到了食物。绒布妈妈身上设置机关,攻击小猴子&a…

OAuth2 工作流程详解

我们之前谈到了使用saml作为SSO单点登录认证。本文讲解oauth2.0协议,oauth2.0协议避免了客户端直接访问受保护资源 什么是OAuth OAuth是一种安全的开放协议,用于在不相关的服务之间授权用户。换句话说,它使一个服务能够访问托管在其他服务上…

Flutter 笔记 | GetX

官网:https://pub.dev/packages/get 中文文档:https://github.com/jonataslaw/getx/blob/master/README.zh-cn.md 关于 GetX 现在Flutter的状态管理方案很多,redux、bloc、state、provider、Getx。 provider是官方提供的状态管理解决方案&…

小程序分包详解

一:什么是小程序分包 分包指的是把一个完整的小程序项目,按照需求划分为不同的子包,在构建时打包成不同的分包,用户在使用时按需进行加载。 二:为什么使用分包 小程序第一版 推出 小程序代码包不能超过1MB 大小&…

java SSM 教代会审批管理系统myeclipse开发mysql数据库springMVC模式java编程计算机网页设计

一、源码特点 java SSM 教代会管理系统是一套完善的web设计系统(系统采用SSM框架进行设计开发,springspringMVCmybatis),对理解JSP java编程开发语言有帮助,系统具有完整的源代码 和数据库,系统主要采用…

计算机网络开荒2-应用层

文章目录 一、网络应用体系结构2.1 客户机/服务器结构(Client-Server,C/S)2.2 点对点结构(Peer-to-peer,P2P)2.3 混合结构(Hybrid) 二、网路应用的进程通信2.1 套接字Socket2.2 应用层协议的内容 三、网络应用的需求与传输层服务四、Web4.1 HTTP4.1.1 HTTP连接类型4.1.1.1 非持…

mysql慢sql优化实战:in order by优化处理

背景 线上查询慢的问题日益突出,专门写一个帖子记录一下处理过程,会定期更新优化处理方案 套餐余量统计查询菜单,数据库查询时间一分钟五十秒,优化之后耗时109毫秒,性能提升很大.所有时间统计均以数据库层面进行统计.用户使用层面因为有数据传输、带宽、业务逻辑处理等因素…

只要7分钟,教你从0-1搭建BI系统,这份大佬整理的指南免费送!

在BI行业干了快十年了,做过制造业供应链的BI项目,也跟过零售电商、房地产、银行的BI建设,经常有朋友咨询关于BI建设的内容,今天总结了一套BI项目建设指南,直接分享给大家,觉得不错记得点赞收藏。 通常情况…

实战【金融评分卡】

金融评分卡 网站:百融、同盾 1.导入 信贷评分卡是一种用于评估个人或企业申请贷款的工具,就像-个评分表-样。我们可以把它看作是银行或金融机构用来判断某人是否有资格获得贷款的一-种方式。 想象一下,你是一个银行家,有很多人向你申请贷款,比如个人贷…

cas单点登录-服务端部署

一.需求描述 公司开发系统越来越多,每个系统都有自己的登录认证流程,给用户很繁琐的体验,统一认证单点登录迫在眉睫 二.流程图 三.本地运行cas服务端 1.拉取cas服务端代码,切换到对应分支(我使用的是6.4.x&#xff…

proxmox7.4 安装后配置

关于proxmox7安装和配置的博文,倒是不少。可惜鱼龙混杂,踩了不少坑,如今实践成功后,做一分享。 proxmox7.4安装(与安装linux系统类似) 1.去官网https://proxmox.com/en/downloads 下载安装镜像,注意: 下…

iTOP-3588开发板Android12源码定制开发uboot开发

uboot 开发-Uboot 源码是 v2017.09 版本。目前在该平台上已经支持 RK 所有主流在售芯片。支持 的功能主要有:  支持 RK Android 固件启动;  支持 Android AOSP 固件启动;  支持 Linux Distro 固件启动;  支持 Rockchip miniloader 和 SPL/TPL 两种 Pre-loader 引导…

对比才知差距!海尔“精华洗”用实验告诉用户

《怪诞关系学》一书中讲到,人生来会与他人做比较,对比是天性,竞争是必然。用高深点的话讲,人是通过对比身边的事物和同类来定位自身的,只有对比才知道差距有多大。“仰观宇宙之大,俯察品类之盛”&#xff0…

Python如何批量合并70个doc和docx文件

目录 一、问题的提出 二、算法分析 三、代码展示 四、注意事项 有一位朋友发来70多个数名命名的doc和docx文件,问我有没有vba代码,可以把这些文件按照数字大小的顺序合并。我试着用了chatgpt,搞了一串vba代码行不通,于时我就找…