欢迎光临散文网 会员登陆 & 注册

Stable Diffusion web UI 用CPU画画

2023-04-01 16:57 作者:骑驴看数据  | 我要投稿

        之前用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

这步也会花很长时间,要下载一些依赖,需要耐心等待!!!

成功的界面

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

监听127.0.0.1:7860

九、配置反向代理,使其能被访问

        因为web UI监听的是本地的7860端口,你的电脑是不能访问的,这时候就需要nginx来做反向代理,使其能访问;

# 安装nginx

yum install nginx -y

# 配置nginx

nginx webui相关配置

# 重载nginx服务

systemctl reload nginx

十、愉快的玩耍吧

将你的服务器IP地址输入浏览器开始愉快的玩耍吧

成功的前端界面

# 尝试画张画

后台已经开始了
CPU已经开始介入工作了
这就是为什么要至少12G的原因

# 前台已经初见成效了,开心!!!

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

效果图

十一、报错总结

JSONDecodeError

参考地址:https://github.com/AUTOMATIC1111/stable-diffusion-webui/issues/8334

这个报错是需要删除/root/.cache/huggingface;因为缓存的文件冲突了。需要删除缓存文件重新生成;

##############

Connection  errored out.

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

参考地址:https://github.com/facebookresearch/fairseq/issues/2413

#######################

xdg-open

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

Stable Diffusion web UI 用CPU画画的评论 (共 条)

分享到微博请遵守国家法律