艾醒(AiXing-w) 2023-02-18 10:54 采纳率: 100%
浏览 125
已结题

stable diffusion内存溢出

想问一下有没有什么解决stable diffusion内存溢出的问题

  • 写回答

2条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-02-18 12:19
    关注
    • 请看👉 :Stable diffusion安装经历踩坑
    • 除此之外, 这篇博客: Stable diffusion安装经历踩坑中的 问题 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
    • 第一个问题官网是有说明的,但就是这个下载地址藏得很深不好找。
      在这里插入图片描述
      我也是找了一会才找到https://huggingface.co/CompVis/stable-diffusion-v-1-4-original,把这个sd-v1-4.ckpt文件下载下来(随便哪个都行),大概四个G。
      在这里插入图片描述

      下载模型文件放置到这个文件夹下,就是上面官方说明的那个位置,命名成model.ckpt。
      在这里插入图片描述
      运行下面的代码,不出意外会报错。

      python scripts/txt2img.py --prompt "a photograph of an astronaut riding a horse" --plms
      

      在这里插入图片描述

      问题好像是原作者修改了这个库,将你的quantize.py(报错的信息里包含文件所在的绝对路径)文件替换成这个网址的文件
      https://github.com/CompVis/taming-transformers/blob/master/taming/modules/vqvae/quantize.py
      在这里插入图片描述

      再运行一次又报错
      在这里插入图片描述
      我只是12g的3060,看来这不是一般人能玩得起的-_-
      !!!!!!!!!!!!!!!!
      现在有一个简单的办法了,感谢数学系之耻的建议,直接降精度就可以释放显存了。
      !!!!!!!!!!!!!!!!
      如下修改txt2img.py文件第244行
      在这里插入图片描述
      效果 -->
      在这里插入图片描述

      或者接下去看比较复杂的方法!
      不知道需要多大的内存才可以,网上找到方法是用优化的库。网上还有一种办法说注释掉什么安全检查的我试了没有变化。
      https://github.com/basujindal/stable-diffusion
      下载完后在新的库上也是需要安装一些环境,在新的文件夹下运行下面的安装代码

      pip install -e .
      

      在这里插入图片描述
      优化的库代码放在optimizedSD文件夹下,也保留了之前的源代码,不要搞错了。
      重新安装一下这个优化库的环境,将ckpt放到对应的位置。

      python optimizedSD/optimized_txt2img.py --prompt "Cyberpunk style image of a Tesla car reflection in rain" --H 512 --W 512 --seed 27 --n_iter 2 --n_samples 5 --ddim_steps 50
      

      运行后报这个错。
      在这里插入图片描述

      查了一下,好像是最近优化的作者也换了一个库
      https://github.com/basujindal/stable-diffusion/issues/175
      用下面的办法就能解决了。
      在这里插入图片描述

      pip install git+https://github.com/crowsonkb/k-diffusion.git
      

      然后打开编辑optimizedSD/ddpm.py文件,将from samplers…改成上面图片的三个from k_diffusion…
      然后贫穷的显卡的电脑也就可以跑了,不说了要努力搬砖买24g的显卡了。
      实测效果 -->
      在这里插入图片描述
      在这里插入图片描述

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 2月26日
  • 已采纳回答 2月18日
  • 创建了问题 2月18日

悬赏问题

  • ¥15 怎么实现输入一个要删除的数后删除后显示剩余数再输入再删除显示剩余数(语言-c语言)
  • ¥35 引用csv数据文件(4列1800行),通过高斯-赛德尔法拟合曲线,在选取(每五十点取1点)数据,求该数据点的曲率中心。
  • ¥20 程序只发送0X01,串口助手显示不正确,配置看了没有问题115200-8-1-no,如何解决?
  • ¥15 Google speech command 数据集获取
  • ¥15 vue3+element-plus页面崩溃
  • ¥15 像这种代码要怎么跑起来?
  • ¥15 安卓C读取/dev/fastpipe屏幕像素数据
  • ¥15 pyqt5tools安装失败
  • ¥15 mmdetection
  • ¥15 nginx代理报502的错误