Windows中安装stable diffusion流程(使用原始方法、非整合包快捷安装):
实验机器配置: OS:Win10 64bit;CPU:i5 4.1GHz 12核;内存32G;显卡NVIDIA Quadro P1000 4G显存
参考文档:
如何搭建StableDiffusion环境 | 音视跳动科技
1. 安装N卡驱动:
2. 安装Git
3. 安装python
https://mirrors.huaweicloud.com/python/3.10.8/python-3.10.8-amd64.exe
(安装时勾选写入环境变量,不然需要安装后手工把安装目录写入path环境变量)
4. 克隆Stable Diffusion+WebUI :
cmd中进入你想克隆的位置:
cd D: \\此处亦可输入你想要克隆的地址,选剩余空间大于50~100G的硬盘分区,尽量不要装C盘
然后使用Git克隆AUTOMATIC1111的stable-diffusion-webui
git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git
5. cmd中进入stable-diffusion-webui目录,运行:webui-user.bat
6. 解决报错问题
1)在实验window主机安装时,下载完模块,报错:Couldn't install torch。百度看到要设置虚拟内存8G以上,于是把虚拟内存设置到了10000~20000(Mb)。
2)然后再跑 webui-user.bat,torch装上了,然后又报错:
RuntimeError: Couldn't install clip:到目录modules中打开launch_utils.py,把
clip_package = os.environ.get('CLIP_PACKAGE', "https://github.com/openai/CLIP/archive/d50d76daa670286dd6cacf3bcd80b5e4823fc8e1.zip")中https://github.com/改为https://ghproxy.com/https://github.com/保存再跑webui-user.bat试试。。试了没用,但改回来再跑webui-user.bat就把clip装上了,具体原因不明。
下面的方法也试过了,好像也有效果
3)可以在浏览器打开webui了,但是加载模型报错:AttributeError: 'NoneType' object has no attribute 'lowvram'
* webui-user.bat文件中找到
set COMMANDLINE_ARGS= 后增加 --lowvram --precision full --no-half --skip-torch-cuda-test
(详见https://blog.csdn.net/JinNiiii/article/details/138283878)
* 结果还是不行,打开 modules/sd_models.py 源文件,把661行send_model_to_cpu函数的前面4行注释,下面增加lowvram.send_everything_to_cpu(),结果如下:
def send_model_to_cpu(m): #if m.lowvram: # lowvram.send_everything_to_cpu() #else: # m.to(devices.cpu) lowvram.send_everything_to_cpu()
这个办法没有在网上找到,是自己想到的办法。估计这里的m是个空对象,所以这里改成不要引用m。然后再尝试运行,就不报'lowvram'这个错了。
4)加载模型报错:Can't load tokenizer for 'openai/clip-vit-large-patch14'
=> 在stable-diffusion-webui根目录下新建文件夹openai,命令行中进入openai目录,输入: git clone https://www.modelscope.cn/AI-ModelScope/clip-vit-large-patch14.git
然后等待几十分钟至一二小时
(详见:https://zhuanlan.zhihu.com/p/681188665)
再次运行webui-user.bat、webui.bat,现在可以加载模型了,接着只要下载模型放入models\Stable-diffusion目录就可以了(有些特殊模型可能不是放这里)。拷贝入了一些模型然后就顺利出图了。至此实验PC上SD部署完成。各个机器、不同时期软硬件环境会有变化,这里纠错记录仅供参考,实际解决还要多百度、甚至上google寻找答案。