Stable Diffusion 在同等硬件情况下,通过调整配置优化也可以提升训练性能
一、加速配置
1.(可以提速5.4倍)使用令牌合并。
在SD automatic1111中,进入设置>选择优化>将令牌比率设置为0.2-0.5之间,人们注意到,你设置的比率越高,细节就会丢失,任何0.6或以上的比率都会有恶化的细节效果…但会更快。根据你的喜好测试不同的比例。
2.(可以提速2倍以上)安装TensorRT的扩展。
地址:https://github.com/AUTOMATIC1111/stable-diffusion-webui-tensorrt
转换trt模型的最佳设置是批量大小为7(可生成的并发图像),宽度和高度为512。对于那些想生成可变长宽比的人,如16:9或9:16或4:3或3:4等等等等,另一个设置是,批量大小为1,最大宽度为768,最大高度为960,或反过来宽度为960高度为768。注意须有两个转换:一个是横向长宽比,一个是纵向长宽比。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/office/47501.html
另外,可使用这个Pull Request( https://github.com/jebarpg/stable-diffusion-webui-tensorrt )来帮助你在选择如何将你的onnx转换为rt时确定哪些尺寸可以使用。有一个动态更新的标签,当你把最大宽度、最大高度或最大批量尺寸滑到高时,会变成红色。
3.在webui-user.bat中使用不同的标志来帮助加快批处理。
我发现只使用’–opt-sdp-no-mem-attention’标志在我的RTX 4070 GPU上获得了最佳速度。set COMMANDLINE_ARGS=–opt-sdp-no-mem-attention 注意:我没有包括任何内存优化,因为我读到了较低的内存使用量的交易会减少它/S。
同时在你的webui-user.bat文件的顶部添加这两行,确保将你的cuda可见设备改为正确的编号,点击Windows键>输入设备管理器>点击显示适配器的下拉菜单>右击你的主GPU>选择属性>在位置旁边你会看到PCI总线(一些#),设备(一些#这是你用来设置CUDA_VISIBLE_DEVICES的数字),函数(一些#):
set SAFETENSORS_FAST_GPU=1
set CUDA_VISIBLE_DEVICES=0
4.安装并使用Opera GX浏览器,将硬件加速设置改为关闭。
打开Opera > 顶部右键菜单图标 > 选择设置或按’Alt+P’ > 在搜索框中输入系统 > 切断’可用时使用硬件加速’。此外,Firefox和Avase安全浏览器也是其他不错的选择。请确保在这些浏览器中也关闭硬件加速。
5.在windows中,也要关闭GPU硬件加速。
在图形设置中切换关闭 “硬件加速的GPU调度”。
注意:不同人有不同的结果,所以测试一下这个选项,看看它对你是否有改善。
6.一般来说,在不失去你在图像中所需细节的情况下,尽量用较少的文字来描述你的正面提示和负面提示,如果适用的话。
7.将你的驱动程序更新到最新版本
8.手动设置DWM.exe和explorer.exe使用集成显卡或处于省电模式
在Windows中打开图形设置。在底部点击浏览并选择 “C:/Windows/System32/dwm.exe “点击添加。然后点击选项并选择 “省电”,对 “C:/Windows/explorer.exe “进行同样操作。同时添加你将使用的浏览器exe(即Opera),不要设置 “省电”,而是将其设置为 “高性能”。
9.在Nvidia控制面板中改变电源模式
右击桌面>选择Nvidia控制面板>选择管理3D设置>选择电源管理模式>选择首选最大性能
10.将计算机电源设置模式改为最佳性能。
11.关掉HDR。
右击桌面 > 选择显示设置 > 切断HDR。如果启用了宽色域(WCG),也要关闭。使用推荐的显示设置,包括比例和分辨率。系统 > 显示
12.禁用不需要的服务。
Windows +R>键入msconfig点击回车>选择Servicestab>点击Hide all Microsoft servicescheckbox>点击Disable all>点击OK。
13.调整视觉效果设置。
按Windows键,然后输入env,选择 “编辑系统环境变量”>在性能部分选择 “设置”>选择调整为最佳性能>点击确定。
14. 关闭模型哈希计算
关闭可节省启动时间,但会导致页面内与图片生成数据中无法正常显示模型哈希信息,适用于低速硬盘。
普通机械硬盘建议关闭,固态硬盘可以开启,不影响出图
启动命令:
--no-hashing
15. 显存优化
16. 半精度优化
常见报错信息:
modules.devices.NansException: A tensor with all NaNs was produced in VAE. This could be because there’s not enough precision to represent the picture. Try adding –no-half-vae commandline argument to fix this. Use –disable-nan-check commandline argument to disable this check.
精度不足,SD-WebUl检测到VAE模型在运算中产生了无效数据(黑图)。请前往高级设置-计算精度设置处关团“VAE半精度优化”选项以解决此问题
这个半精度优化报错会中断出图进程,重开就能跑,但是未来还会报错,关闭以后永久不会出现问题。
启动参数:
no-half--no-half-vae --disable-nan-check
17. SD 图片保存命名规则
推荐保存文件名样式
序号+种子:[seed]
序号+种子+模型名:[seed]-[model_name]
按图配置,序号会自动添加在文件名前缀。
18. 启用 API 搭配第三方工具
19. SD 专属优化
根据Pytorch官方最近
升级到Pytorch2.1之后,就不再需要另外安装Xformers显存优化库了。
在所有参数相同的情况下,三者的对比情况如下:
Pytorch1.13.1 + CUDA117 + Xformers版本,运行平均值大约= 2.07 it/s,出图时间= 24s
Pytorch2.1+CUDA118新版本,运行平均值大约= 3.09 it/s,出图时间= 14s
Pytorch2.1+
Pytorch2.1提供了两个优化指令代码,说明如下:
–opt-sdp-attention
——速度比使用xformer更快,属于非确定性优化,不能百分之百复现原图。
–opt-sdp-no-mem-attention
——速度比使用xformer更快,略慢于–opt-sdp-attention,属于确定性优化,可以精确复现原图。
二选一添加以上命令,建议使用–opt-sdp-no-mem-attention(秋叶版配置参考图片),此时Stable Diffusion的运行速度在PyTorch2.0基础上还可以再增加20%+。
20. 调整 Lora 卡片缩略图
21. 增加批量大小
通过增加批量大小(增加到 4 左右),您可以实现显着的速度提升。使用 4-6 的批量大小将导致每次图像生成之间进行 VRAM 转储,从而提高渲染速度。
然而,值得注意的是,对于较大的批量大小,性能优势趋于稳定。
22. 禁用实时预览
提高渲染速度的另一个有价值的技巧是在生成图像时禁用“实时预览模式”。您还可以将“实时预览显示周期”设置为-1。这将确保图像仅在批次完成后显示。要更改这些设置,请执行以下操作:
- 转到“设置”选项卡
- 单击左侧边栏中的“实时预览”
- 确保取消选中“显示所创建图像的实时预览”框以禁用实时预览
- 将“实时预览显示周期”一直向左滑动(值 -1)以仅显示已完成的批次图像。
23. 加速图像生成的替代方案(LCM LoRA)
最近,LCM LoRA 模型进入了Stable Diffusion社区。在对更快、更高效的图像生成的追求的推动下,LCM 带来了一场革命,允许在预先训练的 LDM 上以最少的步骤进行快速、高保真采样。
二、测速插件
请下载测速插件
进入系统消息(System Info)选项卡,界面如下
选择 quick/normal/extensive 分别对应 1/1,2,4/1,2,4,8,10 批量 点击跑图 ,等待后出现速度,在询问他人速度是否正常时,可以直接截图当前的整条信息。
然后判断你的速度是否正常/排名,请看网站:测速排名搜索你的显卡型号,查看其他人的速度,以及他们的各选项,如果速度不对,只需要一一比对参数,然后抄作业就可以了。
要注意的是,部分加速手段会对图片质量及显存有较大影响,所以综合取舍最合适自己设备的选项即可
总结
参考
- [ 1 ] 测速网站
- [ 2 ] Stable Diffusion 加速/优化/升级 优化出图速度 – AI魔法学院
- [ 3 ] stable-diffusion-webui的优化配置-腾讯云开发者社区-腾讯云
- [ 4 ] Stable Diffusion Web UI 加速选项与常用配置 – AIGC All in One
必须 注册 为本站用户, 登录 后才可以发表评论!