在 Disco Diffusion 官方说明的第一段,其对自身是这样定义: AI Image generating technique called CLIP-Guided Diffusion。DD 是通过 CLIP 来进行图文匹配,引导 AI 进行图像生成的技术,通过 Diffusion 持续去噪去生成图像的,而在整个过程中,CLIP 不断地评估图像和文本之间的距离,来为生成图像的整体方向进行指导,最终就体现为“输入文字-生成图画”,因此我们便可以通过文字来引导AI生成艺术风格图片。

启动矩池云快速使用Disco Diffusion

矩池云已经将 Disco Diffusion 镜像搭建在平台上,可以直接使用,无需再进行环境搭建,主机市场中多种 GPU 可供选择,具体流程为 主机市场-选择GPU-租用-搜索&点击Disco,点击“下单”即可。

机器显示为“运行中”之后,点击JupyterLab链接

进入后找到 disco-diffusion文件夹

双击 Disco_Diffusion 文件,即可打开项目

默认文字输入生成图像

更改图像输出路径 Tips

在开始训练前,可以将此处 outDirPath 处的 ‘{root_path}/out_images’ 代码进行调整,调整到矩池云网盘中即可,比如如下就改为了 /mnt/DD_result/out_images 这样,终止训练以后,图片会直接存在矩池云网盘中,管理起来更轻松~

点击菜单栏 Run ,选择 Run All Cells ,等待依次等待模型加载完成,即可默认的生成图像

默认状态生成图像如下

修改文字输入生成图像

3. Prompts 此处,可以对引号内容进行文字修改

图像输出文件夹

如果没有操作刚才的“更改图像输出路径 Tips”,最后状态的图像将自动保存在文件夹 images_out 中,双击 images_out 就可以看到训练好的图片。

当然如果训练结束后、关闭机器前,想把最终都输出结果保存到矩池云网盘,可以在 Jupyterlab 里新建一个Terminal

然后将下面指令复制粘贴,回车执行。

mv /disco-diffusion/images_out/TimeToDisco /mnt/DD_result/castle



这代表着将 DD 输出图像的文件夹 /disco-diffusion/images_out/TimeToDisco,保存到矩池云网盘 /mnt/DD_result/castle 路径下(这个是我自己创立的,如果是其他路径进行修改即可)。

那么我们就可以在网页端 “我的网盘” 中找到这个文件夹,展示如下

如果开通了 矩池云客户端网盘 (可以联系矩池云小助手开通),就可以轻松在本地计算机上进行访问,点击图片旁边的下载图标,即可存在本地。

如果需要更改默认下载到本地的文件夹,则可以点击左下角的设置图标,修改保存的路径。

以上是矩池云网盘 Mac版 界面,目前矩池云网盘客户端支持 Windows 和 Mac ,如果有需要可以联系矩池云微信小助手,仅需发送你的矩池云账号,即可申请开通。

进阶使用 Disco Diffusion : 输入文字

在修改描述语部分,我们在0后面的语句进行修改即可,100后面的内容可以维持原貌。

默认模式下的描述语如下:

["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."]

我们看到,句法结构可以总结为:图像种类 + 主题描述 + 艺术家描述 + 风格调整。

输入描述语(Prompts)的时候,图像种类、主题描述、艺术家描述和风格保持在同一个范畴中,AI 对于某位指定艺术家和该位艺术家之外的风格进行组合的情况,会产生迷惑。在实践中,我们发现使用艺术家风格对AI的构图、颜色的调整非常有效,当然这也尽显于那些纳入 DD 本身。

例如,在设置 Prompts 为 "A beautiful painting of castle on the cloud by Studio Ghibli, Trending on artstation." 出图情况为,云和城堡都为宫崎骏工作室出品的作品中常见的镜像,输入内容相对具有一致性,因此在图像的风格特色比较明显。

图像类型(Type/Subject)

"A beautiful painting of",是对图像进行描述,一定程度上,这一描述也会影响到图像的风格。譬如 sketch、pencil drawing, matte painting, watercolor painting, Oil painting, Portrait photography, Portrait,都是可以拓展尝试的关键词,其对应的绘画风格。

主题描述(Main idea)

"a singular lighthouse, shining its light across a tumultuous sea of blood",是对画面细节的描述。画面描述也是所有描述中需要费心思研究的部分,会因为在这一部分中,决定了画面中出现的形象。

在描述中,尽量使用确切的语句,比如确定的个数(比如写出具体的数字而不是 many)、形象的词而不是概述的词,同时不使用否定词,这一部分再在上手输入实践的时候,会有更深刻的体会。

艺术家(Artist)

"by greg rutkowski and thomas kinkade"是对艺术家的描述,可以包含一名或多名艺术家的风格。比如尝试奇幻的景色风格,可以用 Tyler Edlin, Mark Simonetti 的风格;科幻类,可以尝试Jim Burns, John Harris, Dean Ellis, H.R. Giger 的风格;动画类可以尝试 Studio Ghibli, Makoto Shinkai 的风格。

以下为社区中的尝试过的一些知名艺术家的风格,可以作为参考。

Hiroshi Yoshida, Max Ernst, Paul Signac, Salvador Dali, James Gurney, Thomas Kinkade, Ivan Aivazovsky, Italo Calvino, Norman Rockwell, Albert Bierstadt, Giorgio de Chirico, Rene Magritte, Ross Tran, Marc Simonetti, John Harris, Hilma af Klint, George Inness, Pablo Picasso, William Blake, Wassily i Kandinsky, Peter Mohrbacher, Greg Rutkowski, Paul Signac, Steven Belledin, Studio Ghibli, John Singer Sargent, Alfons Mucha, Gustav Klimt, John William Waterhouse, Zdzisław Beksiński, Edmund Dulac, Arthur Rackham, Ivan Bilibin, Gerald Brom

风格调整

"yellow color scheme" 是对画面颜色风格的描述;参考渲染方式为 Trending on artstation(专业CG艺术家社区,被称作A站)。参考的种类/渲染方式可以根据创作者的设想,进行设定。4k resolution, 8k resolution, Unsplash photo contest winner, Deviantart, pixelart 3d art, Digital art, Blender, Octane Render, Unreal engine, , Acrylic painting, Shot on film 35mm lens, Character design, Cgsociety, Mandelbulb 3D, Trending on Flickr, Vaporwave 等等。

值得注意的是,这里有提及到 4K resolution / 8K resolusion,这并不代表着图片将渲染为对应的尺寸,尺寸还需要在 Setting 中进行设置,这里指的是 AI 将吸取哪些 4K / 8K 分辨率的图像中所具备的特征。

输入方式对输出画面的影响

输入的结构和输出的图像有较大关系,在保持其他设置100% (包括随机变量)一致的情况下,用以下Prompts进行输入

"a magic realism painting by Gediminas Pranckevicius depicting an abandoned building in a field of flowers landscape, vibrant, cinematic lighting"

其结果为:

保持同样 Prompts 内容,仅仅改变断句方式,输入

"a magic realism painting by Gediminas Pranckevicius depicting an abandoned building in a field of flowers landscape", "vibrant cinematic lighting"

其结果为:

输入不同句式会对构图产生比较大的影响,这应当是 DD 模型的自主性比较强造成的。在语义方面,正如先前所说到,CLIP-Guided,意味着输入文字的含义如果存在误读的可能,那么 CLIP 也很有可能会对其进行误读,最终生成的图像也就有可能产生不一样的结果,这一过程可以在打磨图像的过程中持续体会。

图片生成来自于:https://www.matpool.com/

参考艺术家风格:https://weirdwonderfulai.art/resources/disco-diffusion-70-plus-artist-studies/

参考关键词: https://imgur.com/a/SnSIQRu

视频版:

在矩池云使用Disco Diffusion生成AI艺术图的更多相关文章

  1. 矩池云上安装ikatago及远程链接教程

    https://github.com/kinfkong/ikatago-resources/tree/master/dockerfiles 从作者的库中可以看到,该程序支持cuda9.2.cuda10 ...

  2. 如何使用 VS Code 远程连接矩池云主机

    Visual Studio Code(以下简称 VS Code)是一个由微软开发的代码编辑器.VS Code 支持代码补全.代码片段.代码重构.Git 版本控制等功能. VS Code 现已支持连接远 ...

  3. 矩池云 | Tony老师解读Kaggle Twitter情感分析案例

    今天Tony老师给大家带来的案例是Kaggle上的Twitter的情感分析竞赛.在这个案例中,将使用预训练的模型BERT来完成对整个竞赛的数据分析. 导入需要的库 import numpy as np ...

  4. 矩池云 | 使用LightGBM来预测分子属性

    今天给大家介绍提升方法(Boosting), 提升算法是一种可以用来减小监督式学习中偏差的机器学习算法. 面对的问题是迈可·肯斯(Michael Kearns)提出的:一组"弱学习者&quo ...

  5. 矩池云 | 教你如何使用GAN为口袋妖怪上色

    在之前的Demo中,我们使用了条件GAN来生成了手写数字图像.那么除了生成数字图像以外我们还能用神经网络来干些什么呢? 在本案例中,我们用神经网络来给口袋妖怪的线框图上色. 第一步: 导入使用库 fr ...

  6. 矩池云 | 搭建浅层神经网络"Hello world"

    作为图像识别与机器视觉界的 "hello world!" ,MNIST ("Modified National Institute of Standards and Te ...

  7. 矩池云 | 神经网络图像分割:气胸X光片识别案例

    在上一次肺炎X光片的预测中,我们通过神经网络来识别患者胸部的X光片,用于检测患者是否患有肺炎.这是一个典型的神经网络图像分类在医学领域中的运用. 另外,神经网络的图像分割在医学领域中也有着很重要的用作 ...

  8. 矩池云上使用nvidia-smi命令教程

    简介 nvidia-smi全称是NVIDIA System Management Interface ,它是一个基于NVIDIA Management Library(NVML)构建的命令行实用工具, ...

  9. 矩池云里查看cuda版本

    可以用下面的命令查看 cat /usr/local/cuda/version.txt 如果想用nvcc来查看可以用下面的命令 nvcc -V 如果环境内没有nvcc可以安装一下,教程是矩池云上如何安装 ...

随机推荐

  1. pwn 之 沙箱机制

    0x00: 简介 沙箱机制,英文sandbox,是计算机领域的虚拟技术,常见于安全方向.一般说来,我们会将不受信任的软件放在沙箱中运行,一旦该软件有恶意行为,则禁止该程序的进一步运行,不会对真实系统造 ...

  2. XCTF练习题---MISC---坚持60S

    XCTF练习题---MISC---坚持60S flag:flag{DajiDali_JinwanChiji} 解题步骤: 1.观察题目,下载附件,是一个java文件 2.打开玩了一会,真鸡儿难,试着反 ...

  3. Typora实现云同步

    Typora很好用,但是不自带同步功能,最近找到个简便的实现Typora同步的方法. step1. 下载"坚果云": step2. 在本地创建一个"坚果云"的同 ...

  4. Linux 实现静态路由实验

    环境: 四台主机: A主机:eth0 NAT模式 R1主机:eth0 NAT模式,eth1 仅主机模式 R2主机:eth0 桥接模式,eth1仅主机模式 B主机:eth0 桥接模式 手动修改IP地址 ...

  5. Bert不完全手册5. 推理提速?训练提速!内存压缩!Albert

    Albert是A Lite Bert的缩写,确实Albert通过词向量矩阵分解,以及transformer block的参数共享,大大降低了Bert的参数量级.在我读Albert论文之前,因为Albe ...

  6. JavaScript与函数式编程

    JavaScript与函数式编程 绝大多数编程语言都会有函数的概念(或者说所有的?我不太确定),他们都可以做出类似的操作: function(x) { return x * x } 但是Javascr ...

  7. php魔术方法小结

    php魔术方法 __construct() __construct(mixed ...$values = ""): void PHP 允许开发者在一个类中定义一个方法作为构造函数. ...

  8. Angular中懒加载一个模块并动态创建显示该模块下声明的组件

    angular中支持可以通过路由来懒加载某些页面模块已达到减少首屏尺寸, 提高首屏加载速度的目的. 但是这种通过路由的方式有时候是无法满足需求的. 比如, 点击一个按钮后显示一行工具栏, 这个工具栏组 ...

  9. SQL中常用的字符串LEFT函数和RIGHT函数详解!

    今天继续整理日常可能经常遇到的一些处理字符串的函数,记得点赞收藏!以备不时之需!看到最后有惊喜! LEFT(expression, length)函数 解析:从提供的字符串的左侧开始提取给定长度的字符 ...

  10. 关于我学git这档子事(5)

    对于错误: fatal: refusing to merge unrelated histories 解决之道: git pull origin main --allow-unrelated-hist ...