在最近这一波 AIGC 热中,文本生成领域ChatGPT 独领风骚,图片生成领域就要数Midjourney比较耀眼了。然而使用Midjourney有比较高的成本,Stable Diffusion便可以作为MJ的低成本替代方案,可以本地部署,在自己的电脑上便可以生成想要的精美AI图片。本文将重点教大家如何在本地部署一套SD模型。
前言
1. SD是什么?
Stable diffusion是一个基于Latent Diffusion Models(潜在扩散模型,LDMs)的文图生成(text-to-image)模型。
2. Civitai是什么?
Civitai专注于稳定扩散(Stable Diffusion)AI艺术模型。Civitai是一个让人们可以轻松分享和发现AI艺术创作资源的平台。平台用户可以上传和共享他们使用自己的数据训练的AI生成自定义模型,或者浏览和下载其他用户创建的模型。然后可以将这些模型与AI艺术软件一起使用,以生成独特的艺术作品。
打开网站后,上面都是生成AI图片的模型和生成的图片示例,如下图:
环境部署
第一步:
首先在github上搜索stable-diffusion可以看到返回的结果排在最上面的stable-diffusion-webui就是SD模型的web-ui版本。
第二步:
进入https://github.com/AUTOMATIC1111/stable-diffusion-webui页面,可以看到不同环境的安装步骤:
windows安装版本
linux版本
mac机器上的安装方式参考linux版本即可,按照图中命令步骤安装即可。
可能会遇到的问题
1.在安装过程中可能会出现"RuntimeError: Couldn't install gfpgan"以及“RuntimeError: Couldn't install XXX”等问题,这时候去github上下载XXX的代码然后手动安装即可。
解决方式可 以参考 :
https://blog.csdn.net/weixin\_40735291/article/details/129153398。[1]
2.在mac上安装可能会出现:
stable diffusion webui RuntimeError: "LayerNormKernelImpl" not implemented for 'Half'
解决办法:可通过在bat文件或sh文件中修改此命令解决:set COMMANDLINE_ARGS= --skip-torch-cuda-test --precision full --no-half
注意:安装完之后先不要运行,项目需要在启动阶段加载一个模型否则启动不了。
启动&拓展
我们去Civitai上找一下自己喜欢的模型(注意:需要支持本地布署),然后下载下来,导入到webui中。
首先,我选用的基础模型是 https://civitai.com/models/6424/chilloutmix ,这个模型擅长于生成亚洲女性特征的图片。
其次,选择一个自己顺眼的 LORA 训练模型。LoRA(Low-Rank Adaptation of Large Language Models)粗略地讲就是利用少量的图像来对 AI 进行额外学习训练,并在一定程度上控制结果。
流程上也比较简单,就是基于 ChilloutMix 的训练结果和你自己准备的数据集来进行二次训练,目的是最终输出的内容既具有原始 ChilloutMix 的能力,又更倾向你提供的数据的特征。
第一步:
chilloutmix模型(https://civitai.com/models/6424/chilloutmix):
在 ChilloutMix 页面右侧找到下载按钮,取得下载地址后在服务器上进行下载,模型大小 3.97GB 大概几分钟时间可以下载好,下载好的模型请放置在stable-diffusion-webui 项目下的 models/Stable-diffusion/ 目录下,并确认下载好的文件名结尾为 .ckpt。
第二步:
Lora模型(我选择的是:https://civitai.com/models/11722/iu):
注意:首选我们要确认这个模型是支持Local布署的:
同样地下载模型,并放置在 models/Lora/ 目录下,也请确认扩展名为 .safetensors。
模型都下载好后,就可以运行 webui.sh 启动软件了。启动起来的服务监听在 127.0.0.1,当你看到如下提示时就代表启动成功了:
Running on local URL: http://127.0.0.1:7860
启动webui后,在浏览器中输入http://127.0.0.1:7860/可打开sd ui的web界面。
导入插件
在浏览器中打开相应地址,切换到 Extensions 标签页面的 Install from URL,并输入 https://github.com/civitai/sd\_civitai\_extension 点击 Install 安装 CivitAI 提供的插件,安装成功后切换回 Installed 页面点击 Apply and restart UI 重新加载。
开始生成图片
第一步:确认左上角已经加载了 ChilloutMix 模型。
第二步:在右侧找到这个按钮,点击之后左侧会展开一些新的元素
第三步:在左侧展开的标签中点击 Lora,可以看到刚安装的模型,选择其中一个后在text2img栏会发现prompt 中自动多了一行代表在使用的模型的文字,在后面输入prompt即可。
注意:这里的prompt可以去官方页面的官方样例或回复中别人生成的样例中点击一张你喜欢的风格的图片,看看哪张图片是用什么关键词生成的,例如下面这张:
此处 Prompt 代表你想要生成的元素,而 Negative prompt 代表你想要避免出现的元素,我们就先复制这张图片的参数进行生成。
注意:因为使用的模型可能不同,复制时候要注意不要全复制了,从模型文件后面开始复制。
除了prompt之外,还有一些其他参数可以尝试调整,想要生成一张精美的图片,这可能需要一个要不断优化调整的过程。
掌握了这些技巧大家就可以生成自己喜欢的图片了,但是可能会发现其中有一个点很困难,就是初学者如何选择 prompt。AI 从业者会形象地将 prompt 和 negative prompt 称为「咒语」并将这种生成过程称为「咒语吟唱」。你的吟唱越精确,咒语细节越多,最终生成的图片就越符合你的想象。
可以访问 https://prompthero.com/ 在顶部菜单选择 Stable Diffusion,在搜索框中输入 girl 关键词(或者任何你想要的关键词),在搜索结果中找到自己喜欢的风格,就可以复制这张图片的 prompt 进行尝试了。类似的网站有很多大家可以自行找一下。当然在 CivitAI 上去找 prompt 也是很好的方式。
使用 ChatGPT 进行关键词生成也是很好的方式,特别是对英文表示很好的朋友会很有帮助,请 ChatGPT 帮助你去生成你想要的 prompt。
如果你有想要模仿风格的照片,也可以把这张照片传进 clip interrogator 中,这个 AI 会帮助你提取关键词。很多人都自己实现了 clip interrogator,你也可以用这个网站直接使用。
展示几张Civitai上生成的比较好的图片
最后
如果本地电脑 CPU/CPU 不给力,要么跑不起来,要么跑起来后生成巨慢。这时候可以选择用公有云GPU来布署。可以参考这篇文章:https://mp.weixin.qq.com/s/u7Dq5f5Ta2mWjBnqj_Fkcw
声明:本文主要的目的是讲解布署SD的技术知识,大家用于个人技术学习即可。如有人用于不合规场景中,皆与本文作者无关。
References
[1]
https://blog.csdn.net/weixin\_40735291/article/details/129153398。