首页教程
【Stable Diffusion进阶教程】加速Stable Diffusion
56

【Stable Diffusion进阶教程】加速Stable Diffusion

AI知识学习小助手
AI知识学习小助手
2023-08-02 16:44

软件

我们将使用 AUTOMATIC1111  Stable Diffusion GUI 来创建图像。您可以在 Google Colab、  Windows或 Mac上使用此 GUI 。

交叉注意力优化选项

所有优化选项都专注于使交叉注意力计算更快并使用更少的内存。以下是 AUTOMATIC1111 中可用的所有选项。

如何设置交叉注意力优化

在 AUTOMATIC1111 Web-UI 中,导航至“设置”页面。选择左侧面板上的优化。交叉注意力优化下拉菜单中,选择一个优化选项。初始选择是“自动”。单击应用设置

你应该选择哪一个?请参阅下面的解释。

多吉特克斯

在 Stable Diffusion 的早期(感觉像是很久以前的事情),GitHub 用户Doggettx对原始实现的交叉注意力操作进行了一些性能改进

当时这是一个很好的加速,但人们大多转向下面列出的其他加速选项。

xFormers

注意力操作是稳定扩散算法的核心,但速度很慢。

xFormers是 Meta AI 团队开发的变压器库它通过实现内存高效注意力闪存注意力来加速并减少注意力操作的内存使用。

内存高效注意力通过巧妙地重新安排计算步骤,使用更少的内存来计算注意力操作。Flash Attention一次计算一小部分的注意力操作。最终结果是更少的内存使用和更快的操作。

xFormer 被认为是最先进的。

缩放点积 (sdp) 注意力

缩放点积注意力是 Pytorch 内存高效注意力和闪存注意力的原生实现。换句话说,它是 xFormers 选项的替代实现。

这种优化的一个缺点是生成的图像可能是不确定的(旧 xFormer 版本中存在问题)。您可能无法使用相同的生成参数重现相同的图像。

这是一个新功能,需要 Pytorch 2 或更高版本。

SDP 无内存

sdp-no-mem没有内存效率注意力的缩放点积注意力

与 SDP 注意力不同,生成的图像是确定性的。相同的生成参数产生完全相同的图像。

这是一个新功能,需要 Pytorch 2 或更高版本。

次二次注意力

次二次(sub-quad)注意力是内存高效注意力的另一种实现,它是xFormerSDP的一部分。如果您无法使用 xFormers 或 SDP,可以尝试此选项。

分散注意力 v1

Split-attention v1是内存高效注意力的早期实现。

在尝试使用此工具之前,您应该先使用 xFormers 或 SDP。

调用人工智能

Invoke AI代码库中使用的交叉注意力优化。此选项对于 Nvidia GPU 不可用的 MacOS 用户非常有用。

代币合并

令牌合并(ToMe)是一种新技术,通过减少需要处理的令牌数量(在提示和否定提示中)来加速稳定扩散。它认识到许多令牌是多余的,并且可以组合起来而不会产生太大后果。

代币合并量由合并代币的百分比控制。

下面是一些 0% 到 50% 代币合并的示例。

令牌合并产生相似的图像(图片:原始论文

令牌合并的一个缺点是它会改变图像。如果您希望其他人重现精确的图像,您可能不想打开它。

在 AUTOMATIC1111 WebUI 中使用令牌合并

AUTOMATIC1111 对令牌合并具有本机支持。您无需安装扩展即可使用它。

要使用令牌合并,请导航至“设置”页面。转到优化部分。设置token合并比例。例如,0.2 表示合并 20% 的代币。单击应用设置

负指导最小西格玛

负面指导最小西格玛选项会在某些被认为无关紧要的条件下关闭负面提示。实证测试表明,可以在某些步骤中关闭负调节而不影响图像。

使用下一节中的提示测试最小西格玛。

尽管变化很小,但仍然存在明显的微小变化。因此,如果您想记录参数并稍后重现完全相同的图像,请不要使用此设置。

使用负指导最小西格玛

要使用负指导最小 sigma,请导航至“设置”页面。转到优化部分。设置负指导最小 sigma的值。单击应用设置

速度和内存基准

测试设置

以下是基准测试中使用的提示和否定提示。确切的提示对速度并不重要,但请注意,它们在令牌限制(75) 内,因此不会调用额外的令牌批次。

(20 岁女人特写编辑照片,姜黄色头发,苗条的美国甜心),(雀斑:0.8),(嘴唇分开),逼真的绿眼睛,POV,胶片颗粒,25 毫米,f/1.2,自由度,散景,美丽对称的脸型,完美闪亮的眼睛,轮廓分明的瞳孔,高对比度的眼睛,超细致的皮肤

(半写实、cgi、3d、渲染、草图、卡通、绘画、动画:1.4)、文本、特写、裁剪、出框、最差质量、低质量、jpeg 伪影、丑陋、重复、病态、残缺不全、多余的手指、变异的手、画得不好的手、画得不好的脸、突变

型号:Chillout Mix

采样方法:欧拉

尺寸:512×512

采样步数:20

批次数量:2

批量大小:8

CFG 规模:7

种子:100

以下结果是在 RTX 4090 GPU 卡和 CUDA 11.8 上运行的结果。

交叉注意力优化基准

选项

时间(秒)

峰值显存

没有任何

35.1

23.1GB

狗吉特克斯

14.4

14.9GB

xFormers

12.8

3.5GB

SDP 无内存

10.6

3.5GB

sdp

10.5

3.5GB

次二次方

18.8

5.9GB

v1

21.5

3.6GB

调用人工智能

14.4

14.9GB

交叉注意力优化

缩放点积优化表现最好,其次是 xFormers。两者都是加速和减少内存使用的不错选择。

代币合并基准

代币合并%

时间(秒)

峰值显存

0

10.6

3.5GB

0.3

10.3

3.5GB

0.5

10.0

3.5GB

0.7

9.9

3.5GB

代币合并。

令牌合并提高了生成速度,尽管我认为这并不重要。

它确实有可能大幅改变图像。因此,仅当您不关心再现性时才使用它。

负指导最小西格玛基准

负面引导

时间(秒)

内存(保留)

0

10.6

3.5GB

0.3

10.5

3.5GB

0.5

10.2

3.5GB

0.7

10.1

3.5GB

负指导最小西格玛。

负指导最小西格玛导致与令牌合并类似的加速,但对图像的改变要少得多。

您应该使用哪个加速选项?

如果您关心复制图像,请使用xFormersSDP-no-mem。不要使用代币合并或负面指导最小西格玛。

如果您不关心再现性,请随意在xFormers、SDP-no-mem 和 SDP之间进行选择。使用令牌合并负指导最小西格玛来提高速度。

如果您使用的是MacOSInvoke IA是您的最佳选择

合集导航
合集
# 1 【Stable Diffusion进阶教程】After Detailer:自动修复面面部
# 2 【Stable Diffusion进阶教程】如何运行 SDXL 模型
# 3 【Stable Diffusion进阶教程】加速Stable Diffusion
# 4 【Stable Diffusion进阶教程】Stable Diffusion中控制光照的 3 种方法
# 5 【Stable Diffusion进阶教程】在Stable Diffusion中放大图像的 3 种方法(ControlNet 平铺放大、SD 放大、AI 放大)
# 6 【Stable Diffusion进阶教程】负面提示如何发挥作用?
# 7 【Stable Diffusion进阶教程】Stable Diffusion如何发挥作用?
# 8 【Stable Diffusion进阶教程】Stable Diffusion工作流程(分步示例)
# 9 【Stable Diffusion进阶教程】Stable Diffusion2中的图像深度:您需要了解的一切
# 10 【Stable Diffusion进阶教程】区域提示器:控制Stable Diffusion中的图像合成
# 11 【Stable Diffusion进阶教程】如何使用Stable Diffusion (Deforum) 制作视频
# 12 【Stable Diffusion进阶教程】Stable Diffusion SDXL Beta 模型
# 13 【Stable Diffusion进阶教程】Stable Diffusion采样器:综合指南
# 14 【Stable Diffusion进阶教程】Midjourney 与 Stable Diffusion您应该选择哪一个?
# 15 【Stable Diffusion进阶教程】什么是超网络以及您应该了解的超网络
# 16 【Stable Diffusion进阶教程】如何在Stable Diffusion中使用嵌入
# 17 【Stable Diffusion进阶教程】如何使用Stable Diffusion将照片卡通化
# 18 【Stable Diffusion进阶教程】如何使用 Dreambooth 将任何东西放入Stable Diffusion(Colab 笔记本)
# 19 【Stable Diffusion进阶教程】如何使用AI图像放大器来改善细节
# 20 【Stable Diffusion进阶教程】WebUI AUTOMATIC1111:初学者指南
# 21 【Stable Diffusion进阶教程】什么是 LoRA 模型以及如何在 AUTOMATIC1111 中使用它们
# 22 【Stable Diffusion进阶教程】ControlNet v1.1:完整指南
# 23 【Stable Diffusion进阶教程】如何使用 Stable Diffusion AI 对图像进行风格化
# 24 【Stable Diffusion进阶教程】利用图像 AI 生成时尚创意的 4 种方法
# 25 【Stable Diffusion进阶教程】使用Stable Diffusion制作动画 GIF(分步)
# 26 【Stable Diffusion进阶教程】AI 图像中的常见问题及其解决方法
# 27 【Stable Diffusion进阶教程】使用这些简单的提示技巧微调您的 AI 图像
# 28 【Stable Diffusion进阶教程】如何通过Stable Diffusion修复去除多余的肢体
# 29 【Stable Diffusion进阶教程】如何使用outpainting来扩展图像
# 30 【Stable Diffusion进阶教程】如何在 Google Colab 上运行稳定扩散 (AUTOMATIC1111)
 

全部讨论

no data来都来了,坐下聊聊