前言 & Stable Diffusion 简介
Stable Diffusion 是 Stability AI 推出的一个基于深度学习技术的文字生成图片
AI模型,而Stable Diffusion Web UI 是一个强大好用的 Stable Diffusion Web 应用,我们可以使用它来操作 Stable Diffusion 生成图片,以下我们简称sd web。
Stable Diffusion运行起来需要有一块强大的GPU和较大的运行内存支撑,苦于手头上的mbp配置,思来想去发现可以利用google colab的线上环境去搭建一个sd web云端服务。
什么是 Google Colab
Google Colab 是 Google Research 团队开发的一款产品,它是一种基于浏览器的托管式 Jupyter 笔记本服务,任何人都可以通过浏览器编写和执行 Python 代码。如果我们使用 Google Colab则不需要在本地安装任何环境,只需打开浏览器即可开始编写代码,非常方便。
Colab 提供免费版、按量付费版和专业版,本次教程中所用的免费版资源(compute units)是有限的,但对于大多数人来说已经足够了。
必备五要素:
- 稳定访问外网的服务器【用办公网可以达成需求】
- 拥有Google账号且拥有Google云端硬盘相关服务【根据脚本内需求预留好相关空间】
- 在huggingface上注册账号/登录并同意相关条款条例
- 在Civitai上注册账号/登录且同意相关条款条例
- 一颗在ai绘画探索的好奇心
部署教程
Stable Diffusion Web UI Colab脚本地址 ↓
保持脚本为云端副本
首先打开我们的脚本 你所需要做的第一步就是在自己的云端硬盘中保存一份脚本副本,且后续我们的操作都只在副本上进行,确保是搭建自己的云端sd Web服务。
连接到colab云端机器
在我们colab界面右上方头像下面一栏可以看到连接的字样,点击后即可连接到云端服务。
成功分配-初始化-连接后,会展示已经连接的相关状态:
挂载云端硬盘
本脚本推荐一步一步执行,方便过程中因网络等原因下载文件出错等删文件重头开始。
这时候我们点击第一步挂载我们的google云盘,此时会弹出相应弹窗,我们确认后点选同意并绑定好自己的google云盘。
每个脚本步骤执行完毕都会输出“done”的相关提示字样,这时候我们能看到我们的google云盘已经挂载好了,且提供分配给我们的是一块T4显卡,16g的内存。
相关的文件夹也根据我们的文件名创建好可以在google云盘文件夹或者colab左侧边栏的文件目录内找到。
初始化线上的临时运行环境
我们每次打开脚本的时候都需要运行一次这个初始化步骤,主要是安装一些基础的依赖。
下载Stable Diffusion Web UI的相关文件以及主模型到google云盘
这一步我们主要是下载一些sd项目本身相关的文件,最近正流行Chilloutmix相关主模型来生成各种漂亮的小姐姐,于是我们也选用来体验看看。后续还可以选择性再安装一些主模型来跑不同的画风(二次元、纯写实)等,但需要确保至少有一个主模型,否则sd web UI 将会因为模型缺失而报错。
本教程尽量都会把用到的大文件容量标注在脚本中,这边需要确保我们的google云盘留有足够的储存空间,否则如果空间不够可能会导致下载到不完全的模型文件导致报错的情况。
我们随时可以在自己的google云盘内看到剩余的存储空间,一般在没有购买更多存储空间的情况下,每个人最多有15g来分配,能看到我在安装完一些模型后用了大概10g左右。
安装插件以及添加更多的模型
下个步骤就是安装一些相应的插件与主模型/小模型(lora模型等),这边的相关插件感觉都挺有用的,推荐全部安装。
其中的汉化包插件,需要等web UI运行后,在setting → user interface中的localization配置zh_CN,并点击上面的Save Setting按钮,之后暂停我们的运行脚本并重新运行webUI【由于colab的原因目前在sd的web ui内保存后也需要重新启动服务才能让设置生效 本文中涉及到重新启动服务的相关说明也都指的是脚本中第五步的运行sd-web-ui的暂停后再启动】。
本脚本做了插件整合,能够让大家一次性体验到最近大热门的loro模型以及control net插件等,但具体各个插件的教程/使用方法由于篇幅问题这里暂且不展开,需要大家自行搜索体验。
截止23/04/06 colab线上版本会有gradio报错 建议回退sd老版本
详情可参考:https://github.com/AUTOMATIC1111/stable-diffusion-webui/discussions/9044
运行Sd Web UI,万事俱备只欠东风!
这个步骤的脚本运行成功后,会输出一条gradio.app结尾的地址,点击就能访问我们的云端stable diffusion服务了。
Q&A
Q:为什么进去后我的主模型没有加载?勾选后发现也选不上还是展示空白?
A: 我们的sd web UI 需要一定的时间来加载主模型的权重,当我们不管是首次进入还是切换主模型时由于模型过大,没有办法达到一个秒切的效果而需要等后台加载完模型相关权重后,才会显示出对应的模型名字,还需要大家耐心等待一下,等此处显示出主模型名称后再进行后续的操作。
Q: 如何下载新的模型呢?
A: 当我们把脚本保存为自己的副本后就可以自行修改了,有一定编程基础的同学可以点击每个步骤中的显示代码来查看这个步骤的源代码,然后根据要下载的模型的下载地址使用命令行命令下载到对应的文件夹中。
同时由于我们的sd文件主要是通过挂载google云盘来操作的,我们也可以直接通过google云盘来管理我们的sd web端,上传相应的模型到云盘目录并重启我们的运行脚本就可以看到新模型加载了。
Q: 发现启动sd-web-ui时有模型加载报错该如何处理?
A: 在云端/本地部署的过程中可能会出现模型文件请求404或者下载到一半中断或者文件不够的情况,这边可以去google云盘相应的目录中去手动删除文件再回来勾选下载模型即可。或者直接删除掉sd的主文件夹【并清空回收站】,从本教程第一步重新部署即可。
Q: 在使用过程中发现colab输出报错的情况,同时web端已经卡住不响应,该如何进行下一步呢?
A: 目前我们的sd web ui还在发展期的阶段,其中会存在大量的issue暂时未解决,多为原项目的问题,本教程是基于云端部署的角度去做的相应教程,暂无法解决原有项目的问题所以会存在一些不稳定性。如果colab命令行有相关报错,还是需要自行debug处理,但更多时候我们可能只需要遇事不决,一键重启服务就解决啦!这边附上原项目的github地址: https://github.com/AUTOMATIC1111/stable-diffusion-webui
Q: posex插件加载不出来是什么情况呢?
A:请确保按照图示,【顺序】勾选,则会出现posex界面,更详细的使用教程可以查看 https://www.bilibili.com/video/BV13j411u7SZ
Q: 如何查看或者保存已生成的图片?
A:在初始设置中是没有设置图片的保存路径的,可以暂时使用图库浏览器产看或者保存图片。但更推荐去设置中设置好图片保存的地址为云盘地址【请先在google云盘相对路径下创建好相应的文件夹】,保存设置后重启web UI服务后即可生效,之后就可以在设置好的云盘目录内查看到生成的图片了,如下图是一个路径例子。
模型/插件相关放置路径
我们在colab命令行中一般挂载sd-web项目路径为:
/content/drive/MyDrive/【你设定的文件夹名称】/stable-diffusion-webui
以上目录在google云盘中直接查看会表现为:
【你设定的文件夹名称】/stable-diffusion-webui
而stable diffusion web ui的主模型又称底模型一般默认放置在:
stable-diffusion-webui/models/Stable-diffusion
【根据模型可以放不同的位置,如lora可以放在lora目标文件夹下】
sd web ui的插件一般都放置在:
stable-diffusion-webui/extensions/
若插件中需要引入模型使用,则需要把模型放入插件的文件夹内。
比如 更多模型 插件中用了lora,则需要放入:
stable-diffusion-webui/extensions/sd-webui-additional-networks/models/lora
或ControlNet相关模型则需要放入到:
stable-diffusion-webui/extensions/sd-webui-controlnet/models/
注意事项
在使用colab部署StableDiffusion WebUI 时,需要注意以下几点:
- colab的session有时限,长时间不使用会自动断开连接,需要我们重新连接服务并再次运行。
- colab的硬件资源有限,运行较大的模型可能会出现性能瓶颈问题。
- colab的网络环境可能不稳定,遇事不决,重新启动sd服务!
心得/分享感悟
AI技术在近年来的快速发展中,AI绘画已经成为一个备受关注的领域。不仅如此,AI在整个AIGC方向的发展与运用也都在经历着一个非常快速的成长期,每一周甚至每一天都可能有新的技术涌现,让我们有更多的机会去探索、学习和研究。
本教程是在我个人探索StableDiffusion Web UI的过程中所总结的一些经验和心得,希望可以对广大的AI爱好者和从业者有所帮助。同时,我们也欢迎各位有兴趣的同学一起交流、研究,共同推动AI技术的发展。
最后放上一张我画的漂亮妹子哈哈