首发于近思轻行
Mac零基础部署Stable-Diffusion,轻松晋级AI绘图及模型训练

Mac零基础部署Stable-Diffusion,轻松晋级AI绘图及模型训练

开篇

这篇文章始于笔者对AI绘图模型应用的实践探索,是一篇聚焦Mac系统安装、使用stable-diffusion模型绘图的科普文章,由Yongte创作,原文发布于知乎,文中部分引用内容均注明了作者及链接,仅供学习研究、交流使用。(全文约18000字,可在下滑提示框中按目录分章节阅读)


Part1.创作背景及适用人群

1.创作背景

2023年,AI绘图已经从兴趣娱乐逐渐步入实际应用,在众多的模型中,stable-diffusion又是当前最为闪耀的一颗明星。2023年初,笔者发现网络上不少Mac用户对自己部署stable-diffusion和基础使用存在一定困惑,遂决定自己写一篇本地部署及日常使用文章。这篇文章有两个特点:首先是内容完整,系统讲解了stable-diffusion的背景、原理、安装部署、基本功能、日常使用、常见问题解决等内容;其次是安装贴心,安装参考了stable-diffusion-webui团队在Github主页的指导内容,安全可靠,同时结合了自身安装实践,对不同步骤做了对应的细化。助你轻松上手AI绘图,发挥自由创意。

2.适用人群

本文面向stable-diffusion-webui的零基础学习者或初学者,适用搭载Mac OS系统的Macbook、MacStudio、MacMini、MacPro等苹果系列机型的部署。由于stable-diffusion算法需要占用较大的图形算力,目前偏重能效优化的苹果M1/M2系列芯片的性能尚不及同期搭载NVIDIA系列显卡。以出商用图的分辨率和效率整体看,M1Pro/Max+32GB内存组合配置的Mac 能获得约50分的出图成绩(个人主观的百分制评分),学习爱好者可以适度放宽配置要求。


Part2.认识stable-diffusion-webui

1.认识stable-diffusion

1.1 stable-diffusion起源
了解stable-diffusion-webui前,我们需要先来认识一下stable-diffusion。Stable Diffusion是以慕尼黑大学的CompVis研究团体开发的各种生成性人工神经网络“High-Resolution Image Synthesis with Latent Diffusion Models”为基础,由StabilityAI、CompVis与Runway合作开发,并于2022年发布的一款深度学习文本到图像生成模型。该项目得到了EleutherAI和LAION的支持,截至2022年10月,StabilityAI筹集了1.01亿美元的资金。Stable Diffusion是一种扩散模型(diffusion model)的变体,叫做“潜在扩散模型”(latent diffusion model; LDM),而扩散模型是在2015年推出的,其目的是消除对训练图像的连续应用高斯噪声,可以将其视为一系列去噪自编码器。与耳熟能详的同类软件DALL-E或Midjourney只能通过云计算访问不同,Stable Diffusion可以支持本地部署以及云端部署。Stable Diffusion是开源生成人工智能公司stability旗下的人工智能模型之一,在保持开源的同时,stability公司也提供商业化的服务dreamstudio.ai,此外,市场上已经有很多基于该模型的商业化应用案例,通常是按次数收费等。

背景补充:
1:stable-diffusion模型论文:arxiv.org/abs/2112.1075
2:stable-diffusion项目Github地址:GitHub - CompVis/latent-diffusion: High-Resolution Image Synthesis with Latent Diffusion Models
3:stable-diffusion模型训练背景简介:Stable Diffusion最初在StabilityAI资助的LAION(一家德国非盈利组织)创建的公开数据集LAION-5B上进行训练,此后改为由6亿张带标题的图片组成的子集“LAION-Aesthetics v2 5+”上训练,该模型在由256个NVIDIA A100 GPU组成的亚马逊云计算服务上训练,训练时长为15万个GPU小时。


1.2 stable-diffusion特点
(1)图像生成方式:stable-diffusion主要借助基础模型,实现图生图,文生图等形式的图像生成以及图像重绘修改,过程中支持非常丰富的参数及功能调控,其基础模型已经迭代了多个差异化的版本,如代表性的1.5sd-v1-5-inpainting.ckpt、2.1v2-1_768-ema-pruned.ckpt等。
(2)硬件配置要求:Stable Diffusion官方一般建议电脑VRAM(显存)在10GB以上运行,若配置较低,以float16的精度加载权重,而不是默认的float32,以降低VRAM使用率,当然,显卡性能越强,图像生成效率更高。根据目前的应用评价看,该模型的与GPU天梯图性能呈正相关,即一般独立显卡优于集成显卡,英伟达、AMD显卡优于其他显卡或核显,虽然Mac M系列芯片在2022年做了特殊优化,但 目前看;Stable diffusion在M1和M2两代芯片上的运行性能并不算强。

图1:苹果M系列芯片天梯图位置;来源:截图自https://zhuanlan.zhihu.com/p/294283384

欲了解更多显卡天梯图可移步这篇@Gyusang所写的知乎高赞文章:

2.stable-diffusion与网红AI Midjourney的区别

stable-diffusion本质上与Midjourney等是同类产品,但也有部分区别,简单来讲,Midjourney是一个未知生成机制,底层封闭,用户只能做粗略调整控制,默认产出效果较成熟的既定数量抽卡式图片生成,类似于手机操作系统中的iOS,或相机中直出效果很好的高端微单。而stable-diffusion(或同类基于stable-diffusion模型的相似AI应用)生成的方式则是支持开放式模型选择(包括Lora等各种模型),细节精确控制,用户不仅可以选择稳定模型,能充分借助模型实现自己期待的图像效果,实现可自定义数量的图片生成,类似与手机操作系统中的Android,或相机中外接与调节扩展强大的高端单反相机。并且,stable-diffusion是开源的基础模型,而Midjourney封闭且商业化的成熟产品。因此,stable-diffusion-webui更能让使用者感受到模型生成图片的过程与机制,进行诸多细微调节,从而实现更丰富的创意发挥。

3.stable-diffusion-webui是什么?

stable-diffusion-webui是一个基于stable-diffusion这个开源图形AI大模型的一个Web版应用,它能让用户自己将stable-diffusion这个图形AI模型部署在自己的个人电脑、工作站或服务器上,以实现独立的访问和便捷地生成图像、模型训练等多种功能。这个WEB版应用同样是开源的,其创始作者是github上的@AUTOMATIC1111,此外,截止2023年6月12日,还有其他406位共同开发贡献者,且应用已迭代至v1.3.2版。简言之,stable-diffusion-webui是一个基于浏览器操作的,可以调用stable-diffusion开源模型算法的web版综合图形AI应用,AI绘图只是其中的核心功能之一。

stable-diffusion-webui开源作者@AUTOMATIC1111的主页:github.com/AUTOMATIC111
图2:AUTOMATIC1111创作者主页;来源:Yongte

4.为何选择自己部署stable-diffusion-webui?

如前所述,当我们使用市面上基于stable-diffusion开发的各种图形应用时,包括stability的dreamstudio应用,都会涉及到占用服务商提供的算力,支付相应的使用费用。而当我们选择部署在自己的个人电脑、工作站时,就可以实现占用个人电脑的算力,以及更快地本地网络,实现图像生成。总之,自己部署stable-diffusion-webui有着较高的研究然索性,以及相对低成本等优势。


诚然,我们在使用这些开源模型、开源代码或应用时,也应向这些推动人类科技进步的贡献者致敬。假若你借此实现商业目,笔者也倡导你对这些创始贡献者多一分“饮水思源”的思维及行动。


Part3.Mac OS系统电脑部署stable-diffusion-webui

安装前先打开网络代理(可上外域网络)

1.第一步:安装Homebrew

依次打开“启动台-其他-终端,输入:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

按提示输入密码(密码不显示)回车,继续按提示“回车”,等待自动安装完成。(小贴士:过程大约会持续2分钟。安装结束会有“Installation successful!”提示,最后以XXX@XXXs-MacXXX ~ % 结束。

图3:安装成功提示;来源:Yongte

重要提示:很多网友反应在安装homebrew时,确定网络代理是好的,但依然出现“curl: (7) Failed to connect to raw.githubusercontent.com port 443 ”提示,主要是网络连接失败,可在“终端”中先运行如下代码,再输入上述安装代码,即可正常安装:

export https_proxy=http://127.0.0.1:7890 http_proxy=http://127.0.0.1:7890 all_proxy=socks5://127.0.0.1:789

若依然不行,可尝试更新Homebrew导入运行所需的环境,这常出现在macosx-14(Sonoma)之前版本的系统。打开目录(/Library/Developer)删除整个“Command_Line_Tools”文件夹,重新下载安装Apple官方提供的“Command_Line_Tools_for_Xcode_14.3”环境工具安装(该工具仅支持Apple开发者下载,笔者已上传于网盘)链接: pan.baidu.com/s/1Lzt4En 提取码: rtia

2.第二步:安装python3.10

在“终端”中继续输入:brew install cmake protobuf rust python@3.10 git wget 回车等待自动安装完成。(小贴士:过程大约会持续0.1分钟,最后以XXX@XXXs-MacXXX ~ % 结束;或者提示“warning:python3.10 has been installed”类似字样,可进入下一步)。

3.第三步:克隆安装webui 软件包

继续在“终端”中输入:git clone https://github.Com/AUTOMATIC1111/stable-diffusion-webui 然后回车等待自动安装完成。(小贴士:默认安装最新版本,过程大约会持续0.2-0.5分钟,最后以XXX@XXXs-MacXXX ~ % 结束)

图4:安装成功后提示;来源:Yongte

4.第四步:导入基础模型

4.1下载模型

Stable diffusion生成图形需要先加载基础模型,它包含了图形训练的素材及算法程序。若只考虑装两个官方模型,截止2023年8月2日,我会推荐SDl-v1-5-pruned版/SD-XL1.0。1.5为完全原生态,没有像2.0版本一样对图片做了“成人过滤”,对GPU配置要求相对较低一些。SD-XL模型则在算法上做了视觉优化,对词的表达和成像效果有了质的提升,但对GPU配置要求也会更高,需要结合v 1.5.0以上的diffusion-webui 使用。就模型下载而言,目前除可登陆Models - Hugging Face下载stabilityAI官方发布的基础模型外,C站等分享网站也有海量的微调基础模型,详细的模型分类及差异见下文“基础使用贴士”章节的第“5”部分。

以下列出几个常用.ckpt格式模型的快捷下载地址(按推荐优先级排列):

(1)stable-dIffusion XL1.0模型下载:stabilityai/stable-diffusion-xl-base-1.0 at main(下滑页面至底部,即选择可下载“sd_xl_base_1.0.safetensors”)

(2)stable-dIffusion 1.5模型下载:huggingface.co/runwayml(下滑页面至“Original GitHub Repository”标题下的“1.Download the weights”下载,希望更强微调选“v1-5-pruned.ckpt ”,内存有限的可选“v1-5-pruned-emaonly.ckpt”)

4.2无网络代理(无法正常上外域网络):笔者已将前述基础模型文件整理至网盘,可直接取用:(链接: pan.baidu.com/s/1glV1lU 提取码: p4nf )


4.3将下载好的基础模型放入对应文件夹
鼠标移动至桌面,按comamand+F组合键搜素“stable-diffusion-webui”,依次打开文件夹stable-diffusion-webui/ models/stable-diffusion,将上述“5.1”下载的基础模型放入文件夹中(.ckpt和.safetendersor格式的文件都可以放入)。

图5:基础模型存放位置示例;来源:Yongte

5.第五步:启动stable-diffusion-webui用户界面

在“终端”中输入:cd stable-diffusion-webui 回车,然后继续输入 ./webui.sh 回车,然后等待运行。(小贴士:大约需等待3分钟,这个过程会venv创建并激活Python虛拟环境,自动下载所有所需加载项。最后会以“Running on local URL: 127.0.0.1:7860” 结束,并报告数行安装状态数据)。v1.8.0以后的新版运行完会自动打开浏览器操作界面,老版本需在浏览器中输入:127.0.0.1:7860 打开操作界面。如果希望显示深色界面,在浏览器中输入:http://127.0.0.1:7860/?__theme=dark 即可。


Part4.基础使用贴士

1.stable-diffusion-webui的出图逻辑及功能界面

1.1stable-diffusion-webui的出图逻辑

stable-diffusionwebui是怎么绘图的呢?直观的理解,stable-diffusionwebui的出图逻辑是:基于显卡算力,使用基础算法模型+辅助模型(非必要)+滤镜(非必要)+提示词+关键设置调控项+插件(非必要),从而实现AI创作生成图像。其底层是海量的特征图形素材+各种神经网络算法(限于篇幅,这里不做进一步的科普)。

1.2stable-diffusion-webui的功能界面

图6:stable-diffusion-webui的功能操作界面简介;来源:Yongte

2.电脑关机后如何再次打开stable-diffusion-webui

在终端输入:cd stable-diffusion-webui 回车然后再输入./webui.sh 回车,这时,在浏览器输入127.0.0.1:7860 即可打开界面,如果经常使用,建议将127.0.0.1:7860收藏至书签页,以方便访问。

3.如何安装中文界面?


3.1进入资源库:在操作界面点击Extensions>Available>,将“Hide extensions with tags”下面的勾选全部取消,点击“Load from”橙色按钮刷新资源。

图7:进入操作界面;来源:Yongte

3.2搜索并安装资源包:使用command+F搜索“zh_CN”,找到对应的“zh_CN Localization localization”(如果未搜索到,可重复点击“Load from”刷新,再进行搜搜),找到后,点击该行右侧的“install”安装。

图8:搜索及安装界面截图;来源:Yongte

3.3应用刷新:点击“Installed”(此时发现第一行勾选的即为已安装好的语言包),点击橙色“Apply and restart UI”按钮。

图9:应用刷新操作界面;来源:Yongte

3.4设置中文界面:点击Settings>User interface>第一行Localization (requires restart),点下方方框,选择zh_CN,点击橙色“Apply settings”按钮,再点击橙色“Reload UI”按钮,页面即可刷新变成中文界面。需要改为英文语言时,同样在这里选择“None”改回去即可。

图10:中文界面最后操作及显示界面;来源:Yongte

4.Stable diffusion模型的分类及安装

4.1Stable diffusion模型分类及文件格式

这里,笔者将stable-diffusion模型大致分为四大类:基础模型、微调基础模型、融合基础模型(第三方)、辅助模型(第三方)。此外,就模型文件格式而言,stable-diffusion模型的主流编码方式有.ckpt、.safetentersor、.pt三种,其中,又以.ckpt、.safetentersor更为主流。有人指出.safetendersor文件被认为更安全,因为它们不使用pickle模块,且.safetentersor格式运行会更快一些。但该格式必须在2023年之后的Stable Diffusion内才可以使用。(.safetentersor格式的官方特点解释参见:https://github.com/AUTOMATIC1111/stable-diffusion-webui/pull/4930)

4.2基础模型(SD模型)

(1)了解基础模型:严格意义上讲,基础模型主要主要为SD官方发布的SD1.X,2.X这类不带特征描述后缀词标注的模型。经过长期迭代,已于2022年11月更新至2.1版本。与SD1.X相比,SD2.X则是在Stability AI 下面的 DeepFloyd 团队创建的 LAION-5B数据集(laion.ai/blog/laion-5b/)的美学子集上所训练的,并使用 LAION 的 NSFW 过滤器去除“大人”内容;这一版还更新了CLIP模型到OpenAI公司开源的更大的、参数更多的OpenCLIP模型,可以更好地理解人类语言;此外分辨率也得到了提升,同时提供了使用512x512和768x768两种分辨率图片训练的模型版本。因此,理论上讲,SD2.X在对提示词的理解和高分辨率支持上有一定优势。基础模型一般文件大小在5GB左右。

(2)基础模型下载:.ckpt文件格式基础模型下载主要集中于:Models - Hugging Face

(3)基础模型安装:将下载好的模型文件放入对应的类别模型文件夹中即可完成安装。操作如下:按comamand+F组合键搜素“stable-diffusion-webui”,依次打开文件夹stable-diffusion-webui/ models/stable-diffusion中。

4.3微调类基础模型(Inpainting, UnCLIP, upscaler, depth)

(1)了解微调模型:微调类模型是Stability AI官方根据SD基础模型做部分特异性优化、延展而推出的一类基础模型。他们大致分为四个小类:分别是Inpainting, UnCLIP, upscaler, depth模型,一般文件大小与基础模型相当,它们各自有一些偏好特点,如:

1)Inpainting模型: 在蒙版局部重绘时融合效果更好(如stable-dIffusion 1.5Inpainting模型)。

2)UnCLIP模型: 该模型使用了类似DALLE2的CLIP算法,能够实现图片变种,得到更多可能性。

3)upscaler模型:专门用来提升精度的超分模型,可以提升x4精度。

4)depth模型:可对生成效果进行更细化的深度控制,类似controlNet的深度版。

微调模型适用于绘制特定领域或特定风格或类型的图像,能获得较好的出图效率 。

(2)微调模型下载:目前可下载基础模型的网站主要是:Models - Hugging Face

(3)微调模型安装:将下载好的模型文件放入对应的类别模型文件夹中即可完成安装。操作如下:按comamand+F组合键搜素“stable-diffusion-webui”,依次打开文件夹stable-diffusion-webui/ models/stable-diffusion中。

4.4融合基础模型

(1)了解融合模型:由于stable-diffusion的开放性,使得全球很多第三方也基于基础模型,训练出了很多优秀的,特别是在一些场景角色、动作等方向具有优秀表现力的大模型。代表性的就有C站上的CHECKPOINT TRAINED、CHECKPOINTMERGE模型。这些模型可能是对某个基础模型进行了优化,也可能是多个基础模型的特征做了融合,本质上依然属于基础模型范畴,一般文件大小在1G-7G左右,主要在生产图片中承担基础功能作用。(小贴士:CHECKPOINT模型由于自带AVE滤镜,简化了出图流程,所以,在C站也又越来越流行之势。)

(2)融合模型的下载:融合基础模型的下载主要集中于:civitai.com/?(或国内的https://aigccafe.com)。

(3)融合模型的安装:将下载好的模型文件放入对应的类别模型文件夹中即可完成安装。操作如下:按comamand+F组合键搜素“stable-diffusion-webui”,依次打开文件夹stable-diffusion-webui/ models/stable-diffusion中。

4.5辅助模型(小模型)

(1)了解辅助模型:与融合基础模型一样,很多第三方开发者还基于SD基础模型训练出来的一些特异性小模型,或者独立训练退出的模型,通常需要结合基础模型一起使用,典型的就有Lora模型、hypernetworks模型、T.I.Embeddings模型(简称Embeddings模型)、dreambooth四种,这些模型一般会在某些纹理、造型、质感、色彩等细节处理上具有一定的特异性。且体积相对于基础模型偏小,一般文件大小在1-300MB区间。

(2)辅助模型的下载:辅助模型的下载主要集中于civitai.com(或国内的https://aigccafe.com)。上Type标签标注的Lora、Embeddings、hypernetworks等Type,均为对应的模型类型。

小贴士:如上网不便,这里为你准备了46个精选lora模型,可直接下载:()

(3)辅助模型的安装:将下载好的模型文件放入对应的类别模型文件夹中即可完成安装。操作如下:按comamand+F组合键搜素“stable-diffusion-webui”,依次打开文件夹stable-diffusion-webui/ models/Lora中,其他模型以此类推,放入与类型一致的同名文件夹。

5.Stable diffusion插件及安装

5.1Stable diffusion代表性插件

Stable diffusion插件是广大开发者提供的基于优化Stable diffusion性能或提供使用便捷性、特异性优化等推出的附加代码集。插件非常多,以下以controlNet、cutoff举例介绍:

Controlnet是一个支持stable-diffusion-webui生成图像过程中,实现全图多项细节微调及对应实时效果预览的插件。比如低显存优化、进行各种小模型叠加,观察预处理过程等,是一款较强大的插件。腾讯开发的T2I Adapter也包含该插件类似的功能。

cutoff 是一个支持stable-diffusion-webui的插件,主要为了解决Stable Diffusion并不能完全理解颜色词和它修饰的物品之间的关系的问题,开启cutoff后,能提高出图的颜色准确性。

5.2插件安装

插件的安装有多种,以下列举三种:

(1)资料库搜索安装:打开操作界面的扩展——可用——加载自,选项框中取消“已安装”勾选,使用comamand+F组合键搜素对应的插件名,点击后面的“install”安装后,再点回到“设置”页面击“保存设置”、“重启WebUI”即可完成安装。

图11:资料库搜索安装;来源:Yongte

(2)在线安装:打开操作界面的扩展——可用——从网址安装,找到插件再“github”这类代码托管网站的安装地址,将完整网址输入地址栏,点击“安装”再点回到“设置”页面击“保存设置”、“重启WebUI”即可完成安装。

图12:网络搜索安装,以安装cutoff插件的截图;来源:Yongte

(3)下载手动安装:此外,也可以在“github”这类托管网站将插件下载下来,然后使用comamand+F组合键搜“stable-diffusion-webui”文件夹,找到extensions文件夹,将下载好的插件文件(或文件夹)放入其中,然后重新启动stable-diffusion-webui即可完成安装。

5.3插件启用

打开文生图页面,安装好的插件通常可在左下侧位置纵向排列显示(下图黄色框中显示已经安装的两个插件),部分插件需要启用才能生效,如cutoff(见下图紫色框中的设置)。

图13:插件安装后启用——以cutoff为例演示;来源:Yongte

6.详解:LORA模型的安装及使用

6.1什么是LORA模型?
LORA是一个基于基础模型开展特定训练而来的“小模型”。一般体积为几十或几百MB,通常要配合基础大模型(如1.5/2.0/2.1等)使用,通过干涉大模型,输出更具特性的图片结果。具体可在下载的C站(civitai.com)页面看到表示,如下图:Base Model就表示其是基于SD1.5系列大模型训练而来。LORA模型主要分为角色(中国脸、韩国脸、卡通脸等)、风格两类模型(如,姿势、发型、服装、动作)。

图14:Base Model即为该Lora是基于什么模型训练出来的;来源:Yongte

6.2 LORA模型的下载及存放/安装
打开civitai.com网站,选择对应的模型,一般Lora模型为“.safetensors格式”,这与基础模型的“.ckpt格式”有所区别。下载好后,使用command+F搜索“stable-diffusion-webui”,依次打开stable-diffusion-webui>models>lora文件夹,然后将下载好的文件放入lora文件夹中。这里提示一下,如果希望安装多个LORA模型后显示成略缩图形式(如下一步图16的选项卡),可以在下载时,连同示例图片一起下载,并将图片命名为模型同名,后缀为.png,将其放如文件夹中(如下图15)。此外,一般建议使用lora模型时,应尽量根据(Base Model)选择与之对应的基础模型,以获得更好的效果。当然Base Model为SD1.5的Lora模型,也可以与SD12.1-768的一同使用,但效果通常不理想。

图15:使Lora模型能显示直观图标的“同名图片存放”示例;来源:Yongte

我们回到stable-diffusion-webui主界面,可以看到,每个模型都有示例图,便于我们使用时候快速准确选用。

图16:Lora模型显示直观的“卡牌式”大图效果;来源:Yongte

助力:如国际网络穿越不便,可下载笔者准备的46个精选lora模型,涵盖建筑、产品、人物等多个分类(链接: pan.baidu.com/s/1ulkuqw 提取码: qiuz )

6.3设置LORA模型示例图大小
假如模型较多时,我们觉得示例图太大占用界面空间,还可以将其设置成小图。具体如下:依次点击“设置”-“附件网络”,在“附加网络视图”下选择对应的试图效果,然后点击保存,再重启WebUI,即可实现试图效果更新。

图17:Lora模型显示图的大小设置;来源:Yongte

6.4LORA模型的使用

具体使用时,点击“附加模型”按钮调出Lora模型,点选模型后,会在正向提示词中看到模型导入的字符。一般格式是<lora:name : 权重系数>,一般权重系数默认为1。通常,我们需要根据自己需要模型加入的比重,调整权重系数,比如<lora:cuteGirlMix4_v10_T_mix:0.3>,权重设置一般在0-1之间,当加入多个lora模型时,一般权重加起来不超过1。

这里借用B站UP主@筱旒的视频,直接跳转至本视频3:32分开始观看Lora使用的演示,讲的很细致。

7.详解:Controlnet插件的安装及使用

7.1Controlnet是什么?
Controlnet是一个支持stable-diffusion-webui生图过程中,实现全图多项细节微调及对应实时效果预览的插件。

7.2Controlnet插件的安装
打开扩展>从网址安装,然后将软件地址https://github.com/Mikubill/sd-webui-controlnet输入地址栏中。点击“安装”即可完成。

图18:Controlnet插件的网址安装示例;来源:Yongte


然后回到设置页面,依次点击“保存设置”,“重启WebUI”。

图19:Controlnet插件的配置及重启;来源:Yongte


7.3Controlnet插件的安装及使用
这里直接引用B站UP主@筱旒的视频,具体使用界面及示例操作从02:36分开始。

8.文生图案例演示

文生图是最常用的依靠提示词为主,再配合提示词,以及参数设置的图像生成方式。基本生成图像流程为:

第一步:选择基础模型。左上角第一行选择基础模型,以及对应的AVE滤镜(非必选)。

第二步:输入提示词。输入对应的正向提示词(希望强化或积极呈现的图片特征),负向提示词(不希望出现或不希望强化呈现的一些图片特征)。

第三步:设置参数。1.图片尺寸可以自定义大小,也可以按默认的尺寸输出,若显卡性能有限,而尺寸设置太大可能导致无法正常出图。2.图片批次一般按默认的1即可,图片数量指每次输出几张图,可自行设置。3.选择一种采样方法,不同的采样出来的图片效果不一样(具体对比可参见下文第“11”节),4.采样步数一般建议设置在20-30步即可。5.随机种子、提示词相关性可以按默认值即可。

第四步:其他设置。如果有其他插件,则进一步设置插件(如无,则跳过)。

下面我们简单举例,具体设置及出图见下图:

图20:简单的文生图示例;来源:Yongte


9.图生图案例演示

图生图即依托某一原始图片为蓝本,再配合提示词,以及参数设置的图像生成方式。基本生成图像流程为:

第一步:选择基础模型。左上角第一行选择基础模型,以及对应的AVE滤镜(非必选),

第二步:导入蓝本图片。选择“图生图”功能图标,在下方图片区域拖入原始蓝本图片(也可点击上传方式导入)。

第三步:输入提示词。输入对应的正向提示词(期望对蓝本图片进行积极修正,或强化呈现的图片特征),负向提示词(期望对蓝本图片进行不呈现或弱化呈现的图片特征)。

第四步:设置参数。1.图片尺寸可以自定义大小,也可以按默认的尺寸输出,若显卡性能有限,而尺寸设置太大可能导致无法正常出图。2.图片批次一般按默认的1即可,图片数量指每次输出几张图,可自行设置。3.选择一种采样方法,不同的采样出来的图片效果不一样(具体对比可参见下文第“11”节),4.采样步数一般建议设置在20-30步即可。5.随机种子、提示词相关性可以按默认值即可。

第五步:其他设置。如果有其他插件,则进一步设置插件(如无,则跳过)。

下面我们简单举例,具体设置及出图见下图:

图21:简单的图生图示例;来源:Yongte

10.mov2mov视频制作

借助mov2mov插件,stable-diffusion-webui也能生成剪短的动画/视频。这里推荐B站视频博主@闹闹不闹nowsmon的视频。

11.不同采样方法(sample)效果对比

11.1什么是采样方法?

AI绘图时,通常需要经过采样器,去除图像噪声,生成随机图像并重复几次这个过程得到干净的图像,采样器本质上是一种算法,如Karras采样器就源自Karras的论文,其运用了相关Karras的noise schedule的方法等。不同采样器则对应的是不同的采样方法,也会输出不同效果的图片,采样方法英文称之为(Sampler method,简称Sampler。stable-diffusion默认有20种采样方法可选择,每次出图我们都需要选一种采样方法,才能正常出图。

这里补充同样需要设置的一个参数:采样迭代步数(Steps),它是就是指希望采样器计算多少步数来出图,但并非越多越好,一般设置为20-30步即可,具体自己也可以去实践,调整大小来对比细节。

11.2不同采样方法的特点对比

不同的采样方法会产生不同的出图效果,下面引用部分作者做的对比。

(1)图片版的对比推荐豆瓣用户@squareyang的文章,有全部出图效果对比,及各种采样方式的讲解。

(2)视频版的对比推荐B站UP主@闹闹不闹nowsmon的视频,同样有出图效果对比,及各种采样方式的讲解。

11.3六个精选采样方法介绍

写实质佳:Euler(尤其人像写实最优)

质佳写实:DPM++3M SDE Exponential(兼顾风景、人像,需使用8左右低CFG值+30以上步数)

比较写实:DPM++ 2M SDE Heun Exponential(质感较好)

质优低效:DPM++2M SDE Exponential(画面柔和、背景干净、时间更长)

极高效率:UniPC(12步出高完成度图)

高效多变:DPM++2M Karras(速度快、质量OK、比较写实)

12.VAE选项及VAE模型下载?

12.1VAE是什么? VAE是一种人工神经网络结构自编码模型(由Diederik P. Kingma和Max Welling提出),在stable-diffusion-webui应用时,可简单理解为调整图片质感、效果、色彩的滤镜,其可以实现滤镜和微调功能。

12.2打开VAE的设置步骤:点击设置>用户界面,下拉至下图黄色框这一行,按提示建议,在点击空白处后的下拉选项中,分别选择中“sd model checkpoint”和“sd_vae”两项填入其中。

图22:VAE设置界面;来源:Yongte

点选好后,上拉页面至顶端,依次点击“保存设置”,重启“WebUI”。

图23:VAE设置保存界面;来源:Yongte

这样,刷新后首页即可显示VAE(如下图)。

图24:VAE选项在操作界面成功显示;来源:Yongte

12.3vae模型下载

vae模型的下载主要集中于civitai.com(或国内的https://aigccafe.com)。安装:按comamand+F组合键搜素“stable-diffusion-webui”,依次打开文件夹stable-diffusion-webui/ models/VAE,直接模型文件放入文件夹中即可。

13.图片放大插件Tiled VAE(低显存救星)

当我们电脑显存较低时,为提高出图效率,我们通常会设置较低的出图分辨率,假如我们需要获得成本放大的图,需要怎么做呢?Tiled VAE插件是一个好帮手。Tiled VAE插件放大图片的逻辑是将原图拆分成几个小单元区块,然后进行拼接融合重绘,最终得到一张高清大图。

13.1Tiled VAE插件安装

如果你有“网络代理”,可参照上述“5.2插件安装”的方法,通过搜索或在线安装。如果你没有,我这里为你准备了安装包,直接下载文件夹放入stable-diffusion-webui>extensions文件夹中,然后重新启动stable-diffusion-webui即可完成安装。

安装包地址:pan.quark.cn/s/2f5355c5

重启stable-diffusion-webui后,我们就会发现,页面出现了“Tiled Diffusion”和分块 “VAE”两个插件选项。

图25:Tiled VAE安装好后在操作界面成功显示;来源:Yongte


13.2Tiled VAE插件使用

首先使用文生图生成一张备用低分辨率图片,生成时图片大小按默认的“512X512”,然后点击右下角“图生图”将图片发送到图生图界面。

图26:生成一张原图;来源:Yongte

其他提示词和设置保持与“文生图”一致。勾选“Enable Tiled Diffusion”“Enable Tiled VAE”。放大算法推荐选择“R-ESRGAN 4x+”,图片设置可以直接设置有两种方法,以我原图512X512的尺寸为例,若希望放大3倍,第一种是设置需要放大的分辨率1536X1536不变,勾选下方的“保持输入图像尺寸”,第二种是不改变512x512的图像尺寸,不勾选下方的“保持输入图像尺寸”,再将下面的缩放系数改为“3”也可以。然后点击“生成图片”即可生成一张原图一致的放大图。若发现颜色偏灰,则可勾选最后一设置行中间的“Fast Encoder Color Fix”,再进行图片生成。

图27:设置 Tiled Diffusion和分块VAE;来源:Yongte
图28:右侧为生成的3倍高清图,点开即可查看原图;来源:Yongte


14.版本便捷更新

14.1直接覆盖就版本更新(优先推荐)

stable-diffusion-webui的覆盖更新非常简单,这里以默认覆盖更新至发布的最新版本为例(从v1.3.2更新至v1.5.1)。

第一步:直接在终端输入 “cd stable-diffusion-webui ”,回车,接着输入“git pull”即可开启自动更新。更新大约需30秒,完成显示如下图:

图29:更新完版本的提示;来源:Yongte

第二步:继续输入“./webui.sh”,启动新版本的stable-diffusion-webui。此时下移界面底部即可看到更新后的最新版本。

图30:启动后即可看到最新版本号;来源:Yongte


14.2新建独立更新

这里以“保留原v1.3.2,安装一个新版本v1.5.1举例。这样的好处是,可以对比两个版本的效果,最后再选择保留哪一个。

第一步:新建安装文件夹及安装引导标签:依次打开“访达”-“前往”(在顶部工具栏)-“个人”。新建一个“s dwebui1.5.1”的文件夹,选中文件夹,单击“右键”,打开“新建位于文件夹位置的终端标签页”。

图31.新建安装文件夹及安装引导标签

第二步:在上述“第一步”打开的终端界面中,输入以下安装代码,回车,然后等待安装完成。

git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git
图32.输入安装命令安装等待完成。

第三步:将旧版基础模型文件、LORA等常用的模型及扩展文件复制到新版安装目录下的对应文件夹中,方便使用。

依次打开“前往”(在顶部工具栏)-“个人”-“stable-diffusion-webui”-“models”文件夹中的“Stable-diffusion”文件夹和LORA中国的文件夹,选中“拷贝”,然后打开新安装目录:“访达”-“前往”(在顶部工具栏)-“个人”-“stable-diffusion-webui-1.5.1”-“models”下面的“stable-diffusion”“lora”文件夹,右键点击“粘贴”即完成。

第四步:启动软件。

在“终端”中输入:cd sdwebui1.5.1/stable-diffusion-webui 回车(注意这里做了新路径指向,防止与旧版本冲突),然后继续输入 ./webui.sh 回车,待“终端”程序运行完显示“Running on local URL: 127.0.0.1:7860” 时即可在浏览器输入“127.0.0.1:7860”打开操作界面。

小贴士:1.启动过程中如果提示“Couldn't clone Stable Diffusion Error code: 128”错误,主要是网络错误,可参考“Part5常见故障及帮助-1”解决。若对新版本不满意,可直接删除新的文件包,不影响原版本登陆。


15.模型训练

相对于生成图片的功能,stable-diffusion-webui的模型训练功能则相对更为少用一些。有兴趣的朋友,也可以自行尝试,通常训练模型需要比生成图片更多大的GPU算力。当算力有限时,我们可以训练诸如Lora这种体积较小的模型。限于篇幅,本文不对训练做详细介绍,这里就LORA模型和Embedding模型的训练推荐几个视频:

(1)Lora模型的训练

基础训练案例可参照B站UP主@闹闹不闹nowsmon的视频,链接如下:

Lora模型的训练的深度探讨(具体介绍各环节的细节),可参照B站UP主@Qige1937的视频,链接如下:

(2)Embedding模型的训练

可以参照B站UP主@AI次世代的视频,链接如下:

Part5.常见故障及帮助

1.无法成功安装stable-diffusion-webui/在线安装插件

由于安装stable-diffusion-webui或在线安装插件均需要下载较多安装资源,众所周知连接外域网络时常不稳定。如果安装进程中出现无法下载资源之类的提示情况,就需要通过"网络代理”、“网络机场"等服务商资源,保持与外域网络的通畅链接。这类资源bing等都可以找到,也可咨询身边从事海外业务、熟悉这块的朋友。

2.启动后加载模型文件错误,提示“Error:Expecting value: line 1 column 1 (char 0)”

很多使用“git pull”指令升级stable-diffusion-webui后,或者新安装v1.8.0等新版本,首次打开会出现加载模型文件错误,并提示“Error:Expecting value: line 1 column 1 (char 0)”解决办法:

方法1:关闭/退出网络代理,依次运行“cd stable-diffusion-webui ”  , “./webui.sh ”如不能解决,进行下一步。
方法2:每次都依次运行“cd stable-diffusion-webui ”  “./webui.sh --no-gradio-queue”启动程序,即便是
有网络代理也可以正常使用。如果还会有零星的提示,可能为缓存问题,可点击“模型刷新”按钮解决。

3.生成图像太慢?

这通常发生在电脑配置较低,或者出图像素过大时。解决方式依次为:

(1)如果有装Controlnet插件,可在下拉选项框中勾选“低显存优化”;

(2)检查是否开启了费算力的hirex.fix功能,去掉勾选;

(3)电脑同步运行的软件太多了,可以退出以释放算力和内存;

(4)适度调小图像分辨率减少GPU计算压力,如用默认的512*512像素,若担心分辨率太低,后续则可以在extra中放大图片。

4.出图文件发灰?

这通常出现在不自带VAE的基础模型出图时,需检查是否有选中AVE选项。此外,也可以更换自带AVE滤镜的模型,如check point模型等,使用也更为便捷。

5.无法正常出图,提示NansException: A tensor with all NaNs was produced in Unet.

这通常出现详细提示: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.
这一提示目前没有找非常权威的解释,网上一般解释为描述词精确度不足或显卡兼容问题,但笔者使用MI Pro芯片的Mac测试SD2.1-768和SD2.1-512两个模型后,发现只有SD2.1-768会出现这个提示,初步认为是该模型与MI显卡兼容性的关系更大,但却可以通过设置简单解决。

解决方法1:将交叉注意力层提升为float32。打开“设置”>“stable-diffusion”>,下拉至最底部,在“将交叉关注层向上转型到float32”前面的方框勾选。页面上拉直顶部,依次点击“保存设置”、“重启WebUI”,即可正常出图。

解决方法2:下载使用SD2.1-512版的基础模型。具体地址:stabilityai/stable-diffusion-2-1-base · Hugging Face

6.生成图片无法成功在出图界面显示

这通常是由于生成图尺寸过大,或者图片比例不适宜窗口显示、现存不足等因素所引起,表现为生成图片提示完成,但无法成功在出图界面显示(如下图)。

图33.出图无法正常在界面显示

解决:此时依次打开:“前往”(在顶部工具栏)-“个人”-“stable-diffusion-webui”-“outputs”-“txt2img-images”-“x年-x月-x日”文件夹,即可找到生成的图片。

7.安装提示:“致命错误”

提示“致命错误不是 git 仓库(或者任何父目录):.git” ,可通过执行初始化git仓库命令解决。输入代码

git init, 回车即可解决。

8.打开/安装提示“Couldn't clone Stable Diffusion ......Error code: 128”错误

解决:主要是代理网络连接问题,可以退出“终端”、代理网络,重启电脑,尝试更换网络代理节点,再尝试运行启动代码,即可解决。


9.提示:env: zsh: No such file or directory

解决:提示:env: zsh: No such file or directory ,输入 “sudo ln -s /opt/bin/zsh /bin/zsh” 输入密码回车,然后退出。


更新列表:
1.原文发布于2023年6月23日。于2023年8月6日进行了“Part5.常见故障及帮助”中“1、5、7”的优化,以及在“Part3.Mac OS系统电脑部署stable-diffusion-webui”中的第“4节”增加了SD-XL模型的更新。
2.2023年8月6日进行了目录更新。
3.2024年5月重要更新集合
3.1针对很多朋友反映安装homebrew出现“curl: (7) Failed to connect to raw.githubusercontent.com port 443 ”提示无法安装的问题,在见“Part3”-1安装章节做了解决方法补充。
3.2位升级或安装较新版本(如v1.8.0版)启动界面出现无法加载模型,提示“Error:Expecting value: line 1 column 1 (char 0)”的故障提供了完整解决方法,见“Part5”-2。
3.3.针对上网不便的朋友,在“Part3”章节、“Part4”-6的LORA章第、文章结尾更新区,均增加了基础模型、lora模型文件的下载链接。此处汇总更新全部下载链接(含9个基础模型、46个lora模型、2个VAE模型)链接如下: pan.baidu.com/s/1RIuUdd 提取码: rd4k
编辑于 2024-05-17 15:50・IP 属地广东