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

【AI作画】stable diffusion webui Linux虚拟机 Centos 详细部署教程

部署环境:

环境:虚拟机Centos7、6处理器、8G内存+10G交换内存、没有GPU使用CPU硬解
windows版本的可以直接使用整合包:看评论的转载链接自行下载,解压即可用

安装Git 2.15.1

提示:这里可能source后版本是1.8.3,只需要重新yum remove git && source /etc/profile

#我这里使用的是aliyun的源
[root@sd-webio-53 /]# vim /etc/yum.repo.d/aliyun.repo
[aliyun-os]
name=aliyun-os
baseurl=https://mirrors.aliyun.com/centos/7/os/x86_64/
enabled=1
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/centos/7/os/x86_64/RPM-GPG-KEY-CentOS-7

[aliyun-extra]
name=aliyun-extra
baseurl=https://mirrors.aliyun.com/centos/7/extras/x86_64/
enabled=1
gpgcheck=0

[aliyun-epel]
name=aliyun-epel
baseurl=https://mirrors.aliyun.com/epel/7Server/x86_64/
enabled=1
gpgcheck=0
[root@sd-webio-53 /]# yum clean all
[root@sd-webio-53 /]# yum makecache
#安装依赖软件
[root@sd-webio-53 /usr/local/src]# yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel asciidoc gcc perl-ExtUtils-MakeMaker
#卸载系统自带的低版本git
[root@sd-webio-53 /usr/local/src]# git --version
git version 1.8.3
[root@sd-webio-53 /usr/local/src]# yum remove git
#编译安装最新的git版本
[root@sd-webio-53 /usr/local/src]# wget https://www.kernel.org/pub/software/scm/git/git-2.15.1.tar.xz
[root@sd-webio-53 /usr/local/src]# tar -vxf git-2.15.1.tar.xz
[root@sd-webio-53 /usr/local/src]# cd git-2.15.1
[root@sd-webio-53 /usr/local/src/git-2.15.1]# make prefix=/usr/local/git all
[root@sd-webio-53 /usr/local/src/git-2.15.1]# make prefix=/usr/local/git install
[root@sd-webio-53 /usr/local/src/git-2.15.1]# echo "export PATH=$PATH:/usr/local/git/bin" >> /etc/profile
[root@sd-webio-53 /usr/local/src/git-2.15.1]# source /etc/profile
[root@sd-webio-53 /usr/local/src/git-2.15.1]# git --version
git version 2.15.1

安装python3.10

提示:注意最后修改vim 和 urlgrabber-ext-down

#安装编译所需的依赖
[root@sd-webio-53 /usr/local/src]# yum -y install openssl-devel libffi-devel bzip2-devel
[root@sd-webio-53 /usr/local/src]# yum -y groupinstall "Development Tools"
#安装 Python 3.10 必需的 openssl >= 1.1.1
[root@sd-webio-53 /usr/local/src]# wget https://www.openssl.org/source/openssl-1.1.1q.tar.gz --no-check-certificate
[root@sd-webio-53 /usr/local/src]# tar xf openssl-1.1.1q.tar.gz && cd openssl-1.1.1q
[root@sd-webio-53 /usr/local/src/openssl-1.1.1q]# ./config --prefix=/usr/local/openssl-1.1.1
[root@sd-webio-53 /usr/local/src/openssl-1.1.1q]# make && make install
#安装 Python 3.10
[root@sd-webio-53 /usr/local/src]# wget https://www.python.org/ftp/python/3.10.5/Python-3.10.5.tgz
[root@sd-webio-53 /usr/local/src]# tar zxf Python-3.10.5.tgz && cd Python-3.10.5
[root@sd-webio-53 /usr/local/src/Python-3.10.5]# ./configure --enable-optimizations --with-openssl=/usr/local/openssl-1.1.1 --with-openssl-rpath=auto
[root@sd-webio-53 /usr/local/src/Python-3.10.5]# make altinstall
#添加软连接
[root@sd-webio-53 /]# whereis python
[root@sd-webio-53 /]# cd /usr/bin/
[root@sd-webio-53 /usr/bin]# mv /usr/bin/python /usr/bin/python.bak
[root@sd-webio-53 /usr/bin]# ln -s /usr/local/bin/python3.10 /usr/bin/python3
[root@sd-webio-53 /usr/bin]# ln -s /usr/local/bin/python3.10 /usr/bin/python
[root@sd-webio-53 /usr/bin]# python -V
#更改yum配置,因为其要用到python2才能执行,否则会导致yum不能正常使用
[root@sd-webio-53 /]# vi /usr/bin/yum
把第一行的#! /usr/bin/python 修改为
#! /usr/bin/python2
[root@sd-webio-53 /]# vi /usr/libexec/urlgrabber-ext-down
把第一行的#! /usr/bin/python 修改为
#! /usr/bin/python2

下载 stable-diffusion-webui

提示:我这里是直接用root运行的

#以防连不上github,添加两行
[root@sd-webio-53 /]# vim /etc/hosts
140.82.112.3   github.com
39.102.194.95  github.com
[root@sd-webio-53 /]# cd /home
[root@sd-webio-53 /home]# git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git
[root@sd-webio-53 /home]# cd stable-diffusion-webui
#在这里手动创建下虚拟环境,避免用错了版本的 python
[root@sd-webio-53 /home/stable-diffusion-webui]# /usr/local/bin/python3.10 -m venv venv
#进入虚拟环境,看git版本是否正常
[root@sd-webio-53 /home/stable-diffusion-webui]# source venv/bin/activate
(venv) [root@sd-webio-53 /home/stable-diffusion-webui]# git --version
git version 2.15.1

模型

提示:因为虚拟机的问题用的时使用内存较小512,还有别的模型可以自己去下载

(venv) [root@sd-webio-53 /]# cd /home/stable-diffusion-webui/models/Stable-diffusion
wget https://huggingface.co/stabilityai/stable-diffusion-2-base/resolve/main/512-base-ema.ckpt
wget https://raw.githubusercontent.com/Stability-AI/stablediffusion/main/configs/stable-diffusion/v2-inference.yaml
(venv) [root@sd-webio-53 /home/stable-diffusion-webui/models/Stable-diffusion]# mv v2-inference.yaml 512-base-ema.yaml
#这里需要将yaml文件的名字改成 512-base-ema.yaml

pip下载依赖包

提示:用下面的命令就是自动下载,一般都会非常非常的慢,所以建议可以开多几个窗口对txt里面的一个一个下载

#PIP用国内的提升下载速度
(venv) [root@sd-webio-53 /home/stable-diffusion-webui]# pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
(venv) [root@sd-webio-53 /home/stable-diffusion-webui]# pip config set install.trusted-host mirrors.aliyun.com
#开始下载依赖
(venv) [root@sd-webio-53 /home/stable-diffusion-webui]# pip3.10 install -r requirements.txt
(venv) [root@sd-webio-53 /home/stable-diffusion-webui]# pip3.10 install -r requirements_versions.txt
#等全部依赖安装成功了再到这里
#指定使用CPU强行解析
(venv) [root@sd-webio-53 /home/stable-diffusion-webui]# export COMMANDLINE_ARGS=--skip-torch-cuda-test
#修改 can_run_as_root 从0改成 1,允许root权限运行
(venv) [root@sd-webio-53 /home/stable-diffusion-webui]# vi webui.sh
can_run_as_root=1
(venv) [root@sd-webio-53 /home/stable-diffusion-webui]# ./webui.sh
#这一步会在git上拉去数据,也是会非常非常慢,如果有中断报错什么的,可以自己到repositories目录去git clone
#这个时候会大量从github下载 BLIP  、CodeFormer、  k-diffusion、  stable-diffusion-stability-ai、  taming-transformers    网不好的情况下大概得下载半天吧
#会遇到几个错误,no module  xxx     直接搜索解决就行了
#下载完成后,继续执行./webui.sh 即可,直到完成。

出现No module named ‘_lzma’

提示:解决方法

(venv) [root@sd-webio-53 /]# yum install xz-devel python-backports-lzma backports.lzma
#修改文件第27行左右的地方
(venv) [root@sd-webio-53 /]# vim /usr/local/lib/python3.10/lzma.py
try:
    from _lzma import *
    from _lzma import _encode_filter_properties, _decode_filter_properties
except ImportError:
    from backports.lzma import *
    from backports.lzma import _encode_filter_properties, _decode_filter_properties

出现 version `ZLIB_1.2.9’ not found

提示:解决方法

##看看有没有1.2.9的版本,有的话直接到软连接那一步
(venv) [root@sd-webio-53 /]# strings /lib64/libz.so.1 |grep "ZLIB*"
(venv) [root@sd-webio-53 /usr/local/src]# wget http://www.zlib.net/fossils/zlib-1.2.9.tar.gz
(venv) [root@sd-webio-53 /usr/local/src]# tar xf zlib-1.2.9.tar.gz
(venv) [root@sd-webio-53 /usr/local/src]# cd zlib-1.2.9/
(venv) [root@sd-webio-53 /usr/local/src/zlib-1.2.9]# ./configure
(venv) [root@sd-webio-53 /usr/local/src/zlib-1.2.9]# make && make install
(venv) [root@sd-webio-53 /usr/local/src/zlib-1.2.9]# cp libz.so.1.2.9 /usr/lib64/
(venv) [root@sd-webio-53 /usr/local/src/zlib-1.2.9]# rm -f /usr/lib64/libz.so.1
(venv) [root@sd-webio-53 /usr/local/src/zlib-1.2.9]# ln -s /usr/lib64/libz.so.1.2.9 /usr/lib64/libz.so.1
(venv) [root@sd-webio-53 /usr/local/src/zlib-1.2.9]# strings /lib64/libz.so.1 |grep "ZLIB*"
#这里能看到1.2.9的版本这个问题就解决了,可以继续./webui.sh

启动成功

提示:解决方法
#启动成功后就是这个样子,这时候我们还没有办法去访问这个连接

这里我们直接Ctrl+c中断这个进程,然后使用下面的命令让他监听指定的端口并能让我们访问

(venv) [root@sd-webio-53 /home/stable-diffusion-webui]# python3 launch.py --no-half --port 1234 --listen
#这样就可以通过IP:1234在主机上去访问了
#例如我的就是192.168.10.53:1234

这里画几个重点
指定使用CPU强行解析

(venv) [root@sd-webio-53 /home/stable-diffusion-webui]# export COMMANDLINE_ARGS=--skip-torch-cuda-test

修改 can_run_as_root 从0改成 1,允许root权限运行

(venv) [root@sd-webio-53 /home/stable-diffusion-webui]# vi webui.sh
can_run_as_root=1

如果./webui.sh的时候因为memory中断了进程的话就需要创建些swap交换空间了

#我这里时10G交换空间,可以根据自己的需求调整
(venv) [root@sd-webio-53 /]# dd if=/dev/zero of=/opt/swap bs=10M count=1024
(venv) [root@sd-webio-53 /]# mkswap /opt/swap
(venv) [root@sd-webio-53 /]# swapon /opt/swap
(venv) [root@sd-webio-53 /]# free -h
#检查是否成功添加

更新时间 2023-12-07