m1芯片mac通过stable-diffusion-web项目安装stable-diffusion过程,使用conda管理python环境。

内容大部分参考官方教程,一些错误处理供大家参考

环境准备

brew

首先需要安装有brew环境,这个基本上用mac的都会有吧,没有的话参考百度,装完后建议配置国内镜像源。

anaconda

建议使用anaconda来管理python环境,防止依赖冲突,安装也很简单。

环境基础安装

终端执行如下命令,这里和官方的命令有所区别,没有安装python,因为准备通过anaconda来安装了。

1
brew install cmake protobuf rust python@3.10 git wget

安装python环境,这里SD可以替换成任意你想的名字,详见conda用法。等这个命令进度条执行完,就有了一个叫SD的,基于python 3.10的环境了。

1
conda create -n SD python=3.10

切换到SD环境,并检查python版本,每次关闭终端后重新打开,都必须执行conda activate命令,或者设置为默认环境。

1
2
conda activate SD
python --version

SD安装

下载源码

进入你想要安装stable-diffusion的目录,例如Documents文件夹,下载stable-diffusion-web源码

1
2
cd ~/Documents
git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git

下载模型

提供几个模型下载地址:
Stable Diffusion Models (rentry.org)
Hugging Face – The AI community building the future.
刚开始不知道用哪个,先用使用人数最多的sd-v1-4.ckpt,下载完成后移动sd-v1-4.ckpt文件到模型文件里,例如:~/Documents/stable-diffusion-webui/models/Stable-diffusion

安装python 依赖

官方的教程里没有这一步,因为在执行./webui.sh的时候,会自动创建虚拟python环境,并安装依赖,但是会很慢,会卡住,所有这里我们用conda环境先安装这些依赖,后面直接用这个环境。

1
2
3
4
5
6
7
8
9
10
11
12
# 再确认一下环境没错
conda activate SD
python --version

# 进入项目路径
cd stable-diffusion-webui

# 安装pip清华源,可不做
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple

# 安装依赖
pip3 install -r requirements_versions.txt

这里执行pip3 install的时候,可能会出现网络问题,因此建议使用清华源来进行安装,就算用了清华源,也有可能出现安装过程卡住的问题,这时候建议一个一个安装,查看一下requirements_versions.txt文件,然后诸如pip3 install gfpgan==1.3.8,依次安装包。

调整一下venv

先执行./webui.sh,这时候会发现,脚本又开始安装torch,等等刚才安装过的python包,这是因为这个脚本会使用venv创建虚拟的pyhon环境,当然我们不需要这个了,直接ctrl+c停止,但是脚本就这么写的,修改脚本很麻烦,我们的目标是让venv环境直接使用系统的环境,不要再安装site-package,因此通过修改venv配置来实现(这里也许有其他更好的办法)。

修改venv目录里pyvenv.cf文件,设置include-system-site-packages = true

启动web ui

1
./webui.sh

第一次启动,还会下载一些项目和文件,这部分没碰上太大问题,可能需要翻墙。然后直到看到Running on local URL: http://127.0.0.1:7860,就大功告成了。