Stable Diffusion web UI 用CPU画画
之前用Stable Diffusion web UI项目搭建了一个用GPU画画的服务,但是无奈电脑显卡内存只有2G,搭建成功没过多久,也就画了2到3张就不行了,一启动就OutOfMemory。好在它支持调用CPU进行作画,现将搭建过程分享给大家。
如果朋友们实在用Linux系统搭建有难度,可以联系我,我把VMware的系统包分享给你们,装上就能用了;
一、配置清单
设备配置: VMware虚拟机1台
操作系统: CentOS7.9
CPU: 4核心 #多多益善
内存: 12G #至少需要这么多,如果内存富裕,多多益善。
磁盘: 200G
注意:关闭selinux、关闭防火墙、清空防火墙规则
二、安装python环境
python环境版本为3.10.6,采用编译安装的方式
# 配置epel源
yum install epel-release -y
yum clean all
# 安装源码编译需要的编译环境
yum install gcc zlib zlib-devel libffi libffi-devel readline-devel -y
#安装openssl11,后期的pip3安装模块需要用到ssl模块
yum install openssl-devel openssl11 openssl11-devel -y
#安装UI项目所需模块(报了数不清的错之后含泪整理的)
yum install xz-devel python-backports-lzma bzip2-devel mesa-libGL.x86_64
# 设置编译FLAG,以便使用最新的openssl库
vim /etc/profile,用vim编辑该文件,将其放在文件最后,并重新加载该文件
export CFLAGS=$(pkg-config --cflags openssl11)
export LDFLAGS=$(pkg-config --libs openssl11)
source /etc/profile # 重新加载该文件
#安装
wget https://www.python.org/ftp/python/3.10.6/Python-3.10.6.tar.xz
tar xvf Python-3.10.6.tar.xz
mkdir -pv /usr/local/python3
cd Python-3.10.6
./configure --prefix=/usr/local/python3 --with-ssl
make
make install
#替换原有openssl的链接
ln -s /usr/python/bin/python3 /usr/bin/python3_11
ln -s /usr/python/bin/pip3 /usr/bin/pip3_11
#定义环境变量
[root@localhost data]# cat /etc/profile.d/python3.sh
export PY3_HOME=/usr/local/python3
export PATH=$PATH:$PY3_HOME/bin
#加载环境变量
source /etc/profile.d/python3.sh
#验证
[root@localhost data]# python3 -V
Python 3.10.6
三、给服务器配置能科学上网
因为接下来的动作,没有这玩意根本玩不转。
vim /etc/profile # 编辑该文件,将下面的配置放在最后并用source重载该文件
export http_proxy='http://代理ip:代理端口'
export https_proxy='http://代理ip:代理端口'
四、安装CUDA
官网地址: https://pytorch.org/get-started/locally/

注意:如果提示需要升级pip,那就给它升级一下。
五、安装git
请不要用yum install git安装,这么安装的git版本太低,不支持-C参数,然后你执行launch.py脚本的时候会报错。如果已经yum安装的,请yum remove将其卸载。
git版本:2.22.0 采用编译安装
git下载地址:https://mirrors.edge.kernel.org/pub/software/scm/git/
#安装依赖
yum install curl curl-config curl-devel expat-devel gettext-devel zlib-devel gcc perl-ExtUtils-MakelMaker -y
#安装
wget https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.22.0.tar.gz
mkdir -pv /usr/local/git
tar xvf git-2.22.0.tar.gz
cd git-2.22.0
./configure --prefix=/usr/local/git
make
make install
#配置环境变量
[root@localhost git-2.22.0]# cat /etc/profile.d/git.sh
export GIT_HOME=/usr/local/git
export PATH=$PATH:$GIT_HOME/bin
#加载配置
source /etc/profile.d/git.sh
#验证
[root@localhost git-2.22.0]# git version
git version 2.22.0
六、克隆项目
git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git
七、安装项目所需依赖
cd stable-diffusion-webui
python3 -m pip install -r requirements.txt
这步会花很长时间:需要耐心等待!!!!
八、运行项目
# 将下载好的模型文件放置在该目录下
/data/stable-diffusion-webui/models/Stable-diffusion

注意:data是我的路径,这个需要朋友们自定义,其他路径不变,需要模型文件的私信我,我用的模型文件可以画二次元人物。
# 运行
[root@localhost stable-diffusion-webui]# python3 launch.py --skip-torch-cuda-test --no-gradio-queue --precision full --no-half
这步也会花很长时间,要下载一些依赖,需要耐心等待!!!

当你们看到这个界面的时候,恭喜你们,搭建成功了;

九、配置反向代理,使其能被访问
因为web UI监听的是本地的7860端口,你的电脑是不能访问的,这时候就需要nginx来做反向代理,使其能访问;
# 安装nginx
yum install nginx -y
# 配置nginx

# 重载nginx服务
systemctl reload nginx
十、愉快的玩耍吧
将你的服务器IP地址输入浏览器开始愉快的玩耍吧

# 尝试画张画



# 前台已经初见成效了,开心!!!
Prompt 输入 :
(((masterpiece))),best quality, illustration,(beautiful detailed girl),beautiful detailed glow,detailed ice,beautiful detailed water,(beautiful detailed eyes),expressionless,(floating palaces),azure hair,disheveled hair,long bangs, hairs between eyes,(skyblue dress),black ribbon,white bowties,midriff,{{{half closed eyes}}},big forhead,blank stare,flower,large top sleeves
Negative prompt 输入
owres,bad anatomy,bad hands,text,error,missing fingers,extra digit,fewer digits,cropped,worst quality,low quality,normal quality,jpeg artifacts,signature,watermark,username,blurry,missing fingers,bad hands,missing arms,large breasts

生成后的文件保存在这:/data/stable-diffusion-webui/outputs/txt2img-images

十一、报错总结

参考地址:https://github.com/AUTOMATIC1111/stable-diffusion-webui/issues/8334
这个报错是需要删除/root/.cache/huggingface;因为缓存的文件冲突了。需要删除缓存文件重新生成;
##############

参考地址:https://github.com/AUTOMATIC1111/stable-diffusion-webui/issues/9074
参考地址:https://github.com/facebookresearch/fairseq/issues/2413
#######################

解决办法:yum install xdg-utils -y

