云端Colab部署Stable Diffusion WebUI

前言

对于想要体验 AI 绘图的朋友们来说，常常由于安装步骤繁琐复杂，电脑配置不够高等问题而退却☹️
恰恰，谷歌提供了 Colab 服务，使得我们可以在其上面执行 Stable Diffusion WebUI，体验 AI 绘图的乐趣🥳

Colaboratory 简称 “Colab”，是 Google Research 团队开发的一款产品。 在 Colab 中，任何人都可以通过浏览器编写和执行任意 Python 代码。 它尤其适合机器学习、数据分析和教育目的。 从技术上来说，Colab 是一种托管式 Jupyter 笔记本服务。只需能访问谷歌，以及拥有谷歌账号，就可直接使用，还能免费使用 GPU/CPU 计算资源。

Stable diffusion web UI 是一个基于人工智能的图像生成工具，它使用了一种称为 "stable diffusion" 的算法模型进行图像生成。用户可以通过上传自己的图片或使用预设的图片，在稳定扩散网络中应用不同的操作和参数来生成新的图像。Stable diffusion web UI 提供了易于使用的 Web 界面，用户可以在上面轻松调整参数和浏览生成的图像，同时还可以导出生成的图像。这个工具可以用于图像生成、艺术创作、图像处理等多种领域。

总的来说，我们可以利用 Colab 来白嫖使用 Stable Diffusion WebUI，白嫖一时爽一直白嫖一直爽😉

关于云端部署

请确认有可以魔法上网的工具，工具用于谷歌 colab 的机器学习，属于合法范畴。

优势：不需要显卡，手机也能用，且云端运行速度快（提供 12G 内存、15G 显卡）。

由于人数较多，谷歌 colab 每个号的时间大概为 4-6 小时左右，多弄几个号在云盘里主号的 json 给其他号添加编辑权限就实现了所有号共用

笔记本为单线程，没法同时执行两个任务

晚高峰人数较多，提示连接出错或断线为正常情况，可以尝试使用 ngrok 管道进行加速。

可以关联 Google 云盘，图片可以选择输出在云盘的 outputs 文件夹里

如果以后有一天 colab 出现类似以下提示警告：
You may be executing code that is disallowed which may terminate your runtime without warning. Colab prioritizes interactive notebook compute and disallows some types of usage when executing code without compute units as outlined in the FAQ.

请不要点仍然执行！！！

关于 Stable-Diffusion-Web-UI

谷歌 colab 运行环境为 12G 内存 15G 显存，大显存小内存所以推荐使用半精度进行计算

如果图片信息读取图片 “不是一张 stable diffusion 图片” 说明作者上传的图片经过了压缩处理，请选择其他图片或者复制文字与种子手动输入

采样方法推荐 DDIM 与 DPM++ 2M 高清放大推荐 潜变量 (bicubic) 与潜变量最邻近

生成图的速度与执行代码的速度与网速无关，你就算断网几分钟他也在执行

如果要使用手机进行局部绘图请使用 Edge 浏览器，谷歌浏览器不兼容

手机操作的可以选择 “anapnoe”

笔记

目前流行的📒是：https://github.com/camenduru/stable-diffusion-webui-colab/tree/community
可以点击 “Readme Page” 查看每个📒的说明，选择想要的，点击 “Open In Colab” 图标去执行

作者修改版：ennnnny/sd_colab
此版是基于s4afa451dgf415f/colab_stable_diffusion的基础上做了些修改，修改内容如下（2023-05-13）：

新增默认插件：infinite-image-browsing，一款图片浏览器

新增默认插件：segment-anything，目前较🔥的语义分割、抠图等工具

新增默认插件：Civitai-Helper，管理 model 很方便

新增默认插件：ui 作者的 rembg，抠图方便

新增可选主题插件：kitchen-theme，比原版看起来更酷炫些

附加可能有用的工具：保持手机端运行（？）

附加可能有用的工具：压缩打包 outputs 目录，然后下载

附加可能有用的工具：XTerm Terminal（命令行）

玄学 - Colab 防掉线措施

有时候掉线是因为网络不稳定，有时候就是谷歌的验证机制了 听说可以通过自动点击来减少掉线频率，这时候可以利用 javascript 的语法，类似与不间断的点击得到以下代码 在 Google colab 的按 F12，点击网页的控制台，粘贴如下代码：

Copy
function ClickConnect(){
console.log("Working");
document.querySelector("colab-toolbar-button#connect").click();
}
setInterval(ClickConnect,60000)