ai绘画一直我都在用midjourney、文心一言、GPT4来画,但是面对一些想要自由调节、敏感内容且免费的绘画也就只能是stable diffusion了。mac装webui也并不容易。这里记录一下安装方法,以备未来所需。

目前mac上安装stable diffusion的方式主要两种,一种是使用Drawthings,可以在App Store下载,另一种是使用webui。

应用 优点 缺点
Drawthings 基本功能都有,用到了mac的神经网络引擎,同等质量下速度显著比webui快,并且快很多 没有插件,教程比较少
webui 支持插件与扩展,兼容性强,因为支持windows所以教程和用的人比较多 部署非常繁琐,遇到的错误会比较多

因为drawthings安装比较容易,这里就只说明webui的安装方法。

本教程基于这个教程进行修改。环境为macOS14(其他版本也可以使用),windows用户建议去看别的教程。

Homebrew(如果已装,可以略过)

使用Homebrew一键安装命令:

1
/bin/bash -c "$(curl -fsSL https://gitee.com/ineo6/homebrew-install/raw/master/install.sh)"

安装完成后,在终端输入brew -v执行,如果返回版本号信息(如下),那恭喜你,完成万里长征最重要的一步。

1
2
3
4
❯ brew -v
Homebrew 4.1.0-27-g3dcf3db
Homebrew/homebrew-core (git revision 468745ba82c; last commit 2023-07-23)
Homebrew/homebrew-cask (git revision 4d3e61fae8; last commit 2023-07-23)

安装Python3.10(如果已经是更高版本,可以略过)

1
brew install python@3.10

因为sd要求python版本比较高,mac自带的Python版本太低。

安装 stable diffusion webui 的依赖

在终端执行下面命令安装相关依赖。

1
brew install cmake protobuf rust python@3.10 wget

设置安装源(如果有较好的网络可以略过)

国内要使用阿里云的源,清华大学的源存在问题,不能安装GFPGAN

1
pip3 config set global.index-url https://mirrors.aliyun.com/pypi/simple/

如果pip找不到,请把pip替换为pip3再执行。

下载 stable diffusion webui 代码

cd进入你想放置stable diffusion webui的目录

在终端中输入cd然后将上级文件夹拖入。

下执行下面命令:

1
git clone https://gitee.com/ineo6/stable-diffusion-webui.git

成功后会出现一个stable-diffusion-webui目录,后面模型要放置的model就是在这里。

然后修复httpx包版本

1
2
cd stable-diffusion-webui && source venv/bin/activate
pip3 install httpx==0.24.1

输入下面的命令回退到webui文件夹

1
deactivate

下载模型

如果需要更高的自由度、绘制敏感内容,建议使用1.5模型。

Stable Diffusion 1.5 (下载地址)

如果需要更好的绘制效果,如果之前没有关键词绘画经验,强烈建议选择SDXL模型。

Stable Diffusion XL 1.0下载地址

1.5对于没有AI绘画经验和关键词生成经验的人是完全不可用的状态,所以需要学习描述方式、配合lora(类似于模型的插件)和control(控制姿势、风格等)来进行绘制。XL对于自然语言的理解更好,并且图像的清晰度更高、细节更好,缺点是Lora目前还比较少。

由于是SafeTensor类型的模型,所以下载的文件后缀为.safetensors,下载完成后,将该模型文件复制到下面的目录:

1
stable-diffusion-webui/models/Stable-diffusion

启动 stable diffusion webui 本体

我提供的stable-diffusion-webui内部已经预设了加速处理,不需要使用加速工具。

执行下面命令启动:

1
./webui.sh

当你看到有如下内容时,估计率是成功了:

1
Running on local URL:  http://127.0.0.1:7860

访问:http://127.0.0.1:7860/ 即可。

当你遇到TypeError: AsyncConnectionPool.__init__() got an unexpected keyword argument 'socket_options'

说明前面的修复httpx包版本没有很好的执行。

当你遇到GFPGAN下载失败,可以尝试研究一下网络环境的问题和pip3源。

webui启动成功

主界面

安装中文

进入扩展安装插件。地址为:https://github.com/VinsonLaro/stable-diffusion-webui-chinese

安装插件

选择重新启动界面

重启界面

进入设置设置成中文

设置中文

点击上方的Apply settingreload webUI即可。

GPU兼容错误

当遇到:

1
modules.devices.NansException: A tensor with all NaNs was produced in Unet. This could be either because there's not enough precision to represent the picture, or because your video card does not support half type. Try setting the "Upcast cross attention layer to float32" option in Settings > Stable Diffusion or using the --no-half commandline argument to fix this. Use --disable-nan-check commandline argument to disable this check.

时,说明出现了兼容性问题,目前我的解决方法是编辑webui-user.sh文件,找到

1
#export COMMANDLINE_ARGS=""

修改为

1
export COMMANDLINE_ARGS="--skip-torch-cuda-test --no-half --use-cpu all"

此修改会显著降低出图速度。