【趣玩一下】StreamDiffusion一秒100张!实时生成二次元老婆照!

源代码

https://github.com/cumulo-autumn/StreamDiffusion

基础原理

首先Stream Batch,是将原来顺序的去噪步骤改为批量化处理。允许在一个批处理中,每幅图像处于去噪流程的不同阶段。
如此一来,可以大大减少UNet推理次数,显著提高吞吐量。
此外,原先的CFG算法中,需要额外大量计算负样本,导致计算效率低下。
RCFG方法则构建一个“虚拟残差噪声”,这样就只需要一次或者零次负样本计算,减少了计算负样本的开销。
相比之前的CFG方法加速了2倍。
而输入/输出队列主要是利用队列存储缓冲输入和输出,将图像数据预处理等操作与UNet主体网络分隔开,实现管道各个处理环节的并行化,防止处理速度不匹配的情况发生。
随机相似性过滤器,可以基于图像相似性跳过一些UNet处理,减少不必要的计算量,降低功耗:
预计算则是提前缓存一些静态量,如提示嵌入、噪声样本等,减少每次生成的重复计算。
最后,使用TensorRT、Tiny AutoEncoder等加速模块,对模型进行优化,进一步提升推理速度。

体验

安装其步骤依次执行
打开小猫咪,注意运行这个模型需要外网

git clone https://github.com/cumulo-autumn/StreamDiffusion.git

下面选择合适的分支1或分支2执行:
分支1:这里我之前安装过anaconda,所以直接用base默认环境就好了,否则用分支2
在这里插入图片描述

activate base

分支2:注意python版本必须大于等于3.10,否则安装StreamDiffusion会失败
如果想要新建一个环境,执行下面的语句,会出现venv环境

conda create -n streamdiffusion python=3.10
conda activate streamdiffusion

一定要进入venv环境,也就是执行上面的语句,再安装cuda

pip3 install torch==2.1.0 torchvision==0.16.0 xformers --index-url https://download.pytorch.org/whl/cu121
#for Stable Version
pip install streamdiffusion[tensorrt]
python -m streamdiffusion.tools.install-tensorrt
pip install --force-reinstall pywin32

最后运行程序
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

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

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

相关文章

【SQL】1321. 餐馆营业额变化增长(窗口函数rows between 、range between;DATEDIFF()函数)

前述 窗口函数相关知识推荐阅读: 通俗易懂的学会:SQL窗口函数 窗口函数rows between 、range between的使用 MySQL中的DATEDIFF()函数 mysql data类型的加减 常用函数: ROUND() 函数:用于将数值四舍五入到指定的小数位数。FLOO…

Python爬虫——scrapy-2

目录 scrapy简介 安装ipython 基本使用 访问百度 总结 scrapy简介 scrapy shell是Scrapy框架提供的一个交互式命令行工具,用于快速调试和测试Scrapy爬虫。它能够加载Scrapy项目的设置和爬虫代码,并提供一个交互式环境,可以在其中执行Scra…

云计算项目七:jump-server安装部署

jump-server安装部署 配置清单 jumpserver概述 Jumpserver是一款开源的堡垒机,可使系统的管理员和开发人员安全的连接到企业内部服务器上执行操作,并且支持大部分操作系统,是一款非常安全的远程连接工具 常见支持的系统 CentOS, RedHat, …

GNURadio+USRP+OFDM实现文件传输

文章目录 前言一、发送端1、参数配置1)Random Source2)stream to Tagged stream3)Stream CRC324)Protocol Formatter5)Repack Bits6)Virtual Sink7)Chunks to Symbols8)Tagged Strea…

关于装载类子系统

装载类子系统 类加载器字节码调节器类加载运行时数据区 类加载器 将class文件加载进jvm的方法去,并在方法去中创建一个java.lang.Class对象作为外界访问这个类的接口。实现这个动作的代码模块称为类加载器。 类加载器分类 启动类加载器(Bootstrap C…

keycloak18.0.0==本地源码启动

github下载源码, 版本18.0.0 java和maven的版本如下 E:\keycloak-18.0.0>java -version java version "21.0.1" 2023-10-17 LTS Java(TM) SE Runtime Environment (build 21.0.112-LTS-29) Java HotSpot(TM) 64-Bit Server VM (build 21.0.112-LTS-…

EMC测试整改:提升产品合规性和市场竞争力?|深圳比创达电子

在当前的产品研发和制造领域,电磁兼容(EMC)测试是确保产品符合法规要求并能够在各种电磁环境下正常工作的重要环节。然而,很多企业在进行EMC测试时可能会遇到一些问题和不合格情况,因此需要进行整改来提升产品的合规性…

leetcode 热题 100_合并区间

题解一: 排序:先将区间按左边界从小到大进行排序,假设排序后a区间在b区间之前,根据a区间右边界和b区间左边界的大小判断是否重叠,如果重叠则将区间合并为一个。考虑到区间完全处于另一区间内的情况,合并时应…

一个数据库表格缺少自动增加的字段导致添加一条数据失败

一个数据库表格缺少自动增加的字段导致添加一条数据失败。最近要整理出一个cms网站源程序,因此新建了一个目录,将需要的文件复制到该目录。复制好以后,试用的时候发现添加留言失败。经过数小时的查找原因,最后找到原因&#xff0c…

JVM-类加载机制

名词解释 *.class文件的结构 查看指令: javap -verbose hello.class 包含信息: 结构信息(版本号,大小信息); 元数据(类,继承,接口,字段声明,方法声…

如何使用宝塔面板搭建Discuz并结合cpolar实现远程访问本地论坛

文章目录 前言1.安装基础环境2.一键部署Discuz3.安装cpolar工具4.配置域名访问Discuz5.固定域名公网地址6.配置Discuz论坛 前言 Crossday Discuz! Board(以下简称 Discuz!)是一套通用的社区论坛软件系统,用户可以在不需要任何编程的基础上&a…

京东大佬教你剖析软件测试的底层逻辑

写这篇文章,是希望把我的一些我认为是非常有价值的经验总结出来,能够帮助刚做测试不久的新同事,或者是测试经验丰富的老同事以共享。 希望我们可爱的新同事,准备要在测试领域耕耘的伙伴,能够通过我的文章了解到测试的底…

哪吒监控:开源、轻量、易用的服务器监控、运维工具(内附主题美化代码)

哪吒监控是一款开源、轻量、易用的服务器监控、运维工具,为用户提供了一系列强大的功能和便捷的操作方式。 一键安装:支持一键脚本安装面板和监控服务,适用于Linux、Windows、MacOS、OpenWRT等主流系统,让您轻松上手。 实时监控:能够同时监控多个服务器的系统状态,包括…

Linux --- 应用层 | HTTP | HTTPS

前言 前面写的TCP/UDP客户端在访问服务端的时候,需要输入ip地址和端口号才可以访问, 但在现实中,我们访问一个网站是直接输入的一个域名,而不是使用的ip地址端口号。 比如在访问百度 https://www.baidu.com/的时候, …

Linux安装

安装方式介绍 Linux系统的安装方式,主要包含以下两种: 方式概述场景物理机安装直接将操作系统安装到服务器硬件上企业开发中,我们使用的服务器基本都是采用这种方式虚拟机安装通过虚拟机软件安装我们在学习阶段,没有自己服务器&a…

GraphQL

从表中查询10条数据 {user_info(_limit: 100) {idname} }根据id查询数据 {user_info(_where: {id: 1727515006802587648}_order_by: {create_time: _desc}_limit: 10) {idname} }外键联表查询(特别注意写法:update_by.id): {speaker_info(update_by.id: {_eq: 1729043650301…

修改MonkeyDev默认配置适配Xcode15

上一篇文章介绍了升级Xcode15后,适配MonkeyDev的一些操作,具体操作可以查看:Xcode 15 适配 MonkeyDev。 但是每次新建项目都要去修改那些配置,浪费时间和精力,这篇文章主要介绍如何修改MonkeyDev的默认配置,做到一次修改永久生效。 MonkeyDev的默认安装路径是在/opt/Mo…

STM32第九课:ADC单通道模数转换

一、ADC简介 ADC是Analog-to-DigitalConverter的缩写。指模/数转换器或者模拟/数字转换器。是指将连续变量的模拟信号转换为离散的数字信号的器件。典型的模拟数字转换器将模拟信号转换为表示一定比例电压值的数字信号。 STM32f103 系列有3个ADC,精度为12位&#xf…

vite项目修改node_modules

问题详情 在使用某个依赖的时候遇到了bug,提交issue后不想一直等待到作者更新版本,所以寻求临时自己解决 问题解决 在node_modules里找到需要修改的依赖,修改想要修改的代码 修改后记得保存 然后在node_modules里找到.vite文件夹&#x…