1、环境搭建
为了方便,这里直接选择Vultr提供的已安装Anaconda的Ubuntu 22.04系统。
如果你自己电脑有足够的显存,你也可以在自己电脑上搭建,因为我电脑只有2GB显存和8GB运行内存,所以完全不够用,我就选择云端搭建。
如果你也是想快速搭建,你也可以选择云端搭建,这里推荐我知道的两个不错的GPU平台,一个是AutoDL,还有一个是Vultr。其中AutoDL是国内的,它比较便宜,目前已知最低是0.78/h,并且可选的配置比较多,当然也有缺点,缺点就是不能开放端口,虽然是root账号,但是很多限制。Vultr是国外的供应商,它的费用比较贵,但优势是自由度高。
这是使用Vultr来演示。
1.1、GPU服务器选择
我们选择Cloud GPU,默认选择Nvidia A100。
然后Location默认即可,当然你也可以选择你喜欢的Location。
然后是Server image推荐选择Anaconda或者Miniconda镜像。注意不要选择CentOS系统,使用CentOS系统搭建会有很多环境上的问题,并且这里官方也不推荐使用该系统。
接下来是选择GPU的大小,这里我选择的是8GB的显存。
最后记得把Auto Backups给取消掉,减少不必要的扣费。
最后点击Deploy Now即可。
1.2、配置服务器环境
执行下面的两个命令
apt-get update
apt-get upgrade
2、源码和模型下载
创建一个目录存储源码
cd /opt
mkdir sd
cd sd
克隆源码到服务器上
git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git
下载模型到指定的位置,这里下载到stable diffusion webui源码的中models/Stable diffusion目录中。
这里只下载v1-5-pruned-emaonly.safetensors
即可。
cd /opt/sd/stable-diffusion-webui/models/Stable-diffusion
wget -c https://huggingface.co/runwayml/stable-diffusion-v1-5/resolve/main/v1-5-pruned-emaonly.safetensors
3、安装依赖库文件
创建虚拟环境
cd /opt/sd/stable-diffusion-webui
conda create -n ChatGLM python=3.10
激活虚拟环境
conda activate ChatGLM
我们在虚拟环境中安装依赖库。
修改requirements.txt
,在末尾添加xformers
。
vim requirements.txt
执行下面的命令
pip install -r requirements_versions.txt
pip install -r requirements.txt
在执行上面的命令中可能会有报错,先不要管它。
修改webui.sh文件,因为默认是不允许使用root用户运行的,所以这里我把它修改成允许使用root用户允许webui.sh脚本。
vim webui.sh
修改前
can_run_as_root=0
修改后
can_run_as_root=1
当然如果你是在非Linux系统上运行,那么你就不用修改webui.sh脚本文件了,如果你是在Windwos系统运行,执行的是webui.bat脚本。
安装cuda-toolkit
conda install -c "nvidia/label/cuda-11.8.0" cuda-toolkit
python3 -m pip install nvidia-cudnn-cu11==8.7.0.84
mkdir -p $CONDA_PREFIX/etc/conda/activate.d
echo 'CUDNN_PATH=$(dirname $(python -c "import nvidia.cudnn;print(nvidia.cudnn.__file__)"))' >> $CONDA_PREFIX/etc/conda/activate.d/env_vars.sh
echo 'export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$CONDA_PREFIX/lib/:$CUDNN_PATH/lib' >> $CONDA_PREFIX/etc/conda/activate.d/env_vars.sh
source $CONDA_PREFIX/etc/conda/activate.d/env_vars.sh
4、运行项目
最后我们就可以使用下面的命令来启动项目了。通过下面的命令启动默认是使用7860端口,所以你需要提前把7860端口开放。
ufw allow 7860/tcp
./webui.sh --listen
也可以使用下面的命令来启动项目。
./webui.sh --share
通过上面的这种方式会自动给你返回一个域名,可以复制域名直接在浏览器中访问。
5、视频教程
如果你喜欢观看视频,那么你可以点击这里。
Q.E.D.