DiscoDiffusion是发布于GoogleColab平台的一款利用人工智能深度学习进行数字艺术创作的工具,它是基于MIT许可协议的开源工具,可以在GoogleDrive直接运行,也可以部署到本地运行,目前最新的版本是DiscoDiffusionv5。2(本文撰写于20220414日,目前最新版本为v5。61,界面有所变化,但核心基本没变,教程部分可做参考)。 主创是Somnai(Somnaidreams)和AdamLetts(gandamuml),在ChrisAllen(zippy731)、HostsServer(HostsServer)和TomMason(ninartificial)的协作下迭代到了今天的版本。 用白话讲DiscoDiffusion的基本工作就是把你给出的Prompts(提示描述)由文字信息变成图像信息,把你用文字描述的画面画出来。实际操作也基本如此,很简单,先来看几张用DiscoDiffusion生成的图片。 Prompt:Adigitalpaintingofcyberpunkcitybybeeple,mist,trendingonartstation,VRay。 Prompt:Spaceshipabouttolandingonacornfield,steampunk,cloudsinthesky,byGregRutkowski,conceptart。 Prompt:Abeautifulpaintingofcaptivatingcastleonhillsandmountains,alongplainsandrivers,IsmailInceoglu。 图片下方是我给出的Prompts,DiscoDiffusion会根据这些内容去生成画面,并且每一次都会产生不同的结果,这些还是我初期基本按默认参数渲染的,所以精度其实不算太高,如果提高参数设置,做出更好的描述,你会得到质量更高的图片。下面就进入教程环节吧。 准备工作 注册一个谷歌账号。 入门教程 01。使用浏览器打开DiscoDiffusionv5。2〔wVRMode〕(https:colab。research。google。comgithubalembicsdiscodiffusionblobmainDiscoDiffusion。ipynb)。 02。点击页面右上角登录按钮,登入你的谷歌账号。 03。点击复制到云端硬盘或点击文件选择在云端硬盘中保存一份副本。 04。副本创建完成会出现笔记本的副本已完成弹窗,点击在新标签页中打开。 05。单击DiscoDiffusionv5。2〔wVRMode〕的副本修改笔记本名称(以下所有代码可视为源文件源代码,此处是源文件的名称,可按创作主题或其他方式命名,方便后期修改和区分)。 06。修改batchname(图片保存在云盘的名称);设置steps,可按默认值(通常200300已经足够,若效果不符合预期可适当调整);设置widthheight(图片尺寸,需是64的整数倍,免费用户请设置1920x1080以内的尺寸,否则会提示显存不足)。 07。点击ExtraSettings前面的小三角,设置intermediatesaves(设置过程图保存张数,设置为0渲染完成只保存最后一张图,设置为2,渲染完成会得到一张进度33、一张66和一张100的图片,数值越大数量越多,不影响渲染速度)。 08。设置Prompts(在这里输入描述画面的语句,格式为XXXX,XXXX,XXXX。,建议在其他地方编辑好直接粘贴过来,保留最前和最后的引号,使用一个Prompt即可,不要求是完整的句子,可以是长短句或单词,可参考默认结构,前置词描述画作类别,中间描述画面内容,后接参考风格的艺术家,另外可以增加整体风格的词汇或者其他内容,emoji也可以)。 09。设置displayrate(渲染预览图的刷新频率,建议设置为5,每过5个steps更新一次预览图),设置nbatches(以这个主题渲染的图片张数,因为每次渲染的结果都是不同的,所以可以设置多张图片,一张渲染完成后会接着渲染下一张,已经渲染完成的会自动保存,可按需要设置)。 10。点击代码执行程序选择全部运行。 11。弹出笔记本需要高RAM的窗口,点击确定。 12。弹出您还在设备面前吗?的窗口,点击进行人机身份验证,按指令进行验证。 13。弹出允许此笔记本访问您的Google云端硬盘文件吗?的窗口,点击连接到Google云端硬盘。 14。弹出登录Google账号窗口,选择你的谷歌账号,点击允许。 15。回到DiscoDiffusion的页面你会发现每段代码前面都有个中间有个三角形的圆,外面在转圈圈的就是在运行当前的代码,运行完成后前面会出现一个绿色的小勾,第一次运行需要等待几分钟,稍等片刻你会看到在4。Diffuse!的末尾会出现一张充满噪点的图,就表示开始渲染了,图片上方的Batches会显示你的渲染总进度,下方显示的是当前这张图的渲染进度,后面有预计的渲染时间,网页最下方会显示运行时间计时。 16。过几分钟可能还会出现一次您还在设备面前吗?的弹窗,点击进行人机身份验证,按指令进行验证,之后就可以慢慢渲了。(steps设置为250实际上渲染只到240,如果displayrate设置为了5,那么图片下方的进度条每增加5个steps图片就会刷新一次,在这里右击是可以直接保存当前的图片的,当然按你的设置也会根据进度自动保存图片到你的谷歌云盘) 17。之后你便可以在GoogleDrive(https:drive。google。com)直接查看保存的图片了,在AIDiscoDiffusionimagesout相应的文件夹里,若设置了intermediatesaves会多出一个partials的子文件夹,里面是过程图。所有的图片都是随着进程实时更新的,每完成一个进度就会自动保存一张,在这里可以把图片下载到本地。ColabNotebooks这个文件夹里保存的是你的源文件。 进阶教程 除了直接用文字描述的方式,DiscoDiffusion也可以在一张图片的基础上做渲染,你可以选择自己拍摄的照片、涂鸦的画作或是之前渲染的图片作为一个起点,再配合Prompts描述变成一个全新的作品。 基础的操作是一致的,我们只需要多一个步骤,就是在Settings里写入initimage。首先我们需要把使用的图片上传到content中,这里有两种操作方式。 方式一 01。点击左侧的第四个文件图标展开文件窗口。(如果是新建的文件可能会出现入门教程第11、12步的弹窗,确定加验证就可以了) 02。点击文件窗口上方第一个上传到会话存储空间图标,选择你要上传的图片并点击打开,图片就会开始上传(你也可以把图片直接拖进文件窗口的空白处)。 03。上传完成后图片会显示在文件窗口的列表中,找到你要使用的图片并点击文件名后方的三个小圆点,选择复制路径。 方式二 01。进入GoogleDrive登入你的账号,在云端硬盘左侧依次点击AIDiscoDiffusioninitimages进入文件夹。 02。把图片直接拖进文件窗口的空白处(你也可以在空白处右击选择上传文件)。 03。打开或新建DD文件,按方式一打开左侧文件窗口,在列表中依次展开driveMyDriveAIDiscoDiffusioninitimages,找到你要使用的图片并点击文件名后方的三个小圆点,选择复制路径。 若在文件窗口找不到drive文件夹,请点击文件窗口第三个装载Google云端硬盘图标,并按提示操作,载入你的Google云端硬盘,若文件夹还未出现,请点击文件窗口第二个刷新图标。 04。找到SettingsInitSettingsinitimage,将路径粘贴在此处。 05。设置initscale(默认值为1000,数值越小变化越大);设置skipsteps(默认值100,就是将你的图片处理为初始噪点后,直接从101步开始使用Prompts渲染)。 06。按照入门教程设置其他内容并运行代码即可。 高阶教程 高阶玩法就是各种摆弄参数了,大家可以参考DiscoDiffusion内的Tutorial部分,这里对部分参数做了一些解释,也可以研究一下ZippysDiscoDiffusionCheatsheetv0。3(https:docs。google。comdocumentd1l8s7uS2dGqjztYSjPpzlmXLjl5PM3IGkRWI3IiCuK7gedit)这个文档。 目前通过v5。2的版本我们不仅可以使用DD生成2D的图像,还可以制作3D的内容,包括视频,甚至可以制作VR视频。 注意事项 程序在运行过程中有可能会出现假死状态,表现为服务器状态显示忙碌、网页最下方出现红色感叹号,计时停止,显示已完成、5。Createthevideo前方出现红色感叹号、网页左下角提示无法保存、进度条消失等等,其实极有可能这时候是处于假死状态,你需要观察预览图是否还在变化,如果可以观察到预览图还在变化更新,说明渲染还在继续运转,一切正常,不需要操作,等到渲染下一张图片时有可能恢复正常,如果没有恢复,只要看到预览图在实时更新,就表示渲染在正常进行,因此我建议将displayrate设置为5或更低,这样可以更快的看到画面的变化情况。 另外,有的情况预览图也会消失不显示,这时候如果你设置了intermediatesaves也就是保存过程图片,可以去云盘查看partials文件夹内是否有新进度的图片出现,如果在不显示预览的之后依然有新进度的图片保存在云盘,说明渲染在正常进行。所以也建议大家都设置一下intermediatesaves,可以设置为5或更高,越高存储进度图的频率越高。 如果你完全按照教程操作,正常来讲是不会报错的,如果报错了,首先有可能是网络问题,其次有可能是因为参数设置问题,比如图片尺寸设置的过大,新手建议设置参考默认设置,变化不要太大,有些设置过大会导致需要更大的显存支持,有可能会超过配给你的GPU限额,因而导致报错。另外还有可能是prompt撰写错误,比如填写位置错误,格式错误等,注意把内容放在教程内所示的位置,并按要求填写,使用英文并不要随意添加符号及数字,如果要使用权重请把要增加权重的内容在第一个描述后加上逗号,并在新的引号内填写新内容及权重。 报错会有错误提示,请先自己查看,尝试解决,如果无法解决,建议点击代码执行程序重新启动并运行所有单元格,或点击磁盘后方的小三角点击管理会话终止会话代码执行程序全部运行,或打开DD原始链接重新复制一个文件,重新设置并运行,或尝试重新连接网络后再试。