Stable Diffusion教程——使用TensorRT GPU加速提升Stable Diffusion出图速度

概述

Diffusion 模型在生成图像时最大的瓶颈是速度过慢的问题。为了解决这个问题,Stable Diffusion 采用了多种方式来加速图像生成,使得实时图像生成成为可能。最核心的加速是Stable Diffusion 使用了编码器将图像从原始的 3512 512 大小转换为更小的 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差不多要慢上一倍左右:

相关推荐
DogDaoDao27 分钟前
神经网络稀疏化设计构架方法和原理深度解析
人工智能·pytorch·深度学习·神经网络·大模型·剪枝·网络稀疏
西猫雷婶1 小时前
pytorch基本运算-Python控制流梯度运算
人工智能·pytorch·python·深度学习·神经网络·机器学习
说私域1 小时前
新零售第一阶段传统零售商的困境突破与二次增长路径:基于定制开发开源AI智能名片S2B2C商城小程序的实践探索
人工智能·开源·零售
寒月霜华2 小时前
机器学习-模型验证
人工智能·深度学习·机器学习
救救孩子把3 小时前
3-机器学习与大模型开发数学教程-第0章 预备知识-0-3 函数初步(多项式、指数、对数、三角函数、反函数)
人工智能·数学·机器学习
CareyWYR3 小时前
每周AI论文速递(250908-250912)
人工智能
张晓~183399481213 小时前
短视频矩阵源码-视频剪辑+AI智能体开发接入技术分享
c语言·c++·人工智能·矩阵·c#·php·音视频
deephub3 小时前
量子机器学习入门:三种数据编码方法对比与应用
人工智能·机器学习·量子计算·数据编码·量子机器学习
AI 嗯啦3 小时前
计算机视觉----opencv实战----指纹识别的案例
人工智能·opencv·计算机视觉
max5006003 小时前
基于多元线性回归、随机森林与神经网络的农作物元素含量预测及SHAP贡献量分析
人工智能·python·深度学习·神经网络·随机森林·线性回归·transformer