完整的本地部署自由度较高,安装相对比较折腾,请耐心看完

完整的本地部署步骤涉及

  • 安装软件包管理工具Homebrew
  • 安装Python3.10环境
  • 部署stable-diffusion-webui项目
  • 配置stable-diffusion-webui
  • 愉快玩耍

想本地部署的从下载Homebrew开始。

嫌麻烦可以进行打赏找我有偿安装,应用方式启动,无需点击输入代码。

下载Homebrew

如果直接在官网复制指令会因为网络问题无法下载,我们可以下载国内大学在码云分享的homebrew

打开终端,一般在启动台“其他”文件夹,或者command+空格,搜索“终端”,运行以下代码(回车):

1
/bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"

输入“1”选择中科大版本,然后输入“Y(yes)”,直接输入开机密码(不显示)开始下载

它弹窗让你先下载Git,我们同意,然后等待下载

然后在运行一遍代码和重复上面的操作,这次就下载brew本体了

下载完成,今后下载还是输入“1”,提示安装完成,复制它给你的指令运行

最后我们运行指令检查一下,没有出现error报错就行。

1
2
brew
brew doctor

下载Python3.10

接着使用brew下载python,继续在终端执行命令:

1
brew install cmake protobuf rust [email protected] git wget

此过程较长等待下载完成。

部署stable-diffusion-webui项目

在你需要的目录中创建文件夹,并在终端中输入cd+空格后,将文件夹拖入终端,后续的stable-diffusion-webui项目将会被放到这个文件夹中(为方便描述后文将该文件夹称为工作目录)。
例如我在文档目录中创建AI文件夹,在终端输入cd+空格后,拖入AI文件夹,或者在终端中输入路径。

1
cd /Users/替换成你的用户名/Documents/Ai

然后输入下方代码,将git项目克隆到AI文件夹,你会得到一个stable-diffusion-webui的文件夹(为方便描述,后文将该文件夹称为项目目录)。

1
git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git

下载并使用模型

这里例举官方模型stable-diffusion 1.5的模型,huggingface,选择ckpt结尾的文件下载即可。

将下载好的模型文件放到项目目录路径中的models\Stable-diffusion里。

运行./web.sh程序

新开一个终端,运行这两个指令:(记住这两个指令,最好是自己打熟练,中途报错、以后每次运行都会再用到)

(第1个指令可以cd+空格,然后将项目目录拖进终端,就能自动填充文件路径)

1
2
3
cd 工作目录/stable-diffusion-webui/

./webui.sh

运行之后他就开始下载需要的依赖,有梯子的用梯子,(如果途中某个环节下载失败可以尝试断开切换使用梯子来下载,有时候不用速度更快,但默认还是挂着代理),等着自动安装,直到出现Running on local URL: http://127.0.0.1:7860 这段代码,就可以在地址栏输入http://127.0.0.1:7860 访问stable diffusion了。

stable diffusion汉化

下载汉化包,将下载后的文件解压,复制简体中文.json文件,到项目目录下的localizations文件夹里。

接着在浏览器中访问http://127.0.0.1:7860/ 。找到Settings下的user interface选项,最下方有一个Localization (requires restart)选项,点击刷新图标后在下拉框中切换简体中文,接着点击Apply Settings 保存设置,最后点击Reboot UI重启面板即可。

愉快玩耍

模型


此处的选项用来切换模型的,不同模型会产生不同的生成效果。下载好的模型文件一般都放在项目目录下的models\Stable-diffusion中。如果放进去在浏览器中找不到刚的模型,点击刷新即可。

txt2img部分介绍

  • prompt (提示词)该部分主要就是对于图像进行描述,有内容风格等信息进行描述。后面的画板可以一些随机的风格、下面箭头是之前任务的参数;
  • Negative prompt (反向提示词)这个主要是提供给模型,我不想要什么样的风格;特别对于图上出现多个人的情况,就可以通过2girls等信息进行消除;
  • Sampling method (采样方法)扩散去噪算法的采样模式,会带来不一样的效果,ddim 和 pms(plms) 的结果差异会很大,很多人还会使用euler,具体没有系统测试;
  • Sampling Steps (迭代步数)生成图片的迭代步数,每多一次迭代都会给 AI 更多的机会去比对 prompt 和 当前结果,去调整图片。更高的步数需要花费更多的计算时间,也相对更贵。但不一定意味着更好的结果。当然迭代步数不足(少于 50)肯定会降低结果的图像质量;
  • Width、Height (宽高)图像长宽,可以通过send to extras 进行扩大,所以这里不建议设置太大[显存小的特别注意];
  • Restore faces (面部修复)优化面部,绘制面部图像特别注意;
  • Tiling(可平铺) 生成一个可以平铺的图像;
  • Highres. fix (高分辨率修复)使用两个步骤的过程进行生成,修复图片分辨率效果
  • CFG Scale (提示词相关性)分类器自由引导尺度——图像与提示符的一致程度——越低的值产生越有创意的结果;
  • Seed (随机种子)种子数,只要中子数一样,参数一致、模型一样图像就能重新;

mg2img部分介绍


这部分参数很多与txt2img类似,这里主要说明一下不同部分;

  • CLIP Prompt(反推提示词),根据图片自动生成提示词
  • DeepBooru Negative prompt(反推负面提示词),根据图片自动生成不想要的提示词。

其它

  • 关键词提示库https://arthub.ai/

  • 创建虚拟环境

    1
    2
    3
    4
    python -m venv venv
    source venv/bin/activate # mac

    .\venv\Scripts\activate.bat # windows

Web UI无法启动:

如果尝试使用./webui.sh启动Web UI时遇到错误,请尝试从repositories文件夹中删除venvstable-diffusion-webui文件夹,然后使用git pull更新Web UI,然后再次运行./webui.sh

性能差:

目前macOS上的GPU加速使用大量内存。如果性能很差(如果使用任何采样器生成20步512x512图像需要超过一分钟)

  • 尝试使用--opt-split-attention-v1命令行选项(即./webui.sh --opt-split-attention-v1)启动,看看是否有帮助。
  • 没什么区别吗
    • 打开位于/Applications/Utilities中的Activity Monitor应用程序,并检查Memory选项卡下的内存压力图。生成图像时,内存压力显示为红色
    • 关闭Web UI进程,然后添加--medvram命令行选项(即./webui.sh --opt-split-attention-v1 --medvram)。
  • 性能仍然很差,内存压力仍然是红色的?
    • Try --lowvram(即./webui.sh --opt-split-attention-v1 --lowvram)。
  • 仍然需要几分钟以上的时间来生成一个512x512的图像与20个步骤与任何采样器?
    • 您可能需要关闭GPU加速。
      • 在Xcode中使用Open webui-user.sh
      • #export COMMANDLINE_ARGS=""变更为export COMMANDLINE_ARGS="--skip-torch-cuda-test --no-half --use-cpu all"

讨论/反馈:https://github.com/AUTOMATIC1111/stable-diffusion-webui/discussions/5461

VAE和CLIP

选择“Settings”拖到最下面会看到“Show all pages”在浏览器中搜 “quick”,会定位到「Quicksettings list」这一配置。在 “Quicksettings list” 里再添加两项:「sd_vae」、「CLIP_stop_at_last_layers」