为什么感觉stablediffusion更新后生成图片的速度变慢了?卡在最后1%很久?

这个原因有很多,首先必须明确的是,其中占据比重不小的部分其实是心里作用,因为等待会让人焦躁,有科学研究表明,当等待时间超过3分钟后,人们会普遍感觉烦躁感逐渐上升,会觉得后续等待的时间相对更加漫长。

除了心理作用之外,还有以下几个原因:

a 版本的升级。

关于版本的问题请在文档内搜索“关于版本的扫盲”,搞懂什么是内核版本和插件版本。无论是内核版本的升级还是各种插件版本的升级,既然是升级,通常是为了提供更优质的效果,也就代表着更多的计算量和更多的资源占用。

比如2023年8月份的时候,最新的内核版本也不过是SD1.5,生成的图片标准尺寸是512x512;而现在,最新版本已经是SDXL1.0,基本尺寸也来到了1024x1024,而你使用的显卡却没有在这两个月里升级,自然会带来不可避免的生成速度下降。

(以下部分说明存疑,版本升级确实有速度变慢的表现,但具体原因尚不清楚,以下仅为猜测且很可能不准确,保留本部分内容仅供参考。)

需要注意的是,这种版本的升级是整体的,并不是指“大模型”这一单一部分。

比如可能有人会说,我现在用SD1.5的模型速度也一样很慢啊?对,那是因为sd-webUI整体的版本升级了,即便你使用的“大模型”是sd1.5,但webUI不是旧版本,因此只是改变大模型自身的版本,并不能带来显著的速度变化。

除了模型版本之外, 你所使用的各种插件,也在不断推出新版本,即便不考虑效果,为了兼容sd1.5和sdxl等各个版本,也会增加大量原本不需要考虑的计算,这些累计起来,带来的速度影响就很明显了。

b VAE计算带来的工作量所导致。

对于执行到最后5%或3%时通常会卡住很久,这一现象可以粗略的理解为是VAE计算量带来的影响。

首先必须说明下面要说的只是一个方便理解的说法,并非真实如此,实际运算过程比这复杂得多。

粗略的来说,最后一步通常是在进行VAE演算,这一步会生成新的工作量需求,如果之前的工作已经占用了大部分GPU资源,这部分工作将会放在共享显存上进行,导致无限变慢;或者在关闭共享显存的情况下,它没有足够的显存进行,则需要等待前面的工作陆续退出,让出显存后才会开始工作。

可能有人会说,那我关闭VAE调用是不是就快了?比如“外挂VAE”的下拉列表选择无。

实际上这并不会带来什么影响,因为VAE是一个固定的步骤,之所以叫做“外挂VAE”,指的是通过外挂一个VAE来覆盖模型内部的VAE模型,所以,当你外挂VAE选无的时候,程序依旧会调用模型内部自带的VAE进行最后一步运算。

那为什么以前并不觉得慢,现在却感受明显呢?

这就和上一个原因有关了。以前运行的时候,因为本身生成图片的工作量恰好在你的显卡承受能力范围内,因此即便最后的VAE运算也是调用显存直接完成的。

但是,现在所有环节都升级到新版本后,很可能本身前面的工作就已经几乎占据了你的所有显存,这样最后产生的VAE工作量只有两个选择,要么放在共享显存运算,要么等待新的独享显存释放出来后运算。无论哪个选择都会导致最后这一步变慢。

总结来说,影响速度的就是以上三个原因:
a 心理作用,
b 环境升级,
c VAE所需运算量无法迅速执行。

既然知道了变慢的原因,那么能不能改变呢?

最有效的改进方法自然是升级硬件。

你不能要求硬件不变的情况下,SDXL时代生成速度跟SD1.5时代的速度一致,这不是你自己选择旧版本模型就可以解决的问题,而是包括内核、插件、大模型等等所有版本都已经更新了,就像windows系统,即便你自己顽固的使用XP系统,现在的这些大型软件你也已经无法正常运行了,一个QQ就要占几个G的内存,你拿什么运行?

升级一个更好的显卡,升级更多的内存,更好的CPU,都是行之有效的提速方式。

其次就是降低参数。

以前你可能直接拉满,2048x2048直出随便出,那是因为当时无论是sd内核,还是sdwebui环境,都相对比较简单,效果也差强人意。

现在生成的图像效果已经肉眼可见的提高了,你还指望它占用和之前一致,这不现实。

降低你的直出尺寸,适当使用tiles分块,给它一点时间和耐心,与自己和解,这也是解决问题的另一个办法。

### 如何使用Stable Diffusion生成真实图片 #### 模型设置与参数调整 为了通过 Stable Diffusion 生成高质量的真实图片,需注意以下几个方面: 1. **模型选择** 不同的预训练模型会对最终生成图片风格产生影响。例如,官方默认模型适合通用场景下的生成,而其他社区开发的模型如 `chilloutmix_Ni` 或 `anything-v4.5-pruned` 则可能更适合特定类型的生成[^3]。 2. **采样步数 (Sampling Step)** 采样步数直接影响生成过程的时间以及像质量。通常情况下,较高的采样步数能够带来更加精细的结果,但也意味着更长的计算时间。具体数值可以根据所选采样算法的不同来设定,一般推荐范围为 20 至 50 步之间[^1]。 3. **配置环境并启动模型** 需要先正确安装并运行 Stable Diffusion 模型,在其 WD1.4 标签器的操作界面上可以进一步自定义各项参数设置[^2]。 以下是基于 Python 的简单脚本示例用于调用 Stable Diffusion API 来生成一张新图片: ```python from diffusers import StableDiffusionPipeline, EulerAncestralDiscreteScheduler import torch model_id = "runwayml/stable-diffusion-v1-5" scheduler = EulerAncestralDiscreteScheduler.from_pretrained(model_id, subfolder="scheduler") pipe = StableDiffusionPipeline.from_pretrained(model_id, scheduler=scheduler, revision="fp16", torch_dtype=torch.float16).to("cuda") prompt = "a photo of an astronaut riding a horse on mars" image = pipe(prompt=prompt, num_inference_steps=30).images[0] image.save("astronaut_rides_horse.png") ``` 此代码片段展示了如何加载指定版本的 Stable Diffusion 模型并通过给定提示词生成对应像文件的过程。 --- #### 效果优化建议 对于希望获得更为真实的视觉效果而言,《Stable Diffusion教程,一键生成写实逼真美女》提供了详尽指导,涵盖了从基础概念到高级技巧的内容介绍[^4]。按照该资源中的指引逐步实践可以帮助使用者更好地理解和应用这项技术。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

代码简单说

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值