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差不多要慢上一倍左右:

相关推荐
风象南1 小时前
最适合新手先装的 20 个 OpenClaw Skills 来了!
人工智能
小兵张健12 小时前
35岁程序员的春天来了
人工智能
大怪v12 小时前
AI抢饭?前端佬:我要验牌!
前端·人工智能·程序员
冬奇Lab12 小时前
OpenClaw 深度解析(六):节点、Canvas 与子 Agent
人工智能·开源
刀法如飞13 小时前
AI提示词框架深度对比分析
人工智能·ai编程
IT_陈寒15 小时前
Python开发者必知的5大性能陷阱:90%的人都踩过的坑!
前端·人工智能·后端
1G16 小时前
openclaw控制浏览器/自动化的playwright MCP + Mcporter方案实现
人工智能
踩着两条虫16 小时前
VTJ.PRO 双向代码转换原理揭秘
前端·vue.js·人工智能
扉川川16 小时前
OpenClaw 架构解析:一个生产级 AI Agent 是如何设计的
前端·人工智能
星浩AI16 小时前
让模型自己写 Skills——从素材到自动生成工作流
人工智能·后端·agent