当前位置:AIGC资讯 > AIGC > 正文

Stable Diffusion WebUI Linux系统部署

1.简单说明

因为有AIGC方面的需要,所以研究了一下大火的stable diffusion,我自己之前没有部署这个的经验,所以基本是从0开始研究,在网上搜了各种教程一步一步的终于在服务器上成功运行了Stable Diffusion WebUI ,以此记录一下我的部署过程,方便后面需要的时候回看。

2.部署过程及问题

2.1开源代码连接

https://github.com/AUTOMATIC1111/stable-diffusion-webui

2.2服务器的配置

(1)系统
Ubuntu 22.04.3 LTS (GNU/Linux 6.2.0-39-generic x86_64)
(2)cuda版本

(3)显卡
sudo lshw -C display

2.3WEBUI部署

(1)使用网络教程部署失败
参考了https://zhuanlan.zhihu.com/p/639164507知乎的这篇部署文档,本意是看上了自己创建conda的虚拟环境可以更好的对python环境进行管理,但是按照这个从头到尾试验了一遍,最终一直是有个报错搞不定大概是Assert Error问题,搜了好多教程也没有解决无奈只能放弃了,不过看到好多人按照这个教程部署成功了,如果有时间的话可以自己试一试。
(2)官方教程
代码链接里面的readme有linux的部署方式。
我的服务器上已经安装了anaconda,并使用anaconda创建了一个基于python==3.10的虚拟环境,所有操作均在这个基础之上:
首先在服务器上找个目录:
方式1: git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui
将这个仓库的代码克隆下来
切换到stable-diffusion-webui目录下面直接执行./ webui.sh
方式2:wget -q https://raw.githubusercontent.com/AUTOMATIC1111/stable-diffusion-webui/master/webui.sh
找到下载的webui.sh 直接执行./ webui.sh
执行./webui.sh的时候会自动下载克隆代码安装所需要的环境,这个过程需要一定的时间,如果一切顺利,我们的webui就部署起来了会显示一个Running on local URL: http://127.0.0.1:7860,正常有界面的情况下我们直接可以用这个网址就可以访问到UI界面了
(3)公开访问
服务器没有界面,我们想在自己的电脑上访问的话启动脚本需要变成./ webui.sh --share
当这种启动方式部署成功的话正常会显示如下链接:
Running on public URL: https://xxxxxxxxxxxxxx.gradio.live

直接在自己的浏览器打开这个链接即可看到可操作的UI界面。

2.4部署问题汇总

在执行./webui时可能会由于网络的原因出现下载失败的问题,如果服务器没有配置科学上网的情况下我们会遇到一下几个问题:
(1)Style database not found: /home/zl/stable-diffusion-webui/styles.csv
没有这个文件,我看了一下原来的github代码仓库里面确实没有,那我只能手动下载放进对应的目录里面了styles.csv点击这个链接下载styles.csv,我们将下载好的文件copy到stable-diffusion-webui文件夹下面即可。
(2)OSError: Can’t load tokenizer for ‘openai/clip-vit-large-patch14’

完整的报错OSError: Can’t load tokenizer for ‘openai/clip-vit-large-patch14’. If you were trying to load it from ‘https://huggingface.co/models’, make sure you don’t have a local directory with the same name. Otherwise, make sure ‘openai/clip-vit-large-patch14’ is the correct path to a directory containing all relevant files for a CLIPTokenizer tokenizer.
是因为模型文件需要从https://huggingface.co这个网站去下载,服务器没有权限访问外网,所以导致下载失败,需要我们自己手动下载一个,我自己在自己的电脑上配置了clush然后下载了以后传到服务器上的
下载链接:https://huggingface.co/openai/clip-vit-large-patch14/tree/main
进去以后把所有的配置文件下载下来就行了,模型文件太大不需要下载,具体需要哪些我也
没有太研究,只把打勾的这些下载下来,用一个文件夹(可以随便命名我命名为)cache,将下载的文件放进去,我统一上传到了服务器的stable-diffusion-webui目录下面。

上传完成后结果如下》:
修改引用路径:
stable-diffusion-webui/repositories/generative-models/sgm/modules/encoders/modules.py 中有2处引用
stable-diffusion-webui/repositories/stable-diffusion-stability-ai/ldm/modules/encoders/modules.py中也有2处引用,总共4处。修改的内容为:
openai/clip-vit-large-patch14 改成我们上面下载好自己命名的文件夹路径/xx/xx/stable-diffusion-webui/cache我这里写的是服务器上文件夹的绝对路径

(3)基础模型文件下载
服务器没有链接外网,模型文件也难下载下来,我们还是手动下载,
v2-1_768-ema-pruned.safetensors
v1-5-pruned-emaonly.safetensors
还有很多的基础模型文件可以在https://huggingface.co 这里可以找到
我下载了v1-5-pruned-emaonly.safetensors这个模型文件,将这个文件下载好上传到服务器的stable-diffusion-webui/models/Stable-diffusion这个目录下面即可。
(4)公开链接生成
由于服务器没有界面,想在自己的电脑上使用UI界面,需要生成一个public_url,本来启动的时候可以./webui.sh --share,但是由于–share的传入是命令行,后续使用UI界面的时候可能会出现一些命令行禁止的状况,所有我们直接改代码吧,
stable-diffusion-webui/ webui.py里面改成share=True就好了。

改完以后重新启动提示我没有frpc_linux_amd64这个文件,
提示内容
(1)frpc_linux_amd64下载地址,
(2)下载后要重新命名成frpc_linux_amd64_v0.2
(3)将重新命名的文件放到提示的指定位置,下面目录下:
stable-diffusion-webui/venv/lib/python3.10/site-packages/gradio
我按照提示如是做了以后,前面发现有人遇到还是无法创建公开链接的bug
需要修改我们下载的这个文件的权限
chmod u+x frpc_linux_amd64_v0.2
最后这些问题都解决以后执行./webui,等一会终于好了,开启AIGC的神秘之旅吧!!!

更新时间 2024-01-17