电脑配置
CPU: AMD Ryzen 5 4600H with Radeon Graphics 3.0 GHz
GPU: NVIDIA GeForce GTX 1650(专用显存4G,共享显存7G)
OS: Windows 11
前言
最近AIGC应用大火,终于也是按耐不住自己好奇的心,开始探究和使用Stable Diffusion这一AI绘画工具。
Novel AI是二次元作画网站,传出了模型泄露的消息,简而言之就是能够使用她已经训练好的(泄露的)模型信息生成自己想要图片了,当然是偏二次元风格的。本身是基于Stable Diffusion Webui这一框架,所以要首先能够部署Stable Diffusion Webui。
部署的方式可以分为本地部署和云端部署,云端部署可以参考上一篇文章:
http://t.csdnimg.cn/vq9nx
这次讲本地部署(在自己电脑上部署),好处是不受算力或价格的制约,坏处是时间长,出一次图要1~2分钟。
一切基于stable diffusion的 github 仓库,我这里把他写成中文的教程。
确保你能上这个网址:
https://github.com/AUTOMATIC1111/stable-diffusion-webui
第一步 环境准备
首先,安装python 3.10.6(版本最好保持统一),在以下网址:
https://www.python.org/downloads/release/python-3106/
重要:安装的时候选择
“Add Python to PATH”
这个选项。
其次,安装git,在以下网址:
https://git-scm.com/download/win
然后,打开你的命令行(win + r键),里面输入“cmd”,回车
或者说,直接在开始菜单搜“终端”,打开命令行就行
运行以下git 命令,把仓库里的代码拉下来:
git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui
为了防止有人还搞不定,仓库里甚至还有视频教程,我把它下下来了:
链接:https://pan.baidu.com/s/1eq2Y_enK4mp3Yu9n29iqNQ?pwd=j91f
提取码:j91f
一般git 拉下来了都放在C盘,我选择把整个文件夹移动到D盘去。
双击文件夹下的webui-user.bat 文件就可以了,之后就是等待pytorch的下载和依赖的安装。中间会显示
重点:打开你的“魔法“(什么什么墙什么什么软件),全程开着,免得中间突然断了,前功尽弃。当然,即使开着也可能有子仓库拉不下来(比如这个:https://github.com/sczhou/CodeFormer/),这里我是这么解决的:
https://zhuanlan.zhihu.com/p/636418854
即修改代理配置为自己的端口号和站点。
剩下就是漫长的等待,我差不多等了一下午。
第二步 运行
再次运行webui-user.bat,又加载了一些东西,然后就能看到已经成功跑起来了,浏览器访问提示的URL即可,现在最新的版本是好像可以自己弹出来了。
以为这就完了?
没有,重点来了,运行的时候报错,out of memory,
RuntimeError: CUDA out of memory. Tried to allocate 20.00 MiB (GPU 0; 4.00 GiB total capacity; 0.0 MiB already allocated; 3.4 GiB free; 204.00 MiB reserved in total by PyTorch)
但是我开了任务管理器,发现根本没有用到正确的显卡,显存也显示还有余量,这时我找到了以下七种方法解决(原帖地址:https://nerdschalk.com/stable-diffusion-cuda-out-of-memory/#:~:text=In%20case%20you%E2%80%99re%20still%20running%20into%20the%20%E2%80%9CCuda,onto%20the%20stable-diffusion-main%20folder%20to%20resolve%20the%20error.)
而我尝试到第二种之后就好了:
1、重启你的系统
2、安装Anaconda 和 Nvdia CUDA Toolkit
虽然不知道什么原理,但是确实安装完之后就可以运行了!!!
附上下载地址:
https://www.anaconda.com/download/
https://developer.nvidia.com/cuda-downloads?target_os=Windows&target_arch=x86_64&target_version=11&target_type=exe_local
注意在安装cuda的时候一定要选择对应版本!!!
搞不懂的话,还有教程,但是在youtube上:
https://www.youtube.com/watch?v=OjOn0Q_U8cY
3 使用其他版本的stable diffusion
优化版本的地址:
https://github.com/basujindal/stable-diffusion
把优化版本的sd下下来,直接把内容复制到旧的里面覆盖就行了。
4 调低生成图片的要求
这个主要是针对在生成图片过程中的out of memory
5 减少采样(sample)尺寸到1
在提示词里面输入”-n_samples 1“
6 检查GPU显存(换显卡)
推荐GPU 显存至少6G,虽然实际4G也能玩,再小就会使SD的程序锁定使用的GPU显存量,也许就直接变成CPU再工作了。
7 在webui-user.bat文件里面加入优化的命令选项
用记事本打开webui-user.bat文件(不是直接双击),就可以编辑这个文件的内容
在里面加入:
解决问题的原理是缓解显存碎片化。详细的方法建议参照github issue区的提问。