在 Disco Diffusion 官方说明的第一段,其对自身是这样定义: AI Image generating technique called CLIP-Guided Diffusion。DD 是通过 CLIP 来进行图文匹配,引导 AI 进行图像生成的技术,通过 Diffusion 持续去噪去生成图像的,而在整个过程中,CLIP 不断地评估图像和文本之间的距离,来为生成图像的整体方向进行指导,最终就体现为“输入文字-生成图画”,因此我们便可以通过文字来引导AI生成艺术风格图片。
矩池云已经将 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 ,如果有需要可以联系矩池云微信小助手,仅需发送你的矩池云账号,即可申请开通。
在修改描述语部分,我们在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." 出图情况为,云和城堡都为宫崎骏工作室出品的作品中常见的镜像,输入内容相对具有一致性,因此在图像的风格特色比较明显。


"A beautiful painting of",是对图像进行描述,一定程度上,这一描述也会影响到图像的风格。譬如 sketch、pencil drawing, matte painting, watercolor painting, Oil painting, Portrait photography, Portrait,都是可以拓展尝试的关键词,其对应的绘画风格。
"a singular lighthouse, shining its light across a tumultuous sea of blood",是对画面细节的描述。画面描述也是所有描述中需要费心思研究的部分,会因为在这一部分中,决定了画面中出现的形象。
在描述中,尽量使用确切的语句,比如确定的个数(比如写出具体的数字而不是 many)、形象的词而不是概述的词,同时不使用否定词,这一部分再在上手输入实践的时候,会有更深刻的体会。
"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
视频版:
我正在学习如何使用Nokogiri,根据这段代码我遇到了一些问题:require'rubygems'require'mechanize'post_agent=WWW::Mechanize.newpost_page=post_agent.get('http://www.vbulletin.org/forum/showthread.php?t=230708')puts"\nabsolutepathwithtbodygivesnil"putspost_page.parser.xpath('/html/body/div/div/div/div/div/table/tbody/tr/td/div
我有一个Ruby程序,它使用rubyzip压缩XML文件的目录树。gem。我的问题是文件开始变得很重,我想提高压缩级别,因为压缩时间不是问题。我在rubyzipdocumentation中找不到一种为创建的ZIP文件指定压缩级别的方法。有人知道如何更改此设置吗?是否有另一个允许指定压缩级别的Ruby库? 最佳答案 这是我通过查看rubyzip内部创建的代码。level=Zlib::BEST_COMPRESSIONZip::ZipOutputStream.open(zip_file)do|zip|Dir.glob("**/*")d
类classAprivatedeffooputs:fooendpublicdefbarputs:barendprivatedefzimputs:zimendprotecteddefdibputs:dibendendA的实例a=A.new测试a.foorescueputs:faila.barrescueputs:faila.zimrescueputs:faila.dibrescueputs:faila.gazrescueputs:fail测试输出failbarfailfailfail.发送测试[:foo,:bar,:zim,:dib,:gaz].each{|m|a.send(m)resc
很好奇,就使用rubyonrails自动化单元测试而言,你们正在做什么?您是否创建了一个脚本来在cron中运行rake作业并将结果邮寄给您?git中的预提交Hook?只是手动调用?我完全理解测试,但想知道在错误发生之前捕获错误的最佳实践是什么。让我们理所当然地认为测试本身是完美无缺的,并且可以正常工作。下一步是什么以确保他们在正确的时间将可能有害的结果传达给您? 最佳答案 不确定您到底想听什么,但是有几个级别的自动代码库控制:在处理某项功能时,您可以使用类似autotest的内容获得关于哪些有效,哪些无效的即时反馈。要确保您的提
假设我做了一个模块如下:m=Module.newdoclassCendend三个问题:除了对m的引用之外,还有什么方法可以访问C和m中的其他内容?我可以在创建匿名模块后为其命名吗(就像我输入“module...”一样)?如何在使用完匿名模块后将其删除,使其定义的常量不再存在? 最佳答案 三个答案:是的,使用ObjectSpace.此代码使c引用你的类(class)C不引用m:c=nilObjectSpace.each_object{|obj|c=objif(Class===objandobj.name=~/::C$/)}当然这取决于
我正在尝试使用ruby和Savon来使用网络服务。测试服务为http://www.webservicex.net/WS/WSDetails.aspx?WSID=9&CATID=2require'rubygems'require'savon'client=Savon::Client.new"http://www.webservicex.net/stockquote.asmx?WSDL"client.get_quotedo|soap|soap.body={:symbol=>"AAPL"}end返回SOAP异常。检查soap信封,在我看来soap请求没有正确的命名空间。任何人都可以建议我
关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭4年前。Improvethisquestion我想在固定时间创建一系列低音和高音调的哔哔声。例如:在150毫秒时发出高音调的蜂鸣声在151毫秒时发出低音调的蜂鸣声200毫秒时发出低音调的蜂鸣声250毫秒的高音调蜂鸣声有没有办法在Ruby或Python中做到这一点?我真的不在乎输出编码是什么(.wav、.mp3、.ogg等等),但我确实想创建一个输出文件。
我在我的项目目录中完成了compasscreate.和compassinitrails。几个问题:我已将我的.sass文件放在public/stylesheets中。这是放置它们的正确位置吗?当我运行compasswatch时,它不会自动编译这些.sass文件。我必须手动指定文件:compasswatchpublic/stylesheets/myfile.sass等。如何让它自动运行?文件ie.css、print.css和screen.css已放在stylesheets/compiled。如何在编译后不让它们重新出现的情况下删除它们?我自己编译的.sass文件编译成compiled/t
我想将html转换为纯文本。不过,我不想只删除标签,我想智能地保留尽可能多的格式。为插入换行符标签,检测段落并格式化它们等。输入非常简单,通常是格式良好的html(不是整个文档,只是一堆内容,通常没有anchor或图像)。我可以将几个正则表达式放在一起,让我达到80%,但我认为可能有一些现有的解决方案更智能。 最佳答案 首先,不要尝试为此使用正则表达式。很有可能你会想出一个脆弱/脆弱的解决方案,它会随着HTML的变化而崩溃,或者很难管理和维护。您可以使用Nokogiri快速解析HTML并提取文本:require'nokogiri'h
我想为Heroku构建一个Rails3应用程序。他们使用Postgres作为他们的数据库,所以我通过MacPorts安装了postgres9.0。现在我需要一个postgresgem并且共识是出于性能原因你想要pggem。但是我对我得到的错误感到非常困惑当我尝试在rvm下通过geminstall安装pg时。我已经非常明确地指定了所有postgres目录的位置可以找到但仍然无法完成安装:$envARCHFLAGS='-archx86_64'geminstallpg--\--with-pg-config=/opt/local/var/db/postgresql90/defaultdb/po