Mac M芯片
一、安装步骤
1、安装 Homebrew
cmd+空格,搜索终端,打开终端,把这段代码粘贴到终端回⻋。
/bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"
⼀路有1选1,有Y选Y,需要输⼊开机密码,不会显⽰密码,直接输⼊然后回⻋即可。
当询问 core cask services 可以回⻋跳过即可。
安装完,在终端输⼊brew -v,能查询到版本即安装成功。
切换阿里镜像源(切换其他镜像源可参考 【Mac】 Homebrew):
# 查看 brew.git 当前源
$ cd "$(brew --repo)" && git remote -v
origin https://github.com/Homebrew/brew.git (fetch)
origin https://github.com/Homebrew/brew.git (push)
# 查看 homebrew-core.git 当前源
$ cd "$(brew --repo homebrew/core)" && git remote -v
origin https://github.com/Homebrew/homebrew-core.git (fetch)
origin https://github.com/Homebrew/homebrew-core.git (push)
# 修改 brew.git 为阿里源
$ git -C "$(brew --repo)" remote set-url origin https://mirrors.aliyun.com/homebrew/brew.git
# 修改 homebrew-core.git 为阿里源
$ git -C "$(brew --repo homebrew/core)" remote set-url origin https://mirrors.aliyun.com/homebrew/homebrew-core.git
# zsh 替换 brew bintray 镜像
$ echo 'export HOMEBREW_BOTTLE_DOMAIN=https://mirrors.aliyun.com/homebrew/homebrew-bottles' >> ~/.zshrc
$ source ~/.zshrc
# bash 替换 brew bintray 镜像
$ echo 'export HOMEBREW_BOTTLE_DOMAIN=https://mirrors.aliyun.com/homebrew/homebrew-bottles' >> ~/.bash_profile
$ source ~/.bash_profile
# 刷新源
$ brew update
2、创建Python虚拟环境
通过Anaconda来创建Python虚拟环境,若未安装可参考 【Mac】安装 Python3 二、2、通过 Anaconda 安装管理 Python
conda create -n sd python=3.10 -y
conda activate sd
Stable Diffusion 会自行创建一个虚拟环境(venv)用于运行。
3、安装依赖
brew install cmake protobuf rust git wget libjpeg
4、本地部署 SD
在需要安装的⽂件夹(任意文件夹)上右键 ,进⼊终端执行以下代码:
git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git
cd stable-diffusion-webui
./webui.sh
此时会安装很多东西,Install 的时候可能会卡住,不要慌,请耐心等待。
下载完成后会报错:loading stable diffusion model: FileNotFoundError,这是因为此时还没下载模型。
启动成功会自动弹出应用界面(浏览器),如没有修改端口,则为 http://127.0.0.1:7860
5、模型下载
5.1下载地址
5.2 SD模型推荐
5.3 模型安装
- 基础模型:将“.ckpt”或“.safetensors”文件放到文件路径:stable-diffusion-webui/models/Stable-diffusion
- 辅助模型:将“.ckpt”或“.safetensors”文件放到文件路径:stable-diffusion-webui/models/Lora
页面选择模型时,可能报错:OSError: Can't load tokenizer for 'openai/clip-vit-large-patch14'. If you were trying to load it from 'https://huggingface.co/models', make sure you don't have a local directory with the same name. Otherwise, make sure 'openai/clip-vit-large-patch14' is the correct path to a directory containing all relevant files for a CLIPTokenizer tokenizer.
这是因为 Hugging Face 被墙,若没有魔法是无法下载的。
解决办法:下载 Stable-diffusion openai,解压后直接丢进Stable Diffusion 目录下,重启服务(./webui.sh)即可。
压缩包文件说明:
- tokenizer.json 和 vocab.json:这两个文件是模型的词汇表和分词器的配置。
tokenizer.json通常包含了模型的分词规则和转换策略,它决定了如何将输入的文本分割成可被模型处理的令牌(tokens)。而vocab.json则存储了模型使用的词汇表,即所有可能的令牌及其对应的唯一标识符。这两个文件是模型理解和处理输入数据的关键。 - config.json:这是模型的配置文件,其中包含了模型架构的详细信息,如层数、隐藏层大小、激活函数等。这些参数直接影响模型的性能和计算资源的需求。在部署模型时,我们需要根据这个配置来构建和初始化模型结构。
- tokenizer_config.json:这个文件可能包含特定于分词器的附加设置,比如特殊字符的处理方式、截断策略等。它提供了关于如何使用分词器进行数据预处理的额外信息。
- special_tokens_map.json:这个文件定义了模型中的特殊令牌,如开始序列标记、结束序列标记、填充标记等。这些特殊令牌在模型训练和推理过程中有特定的含义和用途
- preprocessor_config.json:这个文件包含了预处理器的配置,预处理器是负责将原始输入数据转化为模型可以理解的形式的组件。这可能包括文本标准化、数据增强等步骤。
- merges.txt:在BERT-like模型中,
merges.txt文件包含了基础词汇(subwords)的合并规则,用于处理词汇表中未出现的新词。这是通过将两个基础词汇拼接起来形成新的词汇单位来实现的。 - README.md:这是一个Markdown格式的文件,通常包含有关项目、模型或库的说明和指南,对于用户理解和使用模型是十分重要的。
- openai:这可能是指OpenAI的相关资源或者库,OpenAI是一家专注于研究、开发和应用人工智能技术的公司,他们的GPT系列模型和tokenizer工具在NLP领域非常著名。如果与稳定扩散模型相关,可能是使用了类似的技术或者接口。
6、添加 「外挂 VAE 模型」、「CLIP 终止层数」
① 选择 Settings,拖到最下面,点击 Show all pages
② command+F 打开搜索,输入 quick 回车,会定位到 Quicksettings list 配置。
③ 在 Quicksettings list 里再添加两项:sd_vae、CLIP_stop_at_last_layers
④ 点击Apply settings,再点击 Reload UI
7、SD 界面基本功能

- Stable Diffusion大模型:绘图的主要模型,大小一般都在几个G。
- VAE模型:可以理解为让图片更明亮一些,推荐阅读下
秋葉aaaki大佬 的文章【AI绘画】不是每个模型都需要外挂VAE! VAE真正的作用是什么? - CLIP终止层数:值越大,出的结果和你预想的差别越大。这个值一般固定用1-4,默认用2就行。
- 文生图:根据提示词来生成图片。框中就是我们写的提示词,只能用英文。
- 正向提示词:告诉 SD 需要生成什么样的图片,比如,一个桃子。
- 反向提示词:告诉 SD 图片中不需要什么元素,比如,狗。意思是不要狗。
- 图生图:图像生成图像。
- 后期处理:图片处理。
- PNG信息:这是一个快速获取图片生成参数的便捷功能。如果图像是在SD里生成的,您可以使用“发送到”按钮将参数快速复制到各个页面。
- 模型融合:您最多可以组合 3 个模型来创建新模型。它通常用于混合两个或多个模型的风格。但是,不能保证合并结果。它有时会产生不需要的伪影。
- 训练:训练页面用于训练模型。它目前支持textual inversion(embedding) 和hypernetwork。
- 设置:更改任何设置后,记得单击“保存设置”后再重载界面。
- 扩展:安装扩展插件。
- 迭代步数:一般地,数值越高,画得越好,时间越长。30是比较合适的数值。
- 采样方法:Euler a 方法是扩散类型的,结果很难控制。一般采用 DPM++ 2S a Karras 等几个,结果不会发生大的变化,而是不断丰富细节,容易控制。
选好基本参数,大模型,迭代步数30,采样方法DPM++ 2S a Karras,再加上提示词,就可以画出一幅比较完整的画了。
二、扩展插件
1、安装方式
Stable Diffusion 插件页面有四个标签页:Installed(已安装)、Available(可下载)、Install From URL(从网址下载)、Backup/Restore(备份/恢复)

1.1 Available(可下载)
点击 Extension⇒ 点击 Available⇒ 点击 Load from⇒ 取消勾选 Localization、Installed⇒ 在搜索框输入插件名称⇒ 回车⇒ Install

安装完成 Install 将会变成 installed,也可以在 Extension-installed 下查看
1.2 Install From URL(从网址下载)
点击 Extension⇒ 点击 Install from URL ⇒ 在URL for extension’s git repository 下方的输入框中黏贴 Github项目地址⇒ 点击 Install
1.3 手动下载
通过 git clone 项目地址 或 下载项目到本地再解压,将项目文件夹放到 stable-diffusion-webui/extensions 下边,此时在 Extension-installed 下可以看到已安装好对应的项目

2、应用插件
安装好插件需要应用插件
- 第一步, Extension⇒ installed ⇒ apply and restart UI

- 第二步,在 setting 里修改对应的设置,以汉化插件为例:点击 setting⇒ 在搜索框输入 localization ⇒ 在 localization 中选择 zh_cn ⇒ 点击 apply settings⇒ 点击 reload UI

3、插件推荐
3.1 界面中文汉化包
https://github.com/dtlnor/stable-diffusion-webui-localization-zh_CNhttps://github.com/hanamizuki-ai/stable-diffusion-webui-localization-zh_Hans
3.2 提示词自动补全/翻译
https://github.com/DominikDoom/a1111-sd-webui-tagcomplete
3.3 prompt翻译
https://github.com/Physton/sd-webui-prompt-all-in-one
3.4 反向提示词
项目地址:https://github.com/picobyte/stable-diffusion-webui-wd14-tagger
比默认图片提取prompt更精准的插件,功能也更强大。
安装成功会看到上面的设置栏多了一个 WD 1.4标签器 (Tagger),点击进入界面
上传一张图片让它分析,首次运行会下载一些依赖,可以在终端窗口查看进度
使用结束后,记得点击下方的“卸载所有反推模型”,不然模型会占用很高的显存。
3.5 Inpaint-Anything
项目地址:https://github.com/geekyutao/Inpaint-Anything
Inpaint-Anything 是一款强大的图像编辑工具,能修复和编辑图像内容,用于删除和替换图像中的任何内容,使用人工智能自动识别和修复图像中的缺陷,无需使用遮罩,比如删除图像中不需要的对象或瑕疵、修复图像中的损坏、替换图像中的对象或背景、创建创意图像效果等
3.6 图库浏览器
项目地址:https://github.com/AlUlkesh/stable-diffusion-webui-images-browser
这个插件用来浏览和管理图片,就不用通过访达来查看图片。
3.7 Tiled VAE
项目地址: https://github.com/pkuliyi2015/multidiffusion-upscaler-for-automatic1111
显卡内存不够报错:RuntimeError: MPS backend out of memory (MPS allocated: 5.05 GB, other allocations: 2.28 GB, max allowed: 6.80 GB). Tried to allocate 1024.00 MB on private pool. Use PYTORCH_MPS_HIGH_WATERMARK_RATIO-0.0 to disable upper limit for memory allocations (may cause system failure).
启用 Tiled VAE 插件后,它会先生成一个个小的图块,然后再组合在一起形成高分辨率图像,这样就有效防止爆显存情况的出现,不过生成时间会更长一些。
六、进阶学习
八、报错汇总
-
Stable diffusion model failed to load手动下载基础模型,放入models文件夹下的Stable-diffusion文件夹里,点此立即下载
-
OSError: Can't load tokenizer for '/clip-vit-large-patch14'mkdir openai cd openai git clone https://www.modelscope.cn/AI-ModelScope/clip-vit-large-patch14 -
no module 'xformers'. Processing without...- 方案一:手动在sd虚拟环境venv中安装xformers
cd stable-diffusion-webui source venv/bin/activate pip install xformers此时可能报错
No module named torch,通常是因为 xformers与torch版本不兼容,可在 Github-xformers 查看PyTorch的版本要求 - 方案二:将 xformers 安装在虚拟环境sd中,将
conda install pytorch torchvision torchaudio -c pytorch-nightly conda install xformers -c xformers # 不启用虚拟环境venv:将启动脚本第 26 行 use_venv=1 改为 use_venv=0 vi stable-diffusion-webui/webui.sh - 方案三:https://zhuanlan.zhihu.com/p/602240691
- 方案一:手动在sd虚拟环境venv中安装xformers
-
clang: error unsupported option '-fopenmp'brew install gcc echo "export CC=/opt/homebrew/Cellar/gcc/14.2.0/bin/gcc-14" > ~/.zshrc echo "export CXX=/opt/homebrew/Cellar/gcc/14.2.0/bin/g++-14" > ~/.zshrc source ~/.zshrc -
urllib.error.URLError:汉化的时候,浏览器可以访问,终端无法网站
通过配置本地域名解析修改:在 IP地址查询网站 查询Github IP地址,修改hosts文件
$ sudo vi /etc/hosts输入开机密码,在打开的文件末添加以下内容
(查询到的ip地址) github.com
十、资料
文章来源于互联网:【Mac】 Stable Diffusion 部署
相关推荐: Llama 2 70B Chat 模型简介:基本概念与特点
Llama 2 70B Chat 模型简介:基本概念与特点 Llama-2-70B-Chat-GPTQ 项目地址: https://gitcode.com/hf_mirrors/ai-gitcode/Llama-2-70B-Chat-GPTQ 引言 在人工智能…
5bei.cn大模型教程网










