Stable Diffusion教程——使用TensorRT GPU加速提升Stable Diffusion出图速度
概述
Diffusion 模型在生成图像时最大的瓶颈是速度过慢的问题。为了解决这个问题,Stable Diffusion 采用了多种方式来加速图像生成,使得实时图像生成成为可能。最核心的加速是Stable Diffusion 使用了编码器将图像从原始的 3512512 大小转换为更小的 46464 大小,从而极大地降低了计算量。它还利用了潜在表示空间(latent space)上的 Diffusion 过程,进一步降低了计算复杂度,同时也能保证较好的图像生成效果。在 消费级GPU 上(8G显存),Stable Diffusion 要生成一张描述复杂图像大概需要 4 秒时间。
然而,对于许多面向消费者的应用来说,每张图像生成需要 4 秒的耗时仍然过长。这时候,TensorRT 就发挥了重要作用。TensorRT 是英伟达(NVIDIA)推出的高性能深度学习推理(inference)库,旨在优化和加速深度学习模型的推理过程。它能够将训练好的深度学习模型优化并部署到 NVIDIA GPU 上,实现实时推理任务的高效执行。TensorRT 的设计目标是提高推理性能、减少延迟和资源消耗,并支持在边缘设备上运行。
TensorRT 提供了许多优化技术,包括网络层融合(layer fusion)、内存优化、精度降级(precision calibration)、量化(quantization)和深度学习模型的裁剪(network pruning)。通过这些技术,TensorRT 可以最大限度地利用 GPU 的并行计算能力,实现深度学习模型的高效执行。
2023年10月18日 Nvidia终于推出了官方的TensorRT插件Stable-Diffusion-WebUI-TensorRT,该插件可以直接在 webui 的 extension 中安装即可,默认支持cuda11.x。
环境配置要求
要使用Stable-Diffusion-WebUI-TensorRT插件加速,有几个重要的前提条件,GPU必须是NVIDIA的(俗称N卡),GPU的显存必须在8G以上,包含8G,GPU驱动版本大于等于537.58,如果电脑没有别的深度学习模型要训练,建议驱动更新到最新的版本。物理内存大于等于16G。
支持Stable-Diffusion1.5,2.1,SDXL,SDXL Turbo 和 LCM。对于 SDXL 和 SDXL Turbo,官方推荐使用具有12GB 或更多 VRAM 的 GPU,以获得最佳性能。

查看GPU驱动版本:

查看内存与显卡型号:

我使用的环境是win10,GPU 3080 10G显存,32G内存,Stable Diffusion用的是秋叶大佬的4.5这个版本。
Stable-Diffusion-WebUI-TensorRT安装
1.安装
启动Stable-Diffusion-WebUI,找到扩展,然后从网址安装TensorRT插件:
插件网址:https://github.com/NVIDIA/Stable-Diffusion-WebUI-TensorRT.git
点击安装:

等侍2到10分钟,安装完成:

然后重启Stable-Diffusion-WebUI,就可以看到:


2.设置
打开设置——>用户界面——>快捷设置列表——>输入"sd_unet",然后保存设置,重载UI:

重启之后就可以看到多了一个SD Unet的选框了:

3.模型转换
选择要使用的模型,然后打开TensorRT——>TensorRT导出——>选择预设尺寸——>导出引擎:

关于导出尺寸,这是要设置不用尺寸,但尺寸大小只能是2的幕,这里面导出的模型为onnx模型,如果接触过深度学习的都清楚这个尺寸的含义。
4. 测试推理速度
使用TensorRT推理时,选择的模型与SD Unet要对应,出图的宽度与高度,也要对应上一步导出的模型的尺寸:

测试出图速度,使用TensorRT出图时,第一张图会很慢,要计算时间可以从第二张开始算,下面出图尺寸是1024*1024:
使用TensorRT推理:

不使用TensorRT推理,可以看出慢了2点几秒,差不多3秒:

使用TensorRT推理(出图尺寸512*512):

不使用TensorRT推理(出图尺寸512*512),可以看出,不使用TensorRT差不多要慢上一倍左右:

相关文章:
Stable Diffusion教程——使用TensorRT GPU加速提升Stable Diffusion出图速度
概述 Diffusion 模型在生成图像时最大的瓶颈是速度过慢的问题。为了解决这个问题,Stable Diffusion 采用了多种方式来加速图像生成,使得实时图像生成成为可能。最核心的加速是Stable Diffusion 使用了编码器将图像从原始的 3512512 大小转换为更小的 46…...
NFTScan | 02.12~02.18 NFT 市场热点汇总
欢迎来到由 NFT 基础设施 NFTScan 出品的 NFT 生态热点事件每周汇总。 周期:2024.02.12~ 2024.02.18 NFT Hot News 01/ CryptoPunks 推出「Punk in Residence」孵化器计划 2 月 12 日,NFT 项目 CryptoPunks 宣布推出「Punk in Residence」孵化器计划&a…...
使用 apt 源安装 ROCm 6.0.x 在Ubuntu 22.04.01
从源码编译 rocSolver 本人只操作过单个rocm版本的情景,20240218 ubuntu 22.04.01 1,卸载原先的rocm https://docs.amd.com/en/docs-5.1.3/deploy/linux/os-native/uninstall.html # Uninstall single-version ROCm packages sudo apt autoremove ro…...
python函数的定义和调用
1. 函数的基本概念 在编程中,函数就像是一台机器,接受一些输入(参数),进行一些操作,然后产生输出(结果)。这让我们的代码更加模块化和易于理解。 函数是一段封装了一系列语句的代码…...
【JVM篇】什么是类加载器,有哪些常见的类加载器
文章目录 🍔什么是类加载器🛸有哪些常见的类加载器 🍔什么是类加载器 负责在类加载过程中,将字节码信息以流的方式获取并加载到内存当中 🛸有哪些常见的类加载器 启动类加载器 启动类加载器是有Hotspot虚拟机通过的类…...
STM32—DHT11温湿度传感器
文章目录 一.温湿度原理1.1 时序图 二.代码 一.温湿度原理 1.1 时序图 (1).下图一是DHT11总的时序图。 (2).图二对应图一的左边黑色部分,图三对应图一的绿色部分,图四的左部分图对应图一的红色部分,图四的右部分对应图一的黄色部分。 (3)…...
相机图像质量研究(31)常见问题总结:图像处理对成像的影响--图像差
系列文章目录 相机图像质量研究(1)Camera成像流程介绍 相机图像质量研究(2)ISP专用平台调优介绍 相机图像质量研究(3)图像质量测试介绍 相机图像质量研究(4)常见问题总结:光学结构对成像的影响--焦距 相机图像质量研究(5)常见问题总结:光学结构对成…...
MySQL之select查询
华子目录 SQL简介SQL语句分类SQL语句的书写规范SQL注释单行注释多行注释 select语句简单的select语句select的算数运算select 要查询的信息 from 表名;查询表字段查询常量查询表达式查询函数 查询定义别名as安全等于<>去重distinct连接字段concat 模糊查询运算符比较运算…...
Android MMKV 接入+ 替换原生 SP + 原生 SP 数据迁移
背景:项目中一直使用的是原生 SP,众所周知,使用原生 SP 存在卡顿性能问题。公司的性能监控平台抓到不少原生 SP 导致的 ANR 问题: java.io.FileDescriptor.sync (FileDescriptor.java) android.os.FileUtils.sync (FileUtils.java:256) android.app.SharedPreferencesImpl.…...
C#上位机与三菱PLC的通信07--使用第3方通讯库读写数据
1、通讯库介绍 mcprotocol 是一个基于 Node.js 的三菱 PLC MC 协议通信库,具有以下特点: 支持多种三菱 PLC MC 协议的设备,如 FX3U、Q03UDECPU、QJ71E71 等。 支持多种功能码和数据类型,如读取线圈(M)、…...
LiveGBS流媒体平台GB/T28181常见问题-基础配置流媒体服务配置中本地|内网IP外网IP(可选)外网IP收流如何配置
LiveGBS常见问题基础配置流媒体服务配置中本地|内网IP外网IP外网IP收流如何配置? 1、流媒体服务配置2、播放提示none rtp data receive3、多网卡服务器4、收流端口配置5、端口区间可以如何配置6、搭建GB28181视频直播平台 1、流媒体服务配置 LiveGBS中基础配置-》流…...
微服务- 熔断、降级和限流
基本介绍 在微服务架构中,由于服务之间的相互依赖性,任何一个服务的故障或性能问题都可能导致整个系统的不稳定。因此,熔断、降级和限流是三种常见的技术手段,用于提高系统的可用性和稳定性。 熔断 (Circuit Breaker) 熔断机制…...
电路设计(20)——数字电子钟的multism仿真
1.设计要求 使用数字芯片,设计一个电子钟,用数码管显示,可以显示星期,时、分、秒,可以有按键校准时间。有整点报警功能。 2.设计电路 设计好的multism电路图如下所示 3.芯片介绍 时基脉冲使用555芯片产生。在仿真里面…...
【论文阅读笔记】Contrastive Learning with Stronger Augmentations
Contrastive Learning with Stronger Augmentations 摘要 基于提供的摘要,该论文的核心焦点是在对比学习领域提出的一个新框架——利用强数据增强的对比学习(Contrastive Learning with Stronger Augmentations,简称CLSA)。以下…...
前端win10如何设置固定ip(简单明了)
1、右击这个 2、点击属性 3、双击协议版本4设置成以下就ok...
数据结构1.0(基础)
近java的介绍, 文章目录 第一章、数据结构1、数据结构 ?2、常用的数据结构数据结构? 逻辑结构and物理结构 第二章、数据结构基本介绍2.1、数组(Array)2.2、堆栈(Stack)2.3、队列(Que…...
anomalib1.0学习纪实-续2:三个文件夹
为了读懂程序,有三个最重要的文件夹,如下图: 正好对应四个类,如下图: 四个类的来源如下图所示: 注意,MVTec是个大类,里面用到了这里的第四个类MVTecDataset,代码如下。…...
【递归】【后续遍历】【迭代】【队列】Leetcode 101 对称二叉树
【递归】【后续遍历】Leetcode 101 对称二叉树 解法一: 递归:后序遍历 左右中解法二: 迭代法,用了单端队列 ---------------🎈🎈对称二叉树 题目链接🎈🎈------------------- 解法一…...
Nginx https反向代理
接前一篇文章,今天看看https的反向代理怎么配置。 生成自签名证书和私钥 要使用https,首先需要有证书和私钥,这里创建一个测试用的自签名证书和私钥。 使用 openssl 命令生成服务器私钥文件 openssl genrsa -out server.key 2048生成证书…...
zip解压缩
使用unzip库可以轻松解压zip文件,源码下载地址:http://www.codeproject.com/Articles/7530/Zip-Utils-clean-elegant-simple-C-Win #include <Windows.h> #include"unzip.h" SetCurrentDirectory("c:\\"); HZIP hz OpenZip(…...
多云管理“拦路虎”:深入解析网络互联、身份同步与成本可视化的技术复杂度
一、引言:多云环境的技术复杂性本质 企业采用多云策略已从技术选型升维至生存刚需。当业务系统分散部署在多个云平台时,基础设施的技术债呈现指数级积累。网络连接、身份认证、成本管理这三大核心挑战相互嵌套:跨云网络构建数据…...
无法与IP建立连接,未能下载VSCode服务器
如题,在远程连接服务器的时候突然遇到了这个提示。 查阅了一圈,发现是VSCode版本自动更新惹的祸!!! 在VSCode的帮助->关于这里发现前几天VSCode自动更新了,我的版本号变成了1.100.3 才导致了远程连接出…...
鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个生活电费的缴纳和查询小程序
一、项目初始化与配置 1. 创建项目 ohpm init harmony/utility-payment-app 2. 配置权限 // module.json5 {"requestPermissions": [{"name": "ohos.permission.INTERNET"},{"name": "ohos.permission.GET_NETWORK_INFO"…...
(转)什么是DockerCompose?它有什么作用?
一、什么是DockerCompose? DockerCompose可以基于Compose文件帮我们快速的部署分布式应用,而无需手动一个个创建和运行容器。 Compose文件是一个文本文件,通过指令定义集群中的每个容器如何运行。 DockerCompose就是把DockerFile转换成指令去运行。 …...
全志A40i android7.1 调试信息打印串口由uart0改为uart3
一,概述 1. 目的 将调试信息打印串口由uart0改为uart3。 2. 版本信息 Uboot版本:2014.07; Kernel版本:Linux-3.10; 二,Uboot 1. sys_config.fex改动 使能uart3(TX:PH00 RX:PH01),并让boo…...
AI病理诊断七剑下天山,医疗未来触手可及
一、病理诊断困局:刀尖上的医学艺术 1.1 金标准背后的隐痛 病理诊断被誉为"诊断的诊断",医生需通过显微镜观察组织切片,在细胞迷宫中捕捉癌变信号。某省病理质控报告显示,基层医院误诊率达12%-15%,专家会诊…...
关于uniapp展示PDF的解决方案
在 UniApp 的 H5 环境中使用 pdf-vue3 组件可以实现完整的 PDF 预览功能。以下是详细实现步骤和注意事项: 一、安装依赖 安装 pdf-vue3 和 PDF.js 核心库: npm install pdf-vue3 pdfjs-dist二、基本使用示例 <template><view class"con…...
HTML前端开发:JavaScript 获取元素方法详解
作为前端开发者,高效获取 DOM 元素是必备技能。以下是 JS 中核心的获取元素方法,分为两大系列: 一、getElementBy... 系列 传统方法,直接通过 DOM 接口访问,返回动态集合(元素变化会实时更新)。…...
2025-05-08-deepseek本地化部署
title: 2025-05-08-deepseek 本地化部署 tags: 深度学习 程序开发 2025-05-08-deepseek 本地化部署 参考博客 本地部署 DeepSeek:小白也能轻松搞定! 如何给本地部署的 DeepSeek 投喂数据,让他更懂你 [实验目的]:理解系统架构与原…...
ZYNQ学习记录FPGA(二)Verilog语言
一、Verilog简介 1.1 HDL(Hardware Description language) 在解释HDL之前,先来了解一下数字系统设计的流程:逻辑设计 -> 电路实现 -> 系统验证。 逻辑设计又称前端,在这个过程中就需要用到HDL,正文…...
