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

2024-03-11 1651阅读

温馨提示:这篇文章已超过445天没有更新,请注意相关的内容是否还可用!

概述

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。

感兴趣可加入:566929147 企鹅群一起学习讨论

环境配置要求

要使用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,以获得最佳性能。

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

查看GPU驱动版本:

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

查看内存与显卡型号:

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

我使用的环境是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.gitStable Diffusion——使用TensorRT GPU加速提升Stable Diffusion出图速度

点击安装:

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

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

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

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

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

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

2.设置

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

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

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

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

3.模型转换

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

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

关于导出尺寸,这是要设置不用尺寸,但尺寸大小只能是2的幕,这里面导出的模型为onnx模型,如果接触过深度学习的都清楚这个尺寸的含义。

4. 测试推理速度

使用TensorRT推理时,选择的模型与SD Unet要对应,出图的宽度与高度,也要对应上一步导出的模型的尺寸:

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

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

使用TensorRT推理:

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

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

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

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

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

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

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

VPS购买请点击我

免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

目录[+]