# Ubuntu系统安装开源绘图工具Stable Diffusion
# 系统环境
操作系统:Ubuntu 22.04.2 LTS
Ubuntu 22.04.4 LTS
CPU: i5-10400F
内存:32G
硬盘: 512G SSD
显卡: NVIDIA GeForce GTX 1060 6GB
内网IP: 192.168.1.21
# Docker安装
# 安装docker
curl -sSL https://get.docker.com/ | sh
systemctl start docker
systemctl enable docker.service
2
3
4
5
# 基于Docker安装Diffusion Webui(安装失败)
参考: https://hub.docker.com/r/siutin/stable-diffusion-webui-docker
# Run with CUDA
拉取镜像:
# docker pull siutin/stable-diffusion-webui-docker
创建目录:
# mkdir /root/stable-diffusion
# docker run -itd --name sdw --gpus all --network host -v /root/stable-diffusion/models:/app/stable-diffusion-webui/models -v /root/stable-diffusion/outputs:/app/stable-diffusion-webui/outputs --rm siutin/stable-diffusion-webui-docker:latest-cuda bash webui.sh --share
输出消息:
Stable diffusion model failed to load
Applying attention optimization: Doggettx... done.
Running on local URL: http://127.0.0.1:7860
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 模型下载失败报错:
Stable diffusion model failed to load
Applying attention optimization: Doggettx... done.
Running on local URL: http://127.0.0.1:7860
Could not create share link. Missing file: /app/stable-diffusion-webui/venv/lib/python3.10/site-packages/gradio/frpc_linux_amd64_v0.2.
Please check your internet connection. This can happen if your antivirus software blocks the download of this file. You can install manually by following these steps:
1. Download this file: https://cdn-media.huggingface.co/frpc-gradio-0.2/frpc_linux_amd64
2. Rename the downloaded file to: frpc_linux_amd64_v0.2
3. Move the file to this location: /app/stable-diffusion-webui/venv/lib/python3.10/site-packages/gradio
Startup time: 279.3s (prepare environment: 1.7s, import torch: 3.1s, import gradio: 0.7s, setup paths: 0.8s, initialize shared: 0.1s, other imports: 0.5s, list SD models: 135.2s, load scripts: 0.4s, create ui: 0.5s, gradio launch: 136.3s).
2
3
4
5
6
7
8
9
10
11
12
由于网络问题,模型下载失败。
查看镜像
# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
12f384716f6d siutin/stable-diffusion-webui-docker:latest-cuda "/opt/nvidia/nvidia_…" 4 minutes ago Up 4 minutes sdw
2
3
使用浏览器访问:IP+端口,http://127.0.0.1:7860
# 普通安装 Stable Diffusion(安装失败)
如果通过docker安装成功之后,这步可以不用操作。
# 一、建立安装空间和python虚拟环境
在硬盘上建立一个AiSpace的文件夹,未来所有的安装和配置都在这个文件夹下进行。
$ sudo -i
在root用户下操作
# mkdir StableDiffusion
2
3
在StableDiffusion文件里建立虚拟环境。
cd StableDiffusion
apt install python3.10-venv
python3.10 -m venv .
2
3
进入到Python虚拟环境
source bin/activate
# 二、在Python虚拟环境下,进行Stable Diffusion的基础安装
在StableDiffusion目录下,clone到Stable Diffusion文件。直接stable-diffusion-webui,省点事儿。
git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git
进入到stable-diffusion-webui,安装运行需要的包。
cd stable-diffusion-webui
修改pip源为阿里:
step1 设置pip的全局安装源为阿里云镜像
pip config set global.index-url https://mirrors.aliyun.com/pypi/simple
step2 设置pip安装时信任的主机地址
pip config set install.trusted-host mirrors.aliyun.com
升级pip:
python3 -m pip install --upgrade pip
pip3 install -r requirements_versions.txt
2
3
4
5
6
7
8
9
10
11
12
13
小提示:
1、pip一开始用的清华的源,不知道为什么有一些包找不到或者不兼容,很费解。换成阿里的就好用了。
2、basicsr安装的及其费尽,耗时特别长,没找到什么好的解决办法。
3、如果cache里面有了以前的包,如果没什么其他项目的关联,可以考虑先删除干净。目录是~/.cacha/pip
# 三、启动Stable Diffusion
python launch.py
运行的时候,还会安装很多的包。一定要保证github的访问畅通。如果连接断开了,就再次执行命令,直到运行成功
Running on local URL: http://127.0.0.1:7860
To create a public link, set `share=True` in `launch()`.
Startup time: 227.0s (prepare environment: 85.5s, import torch: 3.6s, import gradio: 0.6s, setup paths: 0.7s, initialize shared: 0.1s, other imports: 0.6s, list SD models: 135.0s, load scripts: 0.3s, create ui: 0.4s, add APIs: 0.1s).
有报错:no module 'xformers'. Processing without
pip3 install transformers
后台运行,并且把错误日志输出到文件中:
source /home/star/StableDiffusion/bin/activate
nohup python launch.py >/dev/null 2> stable-diffusion-webui.log &
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
在浏览器中输入IP+7860 端口访问 Stable Diffusion
# 利用Anaconda进行安装(安装失败)
# 1.下载安装包
mkdir sd
cd sd
wget http://repo.continuum.io/archive/Anaconda3-5.3.1-Linux-x86_64.sh
wget https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/Anaconda3-5.3.1-Linux-x86_64.sh
2
3
4
5
6
除了上面的下载方式,也可到清华软件镜像站 (opens new window)直接下载安装包,并上传到主机上
# 2.安装Anaconda
bash Anaconda3-5.3.1-Linux-x86_64.sh
# 3.安装完成
$ conda info
active environment : base
active env location : /home/star/anaconda3
shell level : 1
user config file : /home/star/.condarc
populated config files :
conda version : 4.5.11
conda-build version : 3.15.1
python version : 3.7.0.final.0
base environment : /home/star/anaconda3 (writable)
channel URLs : https://repo.anaconda.com/pkgs/main/linux-64
https://repo.anaconda.com/pkgs/main/noarch
https://repo.anaconda.com/pkgs/free/linux-64
https://repo.anaconda.com/pkgs/free/noarch
https://repo.anaconda.com/pkgs/r/linux-64
https://repo.anaconda.com/pkgs/r/noarch
https://repo.anaconda.com/pkgs/pro/linux-64
https://repo.anaconda.com/pkgs/pro/noarch
package cache : /home/star/anaconda3/pkgs
/home/star/.conda/pkgs
envs directories : /home/star/anaconda3/envs
/home/star/.conda/envs
platform : linux-64
user-agent : conda/4.5.11 requests/2.19.1 CPython/3.7.0 Linux/6.5.0-35-generic ubuntu/22.04 glibc/2.35
UID:GID : 1000:1000
netrc file : None
offline mode : False
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# 4.Anaconda简单使用
1、创建环境:conda create -n <env_name> <packages>
例如:conda create -n python3.10.9 python==3.10.9
2、激活环境:conda activate <env_name>
3、退出环境:conda deactivate <env_name>
4、查看已安装的环境信息:conda env list
5、复制环境:conda create -n <new_env_name> --clone <origin_env_name>
6、删除环境:conda env remove -n <env_name>
7、保存环境信息到environment.yaml文件中:conda env export > environment.yaml
8、通过environment.yaml环境文件创建文件: conda env create -f environment.yaml
9、查看已安装的包:conda list
10、搜索包:conda search <package_name1>
11、安装包:conda install <package_name1> <package_name2>
12、卸载包:conda remove <package_name>
5).虚拟环境创建好之后建议:升级 pip 到最新的版本 (>=10.0.0) 后进行配置:
python -m pip install --upgrade pip
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# 5.克隆 stable-diffusion-webui 项目
git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git
2
# 激活你的python3.10的虚拟环境
# 1.安装pytorch
$ nvcc --version
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2021 NVIDIA Corporation
Built on Thu_Nov_18_09:45:30_PST_2021
Cuda compilation tools, release 11.5, V11.5.119
Build cuda_11.5.r11.5/compiler.30672275_0
具体需要根据你们自己的cuda version版本去对应下载
阿里云的命令,因为cuda version是10.2
pip install torch==1.11.0+cu102 torchvision==0.12.0+cu102 --extra-index-url https://download.pytorch.org/whl/cu116
华为云上的命令,cuda version是11.2
pip install torch==1.12.1+cu116 torchvision==0.13.1+cu116 --extra-index-url https://download.pytorch.org/whl/cu116
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# 2.安装webui依赖
cd stable-diffusion-webui
先执行:
pip install -r requirements_versions.txt
再执行:
pip install -r requirements.txt
这边有可能有一些小坑需要注意:如果有一些包安装不上,你可以自己pip install 对应包,还有就是我在华为云上安装的时候,一开始一直有问题,发现是因为华为云pip直接调用的是https://repo.huaweicloud.com/repository/pypi/simple,导致很多包装不上,这边你可以切换到清华源上https://pypi.tuna.tsinghua.edu.cn/simple/。
2
3
4
5
6
7
8
9
10
11
12
# 更换中文
选择Extensions菜单 ---> 选择Available --->Extension index URL使用默认的地址就可以
将ads,localization,installed勾选掉
点击 Load from
在列表里面找到“Zh_CN Localization”,点击Install
选择Settings→User interface,下拉找到Localization栏,选择zh_CN
点击保存设置,并重启
更换中文成功
# 下载模型
由于我的系统是国内网络,下载模型会很慢,报错。在其他电脑(有科学上网)上浏览器输入 https://huggingface.co/runwayml/stable-diffusion-v1-5/resolve/main/v1-5-pruned-emaonly.safetensors 这个地址下载,在上传到 stable-diffusion-webui 目录中。
或者用国内的网站下载
启动Stable Diffusion时会
Downloading: "https://huggingface.co/runwayml/stable-diffusion-v1-5/resolve/main/v1-5-pruned-emaonly.safetensors" to /home/star/StableDiffusion/stable-diffusion-webui/models/Stable-diffusion/v1-5-pruned-emaonly.safetensors
Stable diffusion model failed to load
2
3
4
这时:
# ll /home/star/StableDiffusion/stable-diffusion-webui/models/Stable-diffusion/v1-5-pruned-emaonly.safetensors
-rw-r--r-- 1 root root 4265146304 5月 22 10:04 /home/star/StableDiffusion/stable-diffusion-webui/models/Stable-diffusion/v1-5-pruned-emaonly.safetensors
2
3
4
# 国内下载模型
由于huggingface连不上,所以需要使用huggingface的镜像地址来下载。考虑到下载过程比较慢,所以考虑先下载到本地再使用。
模型文件:v1-5-pruned-emaonly.ckpt,v1-5-pruned-emaonly.safetensors
模型下载地址:互链高科 (opens new window) https://aliendao.cn/models/runwayml/stable-diffusion-v1-5#/
把模型下载到\models\Stable-diffusion目录中
在项目的目录下,创建.cache/huggingface/openai/clip-vit-large-patch14文件夹,然后下载参数文件放在里面
cd /home/star/StableDiffusion/stable-diffusion-webui
mkdir -p .cache/huggingface/openai/clip-vit-large-patch14
cd .cache/huggingface/openai/clip-vit-large-patch14
2
3
参数文件:vocab.json,tokenizer_config.json,special_tokens_map.json,merges.txt,config.json
参数文件下载地址:互链高科 (opens new window) https://aliendao.cn/models/openai/clip-vit-large-patch14#/
# 修改项目代码
文件:repositories/stable-diffusion-stability-ai/ldm/modules/encoders/modules.py
第100行的__init__方法中,version是openai/clip-vit-large-patch14,把这个值改为自己的保存参数文件的目录
vim repositories/stable-diffusion-stability-ai/ldm/modules/encoders/modules.py
把 def __init__(self, version="openai/clip-vit-large-patch14", device="cuda", max_length=77,
改成你自己的地址:
def __init__(self, version="/home/star/StableDiffusion/stable-diffusion-webui/.cache/huggingface/openai/clip-vit-large-patch14", device="cuda", max_length=77,
2
3
4
5
6
7