变化太快的Roop项目(版本1.0.1)

文章目录

  • (一)版本1.0.1的变化
    • (1.1)项目依赖
    • (1.2)模型位置
    • (1.3)命令行
    • (1.4)界面UI
    • (1.5)处理与结果

最早的🔗接触和介绍,而后的🔗讨论和加速,以及🔗同DFL/Simswap对比视频
然后现在新版本又很多变化了……唉。

(一)版本1.0.1的变化

没怎么关注,突然发现又更新了好多。
而且增加了SD WEBUI的插件,蛤?
如果只拉代码下来,直接运行是不行的。

(1.1)项目依赖

依赖也有变化,
不安装启动不了。
也懒得细看了,直接从requirements.txt安装依赖吧。

PS D:\roop> .\venv\Scripts\python.exe -mpip install -r requirements.txt

(1.2)模型位置

再运行,嗯?为啥要在线下载模型?(而且一定会失败)
原来是模型文件移动位置了。
这个inswapper_128.onnx文件需要从旧版的roop\项目根目录,移到roop\models\子目录中(Why T_T)。

(1.3)命令行

命令行也有变化,之前的写法(参数)不能用了。
现在可以传入编码方式。但是支持的有限,不能选nvenc一类……

PS D:\roop> .\venv\Scripts\python.exe .\run.py --execution-provider cuda --video-encoder libx265 --video-quality 1

官网的完整参数介绍(也许过两天又改了?):

options:
  -h, --help            show this help message and exit
  -s SOURCE_PATH, --source SOURCE_PATH
                        select an source image
  -t TARGET_PATH, --target TARGET_PATH
                        select an target image or video
  -o OUTPUT_PATH, --output OUTPUT_PATH
                        select output file or directory
  --frame-processor {face_swapper,face_enhancer} [{face_swapper,face_enhancer} ...]
                        pipeline of frame processors
  --keep-fps            keep original fps
  --keep-audio          keep original audio
  --keep-frames         keep temporary frames
  --many-faces          process every face
  --video-encoder {libx264,libx265,libvpx-vp9}
                        adjust output video encoder
  --video-quality VIDEO_QUALITY
                        adjust output video quality
  --max-memory MAX_MEMORY
                        maximum amount of RAM in GB
  --execution-provider {cpu,...} [{cpu,...} ...]
                        execution provider
  --execution-threads EXECUTION_THREADS
                        number of execution threads
  -v, --version         show program's version number and exit

(1.4)界面UI

界面变得更加好看。
Select a faceSelect a target 后,显示的图片按比例,不会再被压扁了。
在这里插入图片描述

(1.5)处理与结果

开始处理吧。
日志步骤详细了一些。
上面那一大堆模型相关的依然只会显示一次。

> .\venv\Scripts\python.exe .\run.py --execution-provider cuda --video-encoder libx265 --video-quality 1
mp4v2::impl::MP4File::FindIntegerProperty: no such property - moov.trak[0].mdia.minf.stbl.stsd.*.width (c:\work\mp3infp\git\src\lib\mp4v2\src\mp4file.cpp,747)
mp4v2::impl::MP4File::FindIntegerProperty: no such property - moov.trak[0].mdia.minf.stbl.stsd.*.height (c:\work\mp3infp\git\src\lib\mp4v2\src\mp4file.cpp,747)
Applied providers: ['CUDAExecutionProvider', 'CPUExecutionProvider'], with options: {'CUDAExecutionProvider': {'do_copy_in_default_stream': '1', 'cudnn_conv_algo_search': 'EXHAUSTIVE', 'device_id': '0', 'gpu_external_alloc': '0', 'enable_cuda_graph': '0', 'gpu_mem_limit': '18446744073709551615', 'gpu_external_free': '0', 'gpu_external_empty_cache': '0', 'arena_extend_strategy': 'kNextPowerOfTwo', 'cudnn_conv_use_max_workspace': '1', 'cudnn_conv1d_pad_to_nc1d': '0', 'tunable_op_enable': '0', 'tunable_op_tuning_enable': '0', 'enable_skip_layer_norm_strict_mode': '0'}, 'CPUExecutionProvider': {}}
find model: C:\Users\Shion/.insightface\models\buffalo_l\1k3d68.onnx landmark_3d_68 ['None', 3, 192, 192] 0.0 1.0
Applied providers: ['CUDAExecutionProvider', 'CPUExecutionProvider'], with options: {'CUDAExecutionProvider': {'do_copy_in_default_stream': '1', 'cudnn_conv_algo_search': 'EXHAUSTIVE', 'device_id': '0', 'gpu_external_alloc': '0', 'enable_cuda_graph': '0', 'gpu_mem_limit': '18446744073709551615', 'gpu_external_free': '0', 'gpu_external_empty_cache': '0', 'arena_extend_strategy': 'kNextPowerOfTwo', 'cudnn_conv_use_max_workspace': '1', 'cudnn_conv1d_pad_to_nc1d': '0', 'tunable_op_enable': '0', 'tunable_op_tuning_enable': '0', 'enable_skip_layer_norm_strict_mode': '0'}, 'CPUExecutionProvider': {}}
find model: C:\Users\Shion/.insightface\models\buffalo_l\2d106det.onnx landmark_2d_106 ['None', 3, 192, 192] 0.0 1.0
Applied providers: ['CUDAExecutionProvider', 'CPUExecutionProvider'], with options: {'CUDAExecutionProvider': {'do_copy_in_default_stream': '1', 'cudnn_conv_algo_search': 'EXHAUSTIVE', 'device_id': '0', 'gpu_external_alloc': '0', 'enable_cuda_graph': '0', 'gpu_mem_limit': '18446744073709551615', 'gpu_external_free': '0', 'gpu_external_empty_cache': '0', 'arena_extend_strategy': 'kNextPowerOfTwo', 'cudnn_conv_use_max_workspace': '1', 'cudnn_conv1d_pad_to_nc1d': '0', 'tunable_op_enable': '0', 'tunable_op_tuning_enable': '0', 'enable_skip_layer_norm_strict_mode': '0'}, 'CPUExecutionProvider': {}}
find model: C:\Users\Shion/.insightface\models\buffalo_l\det_10g.onnx detection [1, 3, '?', '?'] 127.5 128.0
Applied providers: ['CUDAExecutionProvider', 'CPUExecutionProvider'], with options: {'CUDAExecutionProvider': {'do_copy_in_default_stream': '1', 'cudnn_conv_algo_search': 'EXHAUSTIVE', 'device_id': '0', 'gpu_external_alloc': '0', 'enable_cuda_graph': '0', 'gpu_mem_limit': '18446744073709551615', 'gpu_external_free': '0', 'gpu_external_empty_cache': '0', 'arena_extend_strategy': 'kNextPowerOfTwo', 'cudnn_conv_use_max_workspace': '1', 'cudnn_conv1d_pad_to_nc1d': '0', 'tunable_op_enable': '0', 'tunable_op_tuning_enable': '0', 'enable_skip_layer_norm_strict_mode': '0'}, 'CPUExecutionProvider': {}}
find model: C:\Users\Shion/.insightface\models\buffalo_l\genderage.onnx genderage ['None', 3, 96, 96] 0.0 1.0
Applied providers: ['CUDAExecutionProvider', 'CPUExecutionProvider'], with options: {'CUDAExecutionProvider': {'do_copy_in_default_stream': '1', 'cudnn_conv_algo_search': 'EXHAUSTIVE', 'device_id': '0', 'gpu_external_alloc': '0', 'enable_cuda_graph': '0', 'gpu_mem_limit': '18446744073709551615', 'gpu_external_free': '0', 'gpu_external_empty_cache': '0', 'arena_extend_strategy': 'kNextPowerOfTwo', 'cudnn_conv_use_max_workspace': '1', 'cudnn_conv1d_pad_to_nc1d': '0', 'tunable_op_enable': '0', 'tunable_op_tuning_enable': '0', 'enable_skip_layer_norm_strict_mode': '0'}, 'CPUExecutionProvider': {}}
find model: C:\Users\Shion/.insightface\models\buffalo_l\w600k_r50.onnx recognition ['None', 3, 112, 112] 127.5 127.5
set det-size: (640, 640)
[ROOP.CORE] Creating temp resources...
[ROOP.CORE] Extracting frames...
[ROOP.FACE-SWAPPER] Progressing...
Processing:   0%|                                                                           | 0/50 [00:00<?, ?frame/s, execution_providers=['CUDAExecutionProvider'], threads=8, memory=16]Applied providers: ['CUDAExecutionProvider', 'CPUExecutionProvider'], with options: {'CUDAExecutionProvider': {'do_copy_in_default_stream': '1', 'cudnn_conv_algo_search': 'EXHAUSTIVE', 'device_id': '0', 'gpu_external_alloc': '0', 'enable_cuda_graph': '0', 'gpu_mem_limit': '18446744073709551615', 'gpu_external_free': '0', 'gpu_external_empty_cache': '0', 'arena_extend_strategy': 'kNextPowerOfTwo', 'cudnn_conv_use_max_workspace': '1', 'cudnn_conv1d_pad_to_nc1d': '0', 'tunable_op_enable': '0', 'tunable_op_tuning_enable': '0', 'enable_skip_layer_norm_strict_mode': '0'}, 'CPUExecutionProvider': {}}
inswapper-shape: [1, 3, 128, 128]
Processing: 100%|██████████████████████████████████████████████████████████████████| 50/50 [00:09<00:00,  5.40frame/s, execution_providers=['CUDAExecutionProvider'], threads=8, memory=16]
[ROOP.CORE] Detecting fps...
[ROOP.CORE] Creating video with 25.0 fps...
[ROOP.CORE] Restoring audio...
[ROOP.CORE] Processing to video succeed!

每次会清理缓存(clear CUDA cache)。
似乎除了避免OOM,在我笔记本上不定期特别慢的现象减少了。
但神秘的变慢在笔记本上一直存在(台式机没有问题),某次处理就可能全称从10帧/秒降到0.5帧/秒
并不是NSFW内容检查器的问题。


最终结果和之前的版本没区别。

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

2023亚马逊云科技中国峰会引领无服务器架构新潮流:Serverlesspresso Workshop

序言 在今年3月&#xff0c;我有幸接触了一个项目&#xff0c;也因此结识了 亚马逊云科技无服务器架构 Serverless。在陆续了解 Amazon 产品的过程中&#xff0c;我逐渐发现它所带给我的惊喜远远超出了最初的预期。 今天&#xff0c;想向大家介绍一个名为 Serverlesspresso Wor…

树莓派+Docker+cpolar(内网穿透)+Nignx

首先安装Raspberry Pi Imager&#xff0c;用于给SD卡安装系统镜像。 使用Raspberry Pi Imager&#xff08;树莓派镜像烧录器&#xff09;烧录镜像文件到SD中&#xff0c;操作步骤如下图所示&#xff1a; docker安装nginx提供web服务 获取最新版本的docker安装包&#xff1a; su…

Kafka系列之:一次性传送和事务消息传递

Kafka系列之&#xff1a;一次性传送和事务消息传递 一、目标二、关于事务和流的一些知识三、公共接口四、示例应用程序五、新配置六、计划变更1.幂等生产者保证2.事务保证 七、关键概念八、数据流九、授权十、RPC 协议总结1.获取请求/响应2.生产请求/响应3.ListOffset请求/响应…

web前端框架JS学习之JavaScript类型转换

vascript有多种数据类型&#xff0c;如字符串、数字、布尔等&#xff0c;可以通过typeof语句来查看变量的数据类型。数据类型转换就是数据类型之间相互转换&#xff0c;比如把数字转成字符串、把布尔值转成字符串、把字符串转成数字等&#xff0c;这在工作也是经常碰到的。 本…

Excel VBA 编程入门

Visual Basic for Applications&#xff08;VBA&#xff09;是一种用于 Microsoft Office 套件中的编程语言&#xff0c;它可以帮助您自动化重复性任务、定制应用程序以及增强工作效率。本文将向您介绍 Excel VBA 编程的基础知识&#xff0c;并通过示例帮助您入门。 1、启用“开…

CSS样式优先级怎样划分?【CSS优先级规则】

定义CSS样式时&#xff0c;经常出现两个或更多样式规则应用在同一元素上的情况。此时CSS就会根据样式规则的权重&#xff0c;优先显示权重最高的样式。CSS优先级指的就是CSS样式规则的权重。在网页制作中&#xff0c;CSS为每个基础选择器都指定了不同的权重&#xff0c;方便我们…

Vue中如何进行分布式任务调度与任务监控

Vue中如何进行分布式任务调度与任务监控 在复杂的系统中&#xff0c;如何有效地进行任务调度和监控是一个非常重要的问题。分布式系统中&#xff0c;任务调度和监控则更加复杂。Vue是一款流行的前端框架&#xff0c;本文将介绍如何在Vue中进行分布式任务调度和监控。 什么是分…

图扑智慧地下采矿,“像素游戏”智能呈现

在这个像素世界里&#xff0c;我们需要一个智能地下采矿可视化综合管理平台&#xff0c;来帮助我们管理和监控地下采矿全流程。 图扑软件依托自主研发的 HT for Web 产品&#xff0c;结合三维定制化渲染、动态模拟、物理碰撞、5G、物联网、云计算及大数据等先进技术&#xff0c…

cookie、session、token学习笔记

一.cookie 1.什么是cookie&#xff1f; Cookie用于存储web页面的用户信息。 Cookie是一些数据&#xff0c;存储于你电脑的文本文件中。 当web服务器向浏览器发送web页面时&#xff0c;在连接关闭后&#xff0c;服务端不会记录用户的信息。 而Cookie的作用就是用于解决“如…

【论文阅读】Graph-less Collaborative Filtering

【论文阅读】Graph-less Collaborative Filtering 文章目录 【论文阅读】Graph-less Collaborative Filtering1. 来源2. 介绍3. 模型解读3.1 协同过滤3.2 模型3.2.1 对比知识精馏 3.2.2 自适应对比正则化3.2.3 SimRec的参数学习 4. 实验5. 总结 1. 来源 2023WWW CCFA原文地址co…

CDN和DNS

目录 宽带&#xff0c;窄带&#xff0c;带宽区别和联系如何计算带宽带宽和网速的区别和联系 CDNCDN的原理CDN的好处CDN和通信行业DNS和CDN的区别与联系用户访问未使用CDN缓存网站的过程为使用了CDN缓存后的网站的访问过程变为 CDN加速服务 DNSDNS对好处公共 DNS114 DNS阿里DNS百…

UE4/5动画系列(1.模板制作)

目录 动画模板制作 同步模板组制作 有模板做什么都方便&#xff0c;所以这里我们做一个动画蓝图的模板&#xff08;动物专用&#xff09; 动画模板制作 第一步创建一个动画蓝图的模板 然后找到第三人称的模板&#xff0c;将其模板的蓝图改名&#xff1a; 在动画蓝图的模板里…

使用mount临时挂载出现mount error(13): Permission denied

问题报错 mount error(13): Permission denied Refer to the mount.cifs(8) manual page (e.g. man mount.cifs) //报错信息&#xff0c;提示账号密码错误&#xff0c;其实并不是 添加secntlmssp参数即可&#xff1b;中途可能需要等一些时间 mount -t cifs -o usernamelisi,p…

基于Servlet+JDBC实现的基础博客系统>>系列2 -- 前端基础页面

目录 1. 博客公共页面样式 2. 博客列表页 3. 博客详情页 4. 博客登录页 5. 博客编辑页 1. 博客公共页面样式 导航栏以及背景图设置 <body> <!-- 1.navigation 导航栏 --><div class"nav"><!-- logo --><img src"image/logo.png&q…

JS获取省市区/县,layui获取省市区,layui实现省市区联动,jquery实现省市区联动

前言 通过JS方式获取省市区数据&#xff0c;可自己手动更改JS文件数据 非常简单 效果 实现 百度网盘链接: https://pan.baidu.com/s/1RktJgXY0NP7Eq0ohvBPOEA 提取码: 477z gitee下载链接&#xff1a;https://gitee.com/yuanyongqiang/common-files/blob/master/area.js 下…

轮廓检测及功能

一、实验介绍 1. 实验内容 本实验将学习轮廓检测及功能。 2. 实验要点 生成二进制图像来查找轮廓找到并画出轮廓轮廓特征边界矩形 3. 实验环境 Python 3.6.6numpymatplotlibcv2 二、实验步骤 1 导入资源并显示图像 import numpy as np import matplotlib.pyplot as pl…

C语言进阶教程(再论指针和数组3)

文章目录 前言一、a和&a的区别二、数组作为函数参数总结 前言 本篇文章继续讲解指针和数组。 一、a和&a的区别 1.数组名&#xff08;例如 a&#xff09;表示整个数组。当使用数组名时&#xff0c;它会被解释为对整个数组的引用。例如&#xff0c;可以使用 a[0] 来访…

Attention is all you need

这篇文章最大的亮点就是提出了一种Transformer的结构&#xff0c;是完全依赖注意力机制来刻画输入和输出之间的全局依赖关系&#xff0c;而不使用递归运算的RNN网络了。这样的好处就是第一可以有效的防止RNN存在的梯度消失的问题&#xff0c;第二是允许所有的字全部同时训练(RN…

Docker 数据卷

1、什么是数据卷 通过镜像创建一个容器。容器一旦被销毁&#xff0c;则容器内的数据将一并被删除。但有些情况下&#xff0c;通过服务器上传的图片出会丢失。容器中的数据不是持久化状态的。这个时候可以通过数据卷来解决这个问题。 数据卷是一个可供一个或多个容器使用的特殊目…

解决不允许一个用户使用一个以上用户名与一个服务器或共享资源的多重连接的问题

问题概述&#xff1a; 用windows server 2012 r2 vl x64搭了个文件服务器&#xff0c;在使用时有个问题&#xff0c;老是用户登录有问题&#xff0c;提示“不允许一个用户使用一个以上用户名与一个服务器或共享资源的多重连接”。出现的原因不详&#xff0c;网上也没查到合理的…