00-人工智能辅助视觉艺术创作初探。 AI 终于卷到了我头上……

神秘的程序员们 2022-05-14 11:28
2015年3月,AlphaGo 跟李世石下了5番围棋。战果是4:1,一时到处都在讨论AI在未来的各种可能。我跟霍炬在雪还没化完的公园散步时,决定画一个跟AI有关的科幻故事,也就是 4篇的小连载 《代码的深渊》——一个为了帮助程序员写代码而设计的人工智能 Betacat,最后卷死全人类的故事。(7年前我设定的故事就发生在2022年)

从 AlphaGo 之后,人工智能在金融、制造、信息和数据处理领域进展很大,普通人能感知到的有无人驾驶、机器翻译、人脸识别、人机交互、医疗辅助,这些已经推进了很多年的方向。但超出我想象的是,在过去数年内,机器学习会在计算机视觉及艺术创作这个方向上突然爆发,在美术设定和插画设计行业掀起海啸。

先上几张图我上周用 AI 生成的图给大家看,我所负责的部分,就只是输入了几句文字描述 ( Prompt, 单词原意为“提示,给表演者的提词” )。
Prompt:   "A beautiful painting of A beam of light shines over a dream palace under the sea, by Dan Mumford, artstation, light effect, high-definition, saturated color"
Prompt:   "a detailed matte landscape painting of a big cherry tree with petals flying in the sky, moonlight, by Victo Ngai, artstation, Detail, HD."
除了只用文本向 AI 输入你的创作指令,还可以提供一张底图 (初始化图片,initial image)去控制构图、布局、形状或颜色,提高对创作结果的控制
Prompt: "Dragon, By Dan Mumford, Saturated color, high-definition."
这个系列图片是我用来对同一张 intial image,更换不同的 prompt 来测试不同的风格主题。使用的 Initial image 就是一张骷髅的灰度照片
下图 prompt 与上图 几乎完全一样(去掉了一条对色调的定义)。
AI 依此生成的两批图风格接近,但又不完全一样。
复古科幻主题:
Prompt: "Sci-fi, by Bruce Pennington, Artstation"
上世纪科幻杂志封面复古调调的异星文明   
Alien Landscape
哥特风格
Prompt:  "gothic, lithograph style, printmaking style, black and white, high-contrast."
黑暗童话风格

下面三张我是对现代风格的山水画主题测试






风格写实的场景概念设定 matte landscape painting 也可以胜任。对于做游戏或影视戏剧美术行业,这应该有很值得探索的可应用潜力。
(使用了initial image 控制构图)

传统艺术风格  Fine Art Style 也能轻松驾驭。
将十七世纪荷兰黄金时代 Dutch Golden Age 的花卉静物画与水母的形态相嫁接(我使用了水母图片作为 initial image)

这是什么软件/工具实现的?

可能部分读者已经猜到了。我使用的这款 TTI 生成工具 (Text to Image Generator) 就是最近火出了机器学习圈的 Disco Diffusion v5.2
DD v5.2 是一种基于 CLIP(一种跨模态预训练模型)来“理解”用户输入的文本,再使用 一种 Diffusion model扩散模型)来生成图像的工具。
它是一个部署在 Colab 的开源项目 (Colab 是数据科学家和AI研究者们非常喜欢的用来在线编写并运行 Python 程序的 notebookGoogle家的,用法跟 Jupyter notebook 接近 ),所以在线就可以出图。当然因为需要耗费巨量的显卡资源,Colab 每天给免费用户使用的计算资源有限制。虽然DD 项目基于 MIT license,用户使用它是免费的,但你可能需要为云计算资源买单。
当然你也可以在 DD 的 Github 下载源码和模型,在本地运行。但是最好有一张至少 24G显存的显卡,才有可能生成大图(步数设置合理以及足够有耐心的前提下)。所谓大图,也不过 1280 像素 
Colab 和 Github 的链接地址我都放在文末

Disco Diffusion 值得关注吗?

Disco Diffusion v5.2 生成的图片的视觉效果及风格让我感到颇为惊讶,从中可以看到了极大的应用潜力、探索空间和创作自由度。这也是为什么它从4月以来,吸引了插画美术设计行业的关注。也让许多普通人,之前不具备图像绘制或处理能力,却一下子看到了为自己的小说、诗歌、桌游卡牌、唱片专辑、MV 亲手创作概念图或封面图的可能。心理学分析从业者也从中窥见了应用灵感,例如用它帮助用户描绘梦境或将意识里的场景可视化。甚至,你可以跟家里小朋友一起玩“你说我画”,画怪兽再也难不倒爸爸了,要多少有多少 
当然这样一个在应用效果上颇为成功的 AI 项目是不可能从是石头缝里蹦出来的。它基于整个机器学习行业里许多开发者、公司、数据集和科学家们的多年累积的成果。同时在 Disco Diffusion 之外,还有不少同类的 TTI generator 项目值得关注。

AI 艺术创作的第一步,“听懂”人话——CLIP 是什么?

下面写的都是一些我的个人理解和学习笔记,希望分享出来,让跟我一样对此有兴趣的普通人们多了解一点 “人工智能 + 数字视觉创作” 正在发生什么,有什么新方向值得关注,什么上下游工具值得探索。在 AI 视觉艺术创作这么新的一个领域,大家都是漫长道路上的学习者、巨大迷宫里的探寻者。
我只是个写码不能、数学稀烂的视觉艺术从业者,我尽个人最大努力。如果有 AI 或 CV 领域的专业人士不幸看到本文,请高抬贵手,切勿见笑。不吝赐教,多多指点我的错误。

要让 AI 作画,先要让程序“听懂”你的指令,比如
 “a big cherry tree above a lake with flying  petals in the sky, lake reflection.”
 (描绘一棵浮在湖面上的樱花树,花瓣漫天飘舞,湖面有倒影 )
对这么一个相对复杂场景的文本描述,AI 需要能“理解”并匹配到对应的画面,大部分同类项目依赖的都是一个叫 CLIP 的模型。有人把它比作 "自然语言处理的方向盘" (natural language steering wheel),帮助艺术家仅通过输入文本:一行标题、一首诗、一组关键词,就有可能创造出各种有趣的视觉艺术
CLIP 和 各类图片生成模型结合后,拥有非常大的创造力,能生成不可思议的风格,从写实到抽象、魔幻到唯美的风格的图片,虽然其中大部分作品看了会让人 san 值掉光。
在 AI art 创作中,提词的设计是关键。CLIP 是一个开放沙盒,你可以放心往里面输入任何描述,无论是否存在于世界上,从 “正在金字塔顶上阅读浮士德的猫” 到 “长着八条腿的绿毛水怪躺在河岸边”——可以创造任何东西。”
CLIP 经过了对一组组文本-图像对照数据的海量训练,数据集使用的是 LAION-400M,包含4亿组从互联网上收集的文本-图片对。文本编码器提取文本特征,图片编码器提取图片特征,两个放到一起对比相似度。选择相似度最高的文本所对应的类别作为图像分类预测结果,用相似度的数值用于以后计算每个类别的预测概率,使得一个未知数据通过这个分类器的时候能够以相对高的概率的预测出其所属分类。从而让 AI 先“掌握”文本-图像对的匹配关系,所以 CLIP 的全称是 Contrastive Language–Image Pre-training,一种基于对比的图片-文本学习的跨模态预训练模型。


但只依靠这样训练数据集去实现分类器,即使向 CLIP 输入了4亿个文图对,也是不够的。没有任何一个文图对里有我们想要的“八腿绿毛水怪”对吧。而 CLIP 的一大优势就是可以直接实现 zero-shot 的图像分类,来推测出“八腿绿毛水怪”的图像。
Source: Learning Transferable Visual Models From Natural Language Supervision
https://arxiv.org/abs/2103.00020
Zero-shot learning 就是让模型能够对其从没见过的输入样本进行分类,这不是很难理解,因为跟人类思维的推理及学习过程很接近。零次(Zero-shot)指的就是对需要分类的类别对象,学习次数为零。
业内最常拿来举例子是斑马


下面这两段引自 知乎作者 两太阳的栗子社长 的《零次学习(Zero-Shot Learning)入门》https://zhuanlan.zhihu.com/p/34656727
“ 假设小暗(纯粹因为不想用小明)和爸爸,到了动物园,看到了马,然后爸爸告诉他,这就是马;之后,又看到了老虎,告诉他:“看,这种身上有条纹的动物就是老虎。”;最后,又带他去看了熊猫,对他说:“你看这熊猫是黑白色的。”然后,爸爸给小暗安排了一个任务,让他在动物园里找一种他从没见过的动物,叫斑马,并告诉了小暗有关于斑马的信息:“斑马有着马的轮廓,身上有像老虎一样的条纹,而且它像熊猫一样是黑白色的。”最后,小暗根据爸爸的提示,在动物园里找到了斑马(意料之中的结局。。。)。
上述例子中包含了一个人类的推理过程,就是利用过去的知识(马,老虎,熊猫和斑马的描述),在脑海中推理出新对象的具体形态,从而能对新对象进行辨认。(如图所示)ZSL就是希望能够模仿人类的这个推理过程,使得计算机具有识别新事物的能力。”

为什么我关注 CLIP

我在努力去了解 CLIP,有4个原因:
1. 开发 CLIP 的公司 OpenAI 也开发了画图能力更为惊人的 DALL·E 2  
2. 除 DALL·E 2 之外的,目前跟 DD 同类的 TTI AI 艺术创作工具,文本到图像这个步骤的实现大多基于 CLIP (CLIP Guided ****
3. 后几篇文章我会详细写下我认为的目前 AI ART 创作中最重要的事:“如何设计 text Prompt ”。要了解 Prompt 是如何起作用的,怎么写能更有效,这就绕不开 CLIP
4. 我也会分享一些选项设置的心得 “ DD哪些设置项最值得关注”,翻译一些文档。设置项中让很多人不明就里且十分纠结的“模型选择器”(ViTL14、RN50、VITB32 ……),也跟 CLIP 高度相关

Open AI 和 GPT-3

下面我们快速过一下 开发 CLIP 的这家公司:OpenAI 的背景与历史。


OpenAI 成立于六年前,总部位于旧金山。创始人是 山姆·阿尔特曼(著名创业孵化器 YC 的总裁)和伊隆·马斯克(2018年退出董事会)。组织当初的目标是通过与其他机构和研究者的“自由合作”,促进和发展友好的人工智能,向公众开放专利和研究成果。成立之初是一家非营利研究机构,2019 年,从非营利性转变为“有上限”的营利性(capped-profit)。并接受微软10亿美元注资,随后宣布打算对其技术进行商业许可,微软是其首选合作伙伴。
2019年2月,OpenAI 宣布了大型自然语言处理模型 GPT-2,让AI可以帮你续写文本,效果在“上下文连贯性和情感表达上都超过了人们的预期”。
2019年4月,OpenAI 开发的 Self-Play 机器人在 Dota2 1v1 直播赛事里 以 2:0 虐了世界冠军 Dendi
2020年5月,发布了 GPT-3, 一种具有 1750 亿参数的自回归语言模型,微软于2020年9月22日取得独家授权。“参数量要比 2 月份刚刚推出的、全球最大深度学习模型 Turing NLP 大上十倍,而且不仅可以更好地答题、翻译、写文章,还带有一些数学计算的能力”。
source: 机器之心《1750亿参数,史上最大AI模型GPT-3上线:不仅会写文章、答题,还懂数学》https://www.jiqizhixin.com/articles/2020-05-30-6
GPT-3 的发布给AI行业甚至圈外带来了不小的震荡。它惊人的“智能”程度和应用潜力吸引了大量开发者,也引发了很多对人工智能和算法伦理偏见的忧虑,同时,已经变得越来越“商业” 的OpenAI 的封闭性和资本集中效应,也让业界开始担忧。
但这并不妨碍热血上头的开发者们利用 GPT-3 开放的API 来开发了各种好玩的小应用,比如文字冒险游戏、小说完成器、聊天机器人、假新闻编写器……还有开发者用 GPT-3 编写了一款名为 debuild.co 的实验性小工具,号称能帮你 build web apps,只要输入文本描述,AI 就可以为你生成可交互的网页组件、页面布局。往互联网信息池塘以及 Github 代码库里倒入了整车整车的巴西龟。
所以……如果能用文字描述生成网页布局,能用文字描述生成图片也不远了吧。
 没错 
半年后,2021年1月,OpenAI 在同一天发布两个重磅模型,DALL·E 和 CLIP, 前者是文字 ->图片的生成器,后者就是前文说的 文字-图片的跨模态预训练模型
 同学们,我跑题终于跑回来了

DALL·E 的发布

DALL·E 跟 Disco Diffusion 属于同一类工具,但所生产图片的风格差别很大。DALL·E 生成的图片更接近现实中的照片,也擅长创建卡通漫画,比如 “穿燕尾服抽雪茄的臭鼬会说话的挖掘机的卡通版本”,以合理的方式组合不相关的概念,比如生成 “牛油果形状的躺椅”、“刺猬表面的椅垫”,还能在图片中指定位置插入指定风格的文字,比如“加一块写着 CLOSED 的霓虹灯招牌”,或根据现有图像,对局部做编辑或补充在沙发上添加一只牛油果”。
Prompt: “an illustration of a baby daikon radish in a tutu walking a dog”
一张插画:穿芭蕾舞裙遛狗的萝卜宝宝


Prompt: “an armchair in the shape of an avocado.”
牛油果形状躺椅
上面两张图片均来自 OpenAI 官网 
https://openai.com/blog/dall-e/

用 CLIP 拼大乐高

转回来说 CLIP。因为 OpenAI 一直没有开放 DALL·E 的全部模型,所以“黑客”们 一直试图用 CLIP 加上其它模型部件 来开发目的类似的工具。不专业如我,会把这些项目想象成一个有两三块大乐高的积木,文字->图片用 CLIP 乐高块,图片生成用 VQGAN、StyleGAN 或各类 Diffusion Model。如果想方便不擅长用英文写 prompt 的用户,文本输入前面再接一个 DeepL ?
这些工具都可以称之为 TTI ART Tool
而前文我用的 Disco Diffusion 就是 CLIP + Diffusion model,除了图片生成模型,它还花了一年多时间衔接了动画、视频、VR 的生成模型。
下面列出了一些我准备探索的项目,会一一写文向大家汇报结果。
  • Centipede Diffusion
  • CLIP-Guided StyleGAN3
  • CogView 2 (清华大学唐杰团队开发的,原生支持中文)
  • Improved Multi-Perceptor VQGAN + CLIP
  • Stylegan-Humans+CLIP
  • Pixray
  • The Big Sleep: BigGAN x CLIP
这里有两个可以在页面里直接试用TTI 模型。没有命令行的,没有的。
CogView :清华的项目,prompt 原生支持中文。40亿参数,VQ-VAE tokenizer Transformer。据团队发布的论文里称“人工评估的测试中,CogView被选为最好的概率为37.02%,远远超过其他基于GAN的模型。” 
Source:CogView: Mastering Text-to-Image Generation via Transformers https://arxiv.org/abs/2105.13290
好像上个月发布了 CogView 2, 还没处试用,很期待。
试用地址:
https://wudao.aminer.cn/CogView/index.html
下面是我跑的,8张结果里有2张只有湖水。不过也很正常啦。
Prompt: “一棵湖面上的樱花树,花瓣飘在天空中,湖水倒影”




Dalle-Mini :但注意这个项目只是名叫 mini Dalle,不要跟 OpenAI 的 DALL·E 混淆。
这个项目连接了3个预训练模型:VQGAN, BART encoder 和 CLIP。DALL·E 用了120亿 GPT-3 训过的参数(parameter version),而 Dalle-Mini 的训练量只有它的 1/27。DALL·E 用 VQVAE 进行图像编码,而 Dalle-Mini 用的是 VQGAN。 
source:https://wandb.ai/dalle-mini/dalle-mini/reports/DALL-E-mini--Vmlldzo4NjIxODA#the-dall-e-experiment
试用地址:
https://huggingface.co/spaces/flax-community/dalle-mini
下面是我跑的樱花树,Prompt 见图

DALL·E 2

好了。这篇写得够多了。下篇我会介绍一下 DALL·E 2,今年4月由 OpenAI 发布后,吸引了无数开发者和艺术家在内测 waiting list 翘首等候。
目前DALL·E 2 没有开放测试,如果你有兴趣,建议先在 wainting list 占上位置。下面是申请地址: https://labs.openai.com/waitlist
下一篇文章里我还会重点比较一下同一 Prompt 下, DD5 和 DALL·E 2 会分别出来什么不一样的作品。先看一张效果,同一个Prompt:  
“group of angels having a board meeting in a summer garden, by Asher Brown Durand”  
译:一群天使在夏日花园里开董事会,阿什·布朗·杜兰德的画风。
Disco Diffusion 生成
DALL·E 2 生成
(图片经作者 Tom Mason @nin_artificial 授权转载,他也是DD团队的开发者之一)
而下图是 十九世纪美国浪漫主义风景画家 阿什·布朗·杜兰德 的真人原作:(他的作品中没有画过天使,也罕有群像主题)




最后看几张 Disco Diffusion 大师的作品赏析

TOP artist works !
下面所有作品推荐全部得到了作者的授权,除了最后一张实在找不到。
我加了个 AI art QQ 群里,分享两位调参高手的作品。两位都做了不错的教程视频,组织了国内的 AI 创作社群。
JZ_打个比方 作品。国内最早的DD玩家之一。作品风格非常多样。  https://space.bilibili.com/7213238 


弈湘君 作品:国内最早的DD玩家之一,擅长古风和魔法风。https://space.bilibili.com/23290330 



下面是我在 twitter 和 discord 上关注的几位海外AI艺术家的作品:
@BinxNet 作品 https://foundation.app/collection/binx






@QmediaFX 作品
 https://objkt.com/profile/tz1djQgsrvLKLf3iNbbMaAye7k1NMNwheA7E/created



他正在OpenSea 上开售的 龙蛋系列,早期DD玩家跟NFT社群有很大的交汇。https://opensea.io/collection/dragoncrystal-eggs


@TrebzAI 作品
https://twitter.com/TrebzAI




@AetherialDnB 作品https://objkt.com/profile/tz1NY7s7ehQQb5pLZrrp1Zuog7JWpwUnihBu/created





@unltd_dream_co 
不过这位艺术家用的不是DD,而是 VQGAN + Clip
他的网站 
https://www.unlimiteddreamco.xyz/ 
上有关于  VQGAN + Clip 的技术教程分享。





Armoured 作品:
https://www.reddit.com/user/armoured/  (非常抱歉这张没能联系到作者,但我实在是非常喜欢这张的主题和画风)



最后我想引用我一位做DL研究朋友的看法结束这篇长文:
“比如不管是 CLIP 还是各种 Diffusion,还只是起步阶段的玩具,未来有更多数据和更好的模型框架,它们绝不会局限在现在的框架里,你所看到的现在某个模型的局限性,极大概率都不是 AI art 未来的局限范围。
以前蒸汽机只能抽水,
但人类的想象力让发动机上了天。”

谢谢观看
拥抱你们


Disco Diffusion V 5.2 Colab 地址:
https://colab.research.google.com/github/alembics/disco-diffusion/blob/main/Disco_Diffusion.ipynb
Disco Diffusion Github:
https://github.com/alembics/disco-diffusion
Disco Diffusion Discord:
Disco Diffusion User Discord 


因为最近十分上瘾,下面我会更新一系列 AI ART 创作方面的文章和教程。漫画我也会接着画的,说不定还会增加 DL 相关主题的故事哦。请大家不要跑(拖住大腿.GIF)
推荐阅读