锐单电子商城 , 一站式电子元器件采购平台!
  • 电话:400-990-0325

DD Course-01: 从0到1,在浏览器里运行 Disco Diffusion (全网最详细教程)

时间:2023-02-12 06:30:00 折合式卡连接器8px连接器cn

部分章节由团队小吴撰写

2cb05458d13b8050ee956130ca92e892.png

首先澄清一个常见的误解:

有人认为 Disco Diffusion (以下简称 DD) 是由 Google 事实上,它只是在开发中运行 Google 免费计算资源。

DD 是 2021 年上半年诞生的开源项目是一个年轻人 TTI 社区集体努力发展的成果。它仍然是机器学习-文字转图像生成领域的一个新生阶段的实验性应用模型,而非一个成熟的商业产品。所以 DD 不像常见的绘图或设计软件/App 有一个友好的界面。相反,使用一个 2600 行多代码的 ipynb 完成交互和操作的文件。

而我们使用 DD 修改和操作的过程 ipynb 文件的过程。

>> 点这里了解 Disco Diffusion 能画出什么

什么是 ipynb 文件?

.ipynb 是 Jupyter Notebook 所创建的文件格式,就像 .docx 是 Word 文件一样。

Jupyter Notebook 它是一个可以在浏览器中运行的交互式开发环境。设计的初衷是科学计算和数据科学的交互应用。编写和操作 Python 它是最常见的用法,可以支持 R 和 JavaScript 40 各种编程语言。人们喜欢用它来编写教程和代码,实时操作,运行数学方程和可视化。

它比传统的开发环境简单灵活得多,便于合作和共享(当然也有缺点,这里就不提了)。因此,它已经成为数据科学/机器学习社区中非常流行的工具。

Jupyter Notebook 是开源的。还有 Colab 就是 Google 二次开发和托管 Jupyter Notebook 服务。无需设置即可直接使用,也可免费使用 Google 提供的 GPU 等待计算资源。

Google 账号 和 Google Driver

(以下是如何注册设置账号的详细图文教程)

  • Colab 需注册/登陆后才能使用。所以你首先得开一个 Google(Gmail)账号

  • Google 该服务不能在中国直接使用,请自行解决。

  • 每个 Google 提供所有帐户 15G 的免费 Google Driver (云盘空间) DD 所需的模型将被下载到您身上 Driver 里

  • 使用 DD 时会用到的 initial_image (底图)需要上传到 Driver

  • 每次操作生成的作品图片也会自动保存 Driver 。预览不同进度的中间步骤结果(设置需要修改,然后介绍)

  • 在运行过程中,Colab 请求授权取得你 Driver 请允许访问权限。

关于 GPU

运行所有 DD 这类的 AI 创作工具需要消耗惊人的东西 GPU(显卡)计算资源。假设你想在自己的机器上部署本地部署DD,至少要有显存 10G,约等于 1080 ti 这个级别的 Nvidia 起始显卡(可生成) 1024*1024 尺寸作品)。假如你的显卡是 AMD 是的,或者希望在几年前的笔记本上试一试,我的建议是:想都别想。

  • 使用部署在 Colab 上的 DD,使用的 GPU 都是 Google 免费(财大气粗)

  • Colab notebook 虚拟机需要连接云并提供计算资源才能运行。免费账户最多有机会运行 12 小时,注意有机会

  • Colab notebook 如果空闲时间过长,将与虚拟机断开连接

每次你打开 Colab 开始运行,会随机抽一个 GPU (像开箱抽武器)。同一个。 IP 地址在一段时间内刷新页面,并分配到相同的显卡(该结论未得到充分验证)

从这五种武器中随机抽取:

  • NVIDIA? Tesla? K80 (普通大剑)

  • NVIDIA? Tesla? T4 (标准重剑)

  • NVIDIA? Tesla? P100 (银骑士的剑)

  • NVIDIA? Tesla? V100(深渊大剑)

  • NVIDIA? Tesla? A100(霜之悲伤)

如果你抽到 V记得截屏转发锦鲤。

如果你抽到 A记得和屏幕合影,把照片留给孙子纪念。

V100 VS A100

https://lambdalabs.com/blog/nvidia-a100-vs-v100-benchmarks/

Colab 的用量限制

因为是免费的,Colab 随机分配给你 GPU 不保证资源供应,也不会无限期供应,用量限额会随用户的整体消耗而变化。

Google 由于整个系统的消耗状况变化迅速,不可预测,因此没有公布免费用户的日用量限额。

长时间占着 Notebook 操作计算,或 GPU 资源消耗量大的用户更有可能遇到消费限额,导致您暂时无法使用 GPU。但是这个限制会在一天后重置,所以当你看到下面的弹出提示,第二天再来,不用担心拿出钱包买 Pro。

Colab 不希望用户拥有有限的资源,所以请关闭浏览器 Colab 不跑图时避免选择标签页 GPU。这将减少你遇到的限量。

关于付款 Colab Pro 服务

每月支付折合 74 可升级为人民币 Pro 服务。升级后 Colab 承诺提供

  • 更快的GPU——这意味着图片的等待时间会缩短

  • 运行时间更长——意味着每天可以有更多 notebook 运行时间长,闲置超时断开服务频率会更低)

  • 更大的存储空间——但不是 Google Driver 如果试用了四五个模型不通用的空间TTI 工具,15 G 默认存储空间很容易填满。 Google Driver 需要额外支付。记得清理完毕后不需要的文件,清空回收站。清空后回收的存储空间需要一段时间才能供应 Colab 使用

我在 Colab 里干什么?

你在 DD 里修改的 Prompt、参数 这些操作相当于修改这些操作 ipynb 里面的代码。所以,是的,你用的 DD 这个过程相当于你在改变 Pyton 代码。

同学,你在写码了哦 ~~ 

但不用担心,你不会改坏它,每次刷新这个页面,这个ipynb 文件都会重置为原始状态,除非你把它另存为你自己的版本。

如果你还有一些额外的兴趣多学习一点 Python,可以访问 XUE.cn。是一个我团队之前开发的自学编程平台,基于Jupyter魔改。有很多 Python 自学课程和习题。浏览器里学写码,你可以从下面这本自学课程开始:

https://xue.cn/hub/app/books/1


下面是在 Colab 里运行 DD 的图文教程,从 0 到 1。

Colab 支持大多数主流浏览器,并且在Chrome、Firefox 和 Safari 的最新版本上进行了最全面的测试。但我们还是推荐使用谷歌浏览器 Chrome,下载地址:

https://www.google.com/intl/zh-CN/chrome/

设置浏览器语言

如果已有Google 账号,直接跳到下一主题。

注册前,如果浏览器语言是中文,需要将浏览器设置为纯英文,注册完再改回中文,不然手机验证时会有如下图提示 This phone number cannot be used for verification.(该手机号不能用于验证):

点击浏览器右上角三个小圆点,点击设置:

  1. 点击 高级 (Advanced),语言 (Language),添加语言 (Add language)

  2. 在弹窗里拖拽滚动条,将 英语 添加进来。也可以在弹窗右上角输入 EN 快速搜索到 英语。 

  3. 点击 英语 这一行右端的 三个点,从设置框里 勾选 以这种语言显示 Google Chrome

  4. 点击 中文 这一行右端的三个点,从设置框里 移除(中文)。

  5. 点击 重新启动按钮 重启浏览器。

注册完,同样的操作可将中文添加进来。

下面是英文界面的引导(等你完成账号注册后,再视需求,改回为中文界面)

Google 账号注册

开始注册。浏览器打开谷歌登录页:

https://accounts.google.com/signin

点击创建账号,为自己创建:

如下图,填写完用户、账号名,密码,点 Next:

国家选择中国,输入你的手机号,点 Next:

输入手机收到的 6 为数验证码,点验证 Verify:

输入生日(年龄不能太小,否则会拒绝注册),选择性别:

点跳过 Skip:

拉到最下面,点同意 I agree:

账号就注册成功啦。准备好,进入 Disco Diffusion 的魔法世界。


第一次运行 Colab notebook

点击打开 Disco Diffusion v5.2 的 colab notebook:

https://colab.research.google.com/github/alembics/disco-diffusion/blob/main/Disco_Diffusion.ipynb


https://colab.research.google.com/drive/10HUmA5laY1e1q7sYGg19Ys2lFM60M_T5(这个是最新版本,加了对 ViT/L-14@336px 模型的支持和对称优化。但 ViT/L-14@336px 需要抽到非常好的 GPU 资源才能勾选)


从来没有使用过 Notebook 的同学看见这个页面可能有点心慌,Don’t panic!非常简单。我做了一个极简的 ipynb 的文件用来演示结构,一看就明白。

Tip:如果无意间点开了显示所有代码,将鼠标放代码上,右键选择 [表单]--[隐藏代码],将代码隐藏:


这个 DD 的 ipynb 分两部分, “前言” 和 “设置”( 5 步)

第一部分 Credits & Changelog + Tutorial 

包含了 Disco Diffusion 的简短介绍,项目历史,贡献者及其贡献,更新日志,授权协议和教程。

这里的文档已经严重过时。完全可以不看,所以不需要打开 “Tutorial” 前面的折叠箭头。

跟当前版本匹配的文档需要查看非官方指南:Zippy's Disco Diffusion Cheatsheet

https://docs.google.com/document/d/1l8s7uS2dGqjztYSjPpzlmXLjl5PM3IGkRWI3IiCuK7g/edit

这个文档我已经取得了作者 Zippy 的翻译授权,跟团队里的小吴同学一起翻译了完整版本,工作接近尾声,这周就会分章节发布。

授权协议使用 MIT License,说明 DD 是开源,免费,可商用的(但是,使用这个工具生成的艺术品,如果商用,可能需要注意避免使用风格特别明显的艺术家的风格,有侵权风险)

第二部分 包含了 DD 的 5 步设置新手也不需要动里面的大部分设置

1. Set Up,运行模型的资源准备工作。包括:

    • 检查 GPU 状态(这里可以看到你抽到了什么GPU)

    • 连接谷歌云盘

    • 安装、配置依赖项

    • 定义功能函数等

Set up 的准备工作会需要你在多个弹窗里点确认。一律允许就可以。只要没有卡住不动 或 出现红色 就算运行通过。

2. Diffusion and CLIP model settings,图片生成和Clip 引导模型的设置。(在这可以选择和配置模型。暂时不用管)

3. Settings,设置要生成的图像/动画的参数。包括:

    • 基础设置(重要)

    • 动画设置

    • 高级设置

    • 提词 Prompts 修改(重要)

4. Diffuse!,运行工具正式生成图像。(这里你能实时看到图片生成过程)

5. Create the video,运行工具正式生成视频。(暂时我们不用看这块)

使用默认设置生成第一张图片

点击菜单栏里的 代码执行程序(Runtime),点击 全部运行(Run all)

如果你没找到菜单栏,请复习上面 极简 ipynb demo 截图说明。

点击 仍然运行

确定:(用的不是你本地的内存,不要怕)

点击 连接到 Google 云端硬盘

弹出对话框选择你想授权给 Colab 的 Google Driver 账号:

下拉弹窗的滚动条,点击底部的 允许:

多点耐心,第一次运行 DD 会下载多达 3G 的模型到你的 Google driver 里。但以后运行都不再需要等下载了。。

单元格的运行状态是你需要关注的。

  • 长得像播放器图标的运行按钮前面有绿色对勾代表已运行通过

  • 中间变方块的运行按钮代表正在运行中。点击它可以中止运行

  • 运行按钮变成红色意味着遇到问题。需要查看出错信息

  • 点击变成红色的运行按钮尝试再次运行

常见出错可能包括  

  • Google Driver 空间不足

  • 跟云端提供计算资源的虚拟机的连接终端

  • 超过本日免费试用限额

运行过程中你可以随时点击菜单里的 代码执行程序(Runtime),中断执行(interrupt execution),来结束程序运行。

但第一次使用 DD 建议不要中止,让程序自动执行完成初始化。

等候的过程中,你可以在目录里点击1.1 Check GPU Status,看看自己是不是抽到了史诗级 GPU。图中显示我们这次抽到了 标准重剑 T4:


在目录里点击 3. Settings 找到 Prompts ,有一个 DD 默认写好的 Prompt :

"A beautiful painting of a singular lighthouse, shining its light across a tumultuous sea of blood by greg rutkowski and thomas kinkade, Trending on artstation", "yellow color scheme"

"一幅美丽的画,画的是一座奇特的灯塔在,光芒照耀着一片动荡的血海,参考艺术家 Greg Rutkowski 和 Thomas Kinkade,Artstation 流行画风, 黄色配色。"

第一次运行我们不修改 Prompt,让这个 ipynb 完整执行。

一切顺利的话,你将会在 4. Diffuse ! 的单元格里看到图片正在生成。

初始是一片灰色的噪点,色彩和形状慢慢从噪点里浮现出来。你的第一张 AI 绘画作品正在穿越神经网络,前来和你相遇。

图片上面的 batches 进度条:代表这个 Prompt 会一次生成  50 张,目前正在生成第一张。什么人想要 50 张灯塔???

而当前正在生成这张作品的进度条在图片底部。如下图底部, 

  • 2%:当前进度。

  • 4/240:已经运行完 240 步里的前 4 步。 

  • [00:16<16:15]: 已耗时16 秒,还需要 16 分 15 秒出结果。

完成后,每个人都会收获一张跟下图风格类似的作品,但每个人每次执行,结果都会有所不同,是独一无二的。

此后你也要经常意识到,跟你打交道的是概率模型,没有什么确定的,意外和随机是 DD 不可分离的属性。

把灯塔留作纪念吧,你不会再想生成它了。

再往前一步

如果你想再来一张别的, 先点击下面截图 Do the Run ! 前面的运行按钮,让它中止。

顺便把 n_batches:50 改为 1 或者2,这样每个 Prompt 就只会出 1 或 2 张图。

修改 prompt:试试下面的

a detailed matte painting of blue ocean, waves, a black whale flying in the sky, by Caspar David Friedrich, Trending on artstation

这段文字替换掉原来的 prompt。注意要保留 两端的 英文双引号。如果 prompt 在一行里包含了太长的文本会报错。需要如下拆成 2 行,用英文逗号隔开两组双引号包围的文本。

"the first line",

"the second line"

注意是替换掉 0: ["_________"],  而不是  100: ["________"]。

100 的给动画设置用的。你可以再 “100” 前面加一个 # 注释掉它。眼不见心不烦。

是的,你又在写码了。

改完后要先运行一次 Prompt 这个单元格,你的修改后才能生效。

运行 Do the RUN! ,开始生成图片。


回收作品文件

所有生成完的图片都保留在你的 Google Driver。当然你也可以页面上直接图片右键另存为。下面网址访问:

https://drive.google.com/ 

按图示路径找到 TimeToDisco 目录。

如果你不喜欢DD,想清理掉占空间的模型文件,请按图示路径找到 models 目录,删除,清空回收桶。

祝玩得愉快

——————

下一篇教程讲 如何有效构建 Prompt

关于 Colab:https://research.google.com/colaboratory/faq.html?hl=zh-CN

锐单商城拥有海量元器件数据手册IC替代型号,打造电子元器件IC百科大全!

相关文章