机器准备

机器配置, 基于腾讯云服务器,8核心32g, cuda11.0.3,cudnn8.1.0

安装python3.10

1sudo apt install build-essential zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libreadline-dev libffi-dev libsqlite3-dev wget libbz2-dev
2
3sudo apt-get install liblzma-dev # 这个不装,后面启动 webui.sh的时候, 报错ModuleNotFoundError: No module named '_lzma' 
4
5wget https://www.python.org/ftp/python/3.10.0/Python-3.10.0.tgz
6tar zxvf Python-3.10.0.tgz
7sudo make 
8sudo make install 
1vim ~/.bashrc #  添加下面2行 
2alias python='/usr/local/bin/python3'
3alias pip='/usr/local/bin/pip3.10'
4
5# 然后
6source ~/.basrc 

安装stable-diffusion-webui

1git clone git@github.com:AUTOMATIC1111/stable-diffusion-webui.git
2# 直接运行这个, 它会帮我们判断cuda版本需要的依赖 版本。
3./webui.sh 

这个下面是走的弯路,看网上搞了。 其实上面成功了 ,它还是全自动的。 如果不行,下面再试试。

1pip install torch==1.11.0+cu102 -f https://download.pytorch.org/whl/torch_stable.html
2pip install torchvision==0.12.0+cu102   -f https://download.pytorch.org/whl/torch_stable.html
3
4
5pip install -r requirements_versions.txt
6# pip安装依赖的时候 如果出现循环一直安装进行中的,则一行一行安装。 
7pip install -r requirements.txt

部署

我采用supervisor部署。 要求非root用户启动。 加了个环境变量 COMMANDLINE_ARGS="–no-gradio-queue" 。不然websocket 有点问题。

 1[program:diffusion]
 2user=ubuntu
 3directory=/home/ubuntu/stable-diffusion-webui
 4command=/home/ubuntu/stable-diffusion-webui/webui.sh
 5autostart=true
 6autorestart=true
 7startretries=10
 8redirect_stderr=true
 9stdout_logfile=/tmp/webui.log
10environment=COMMANDLINE_ARGS="--no-gradio-queue"

配置个nginx 的反向代理 即可。 这里就不再说明。

模型下载