作者:yiqiuzheng,腾讯 IEG 前端工程师
一、现状
这两年 AI 关键词频频热搜,从 2022 年 4 月初代码自动补全神器Copilot点燃程序员圈,到 10 月中旬的 AI 绘画Stable Diffcusion 1.0震惊绘画圈,最后到如今的ChatGPT引爆全网各领域。AI 人工智能时代已然到来。在 2023 年,AI 绘画技术和应用的发展已经非常迅速。目前,AI 绘画技术已经能够生成逼真的图像、视频和音频,同时还能够模仿艺术家的风格,创造出令人惊叹的艺术作品。
但是这些早期的 AI 绘画模型要么被大公司长久把持(例如OpenAI公司,他们早在 2021 年就推出了Dall-E1AI绘画模型,并未开源。直到Stability AI公司于 2022 年 8 月份发布并开源了Stable DiffusionAI 绘画模型,这才彻底让 AI 绘画热潮爆发!
自从Stable Diffusion 1.0模型发布以来,”AI 文本图片生成”真正的变成普通人也能使用的技术。同时各种国内外 AI 绘图软件,也不断频繁更新,像比较出名的文心一格、盗梦师、6pen 等生成工具,生成的图片已经达到了以假乱真的地步。
先看下国内外流行的 AI 绘画平台:
(来源:
https://www.woshipm.com/ai/5701833.html)
我们一起来了解下背后的算法以及具体应用案例。
二、AI 绘画算法
整体说来,以下算法都是基于深度学习,其与传统机器学习有一些区别:
(来源:
https://easyai.tech/ai-definition/gan/)
即有两点:
人工提取特征——自动提取特征深度学习最特别最厉害的地方就是能够自己学习特征提取,机器的超强算力可以解决很多人工无法解决的问题。自动化后,学习能力更强,适应性也更强。人工判断生成结果的好坏——自动判断和优化训练集需要大量的人工标注数据,这个过程是成本很高且效率很低的。而人工判断生成结果的好坏也是如此,有成本高和效率低的问题。
AI 绘画平台基于一些目前非常火热的 AI 绘画算法,就是用不同的算法策略实现以上两点,如下:
1)GAN技术
一句话来概括 GAN 的设计动机就是——自动化。
生成对抗网络(GAN)是一种非常流行的 AI 绘画算法。它包含两个网络:生成器和判别器。生成器生成图像,而判别器则评估图像的真实性。
(来源:
https://easyai.tech/ai-definition/gan/)
两个网络在训练过程中相互竞争,直到生成器可以生成与真实图像相同的图像为止。
知乎上有一个很不错的大白话解释,大家应该都能理解:起初一座城市治安不好,许多高低水平的小偷都混入其中;突然开启了一场整顿治安的活动,低水平的小偷很快就被抓住了,于是整体的小偷水平大大提高;之后警察也自我提升能力,通过抓住一个个高水平的小偷案例,练就了一眼看出小偷并及时制止的能力,经常的水平耶大大提高了;两者就这样反复“对抗“,最终同时得到了最强的小偷和最强的警察。
(来源:
https://easyai.tech/ai-definition/gan/)
非大白话解释就是控制变量训练,固定判别器,训练生成器去“骗过”判别器;再固定生成器,训练判别器找出生成器做的“假数据”;以此往复循环训练。
(来源:
https://easyai.tech/ai-definition/gan/)
最终我们得到了一个效果非常好的“生成器 G”,我们就可以用它来生成我们想要的图片了。
如果对 GAN 的详细技术原理感兴趣,可以看看下面 2 篇文章:
《生成性对抗网络(GAN)初学者指南 – 附代码》
《长文解释生成对抗网络 GAN 的详细原理(20 分钟阅读)》
最近,GAN已经被用于生成逼真的图像、视频和音频等。
一种基于GAN的 AI 绘画算法是ArtBreeder
ArtBreeder是一款由 AI 技术驱动的艺术创作平台,它使用 GAN 来生成高度逼真的图像。用户可以通过 ArtBreeder 进行图像合成,生成一些非常惊艳的艺术品。例如,用户可以选择一个头像,然后选择另一个头像的眼睛和嘴巴来创建一个新的头像。ArtBreeder使用GAN技术生成的结果非常逼真,很难分辨出其真实性。它为艺术家提供了一个全新的工具,可以用来进行艺术创作。
基于 GAN 的技术:CycleGAN
CycleGAN是一种用于图像转换的算法,它可以将一个图像集转换成另一个图像集。它基于 GAN 的技术,通过训练两个生成器和两个判别器来实现图像转换。CycleGAN 可以用于将一种艺术风格转换成另一种风格,也可以将照片转换成绘画作品等。
其一个重要应用领域是 Domain Adaptation(域迁移:可以通俗的理解为画风迁移),比如可以把一张普通的风景照变化成梵高化作,或者将游戏画面变化成真实世界画面等等。以下是原论文中给出的一些应用:
(来源:
https://zhuanlan.zhihu.com/p/402819206)
2)风格迁移技术
风格迁移是一种将一个图像的艺术风格应用到另一个图像上的算法。它基于卷积神经网络(CNN),可以将输入图像分解为不同的层和通道,然后将每一层和通道的特征图与目标风格的特征图进行比较。最近,风格迁移已经被用于生成独特的艺术作品,包括与现实世界不同的 3D 场景、动漫图像等。
比如以下每一张图都是一种不同的艺术风格:
(来源:
https://zhuanlan.zhihu.com/p/26746283)
有些东西大概艺术界也没明确的定义,如何要把一个图像的风格变成另一种风格更是难以定义的问题。在神经网络之前,图像风格迁移的程序有一个共同的思路:分析某一种风格的图像,给那一种风格建立一个数学或者统计模型,再改变要做迁移的图像让它能更好的符合建立的模型。这样做出来效果还是不错的,比如下面的三张图中所示,但一个很大的缺点:一个程序基本只能做某一种风格或者某一个场景。因此基于传统风格迁移研究的实际应用非常有限。
(来源:
https://zhuanlan.zhihu.com/p/26746283)
改变了这种现状的是两篇 Gatys 的论文,在这之前让程序模仿任意一张图片画画是没法想象的。
(来源:
https://zhuanlan.zhihu.com/p/26746283)
从纹理到图片风格其实只差两步。第一步也是比较神奇的,是 Gatys 发现纹理能够描述一个图像的风格。严格来说文理只是图片风格的一部分,但是不仔细研究纹理和风格之间的区别的话,乍一看给人感觉还真差不多。第二步是如何只提取图片内容而不包括图片风格。这两点就是他的第二篇论文做的事情:Gatys 又偷了个懒,把物体识别模型再拿出来用了一遍,这次不拿 Gramian 算统计模型了,直接把局部特征看做近似的图片内容,这样就得到了一个把图片内容和图片风格(说白了就是纹理)分开的系统,剩下的就是把一个图片的内容和另一个图片的风格合起来。合起来的方法用的正是之前提到的让神经网络“梦到”狗的方法,也就是研究员们玩出来的 Deep Dream,找到能让合适的特征提取神经元被激活的图片即可。
(来源:
https://zhuanlan.zhihu.com/p/26746283)
3)自适应生成
自适应生成是一种使用对抗性损失和重建损失来训练生成器的算法,它可以生成新的数据样本,例如图像、文本、音频等等。它的目标是通过学习输入数据的特征分布,生成与输入数据类似的新数据。
自适应生成算法的基本思想是建立一个生成模型,该模型可以学习输入数据的概率分布,并在学习过程中调整模型参数以最大限度地减少生成数据与真实数据之间的差异。这样,模型就能够生成与输入数据类似的新数据。其有以下分类:
(来源:
https://zhuanlan.zhihu.com/p/28484031?hmsr=joyk.com&utm_source=joyk.com&utm_medium=referral)
最简单的例子:如果要做一款自适应学习的产品,我们先假设电脑是完全没有能力判断出学生的能力水平,而由老师来做判断,判断之后,由电脑来推送相应的课程。
(来源:
https://zhuanlan.zhihu.com/p/28484031?hmsr=joyk.com&utm_source=joyk.com&utm_medium=referral)
举例:英语作文批改
用户在网站上录入了自己的托福作文,提交后,作文被送到一个队列里等待人工的批注。老师收到了新的作文后,对学生作文的各个部分进行标注,哪些单词拼错了,用错了,哪些固定搭配错了,哪些语法有问题,文章结构有什么问题。批改完毕后,学生会收到老师的评价,和系统自动推送出的单词,语法,和结构课。从算法上来讲,逻辑很简单,总共会有不同的几种错误类型,和对应的课程,只要学生在作文里出现某种错误,就自动推这类课程。外,最著名的自适应生成算法是生成对抗网络(GAN)。它可以学习艺术家的风格和技巧,然后生成新的艺术作品。自适应生成可以用于生成逼真的肖像、风景画和动漫角色等。
4)DeepDream 算法
通过将深度神经网络的激活函数反向传播,生成幻觉般的图像。此算法可以生成下面的图片:
(来源:
https://cloud.tencent.com/developer/news/8312)
首先,在卷积神经网络(简称 CNN)的研究中,大家并不满足于精准的图片分类,还想知道网络中各层乃至各个神经元都学习到了什么东西。如果能将每一个神经元的内容可视化出来,将是十分有用的。
那么如何对 CNN 中的某一神经元进行可视化呢?
Deep Dream 的想法就是:学习出一张图片,使得这一神经元能够产生最大激活。从数值上看,就是使得这一神经元的输出值最大。
更一般的,不仅可以最大化某一个神经元的输出,还可以最大化一组神经元的输出,或者某一层的总输出。这样得到的是多个神经元的混合可视化结果。因此,Deep Dream 是基于训练好的卷积神经网络进行图片的生成,在生成图片时,神经网络是冻结的,也就是网络的权重不再更新,只更新输入图片。
三、应用案例
目前三大 AI 绘画平台:Stable diffusion、Midjourney、DALL-E2。
以下是一些当前最新的 AI 绘画技术和应用的具体例子:
1)Stable diffusion
详细介绍:https://www.zhihu.com/question/585008573/answer/2914674940
简单来说Stable Diffusion是一个文本到图像的潜在扩散模型,由CompVis、Stability AI和LAION的研究人员和工程师创建。它使用来自LAION-5B数据库子集的512×512图像进行训练。使用这个模型,可以生成包括人脸在内的任何图像,因为有开源的预训练模型,所以我们也可以在自己的机器上运行它。
Stable Diffusion从功能上来说主要包括两方面:
其核心功能为仅根据文本提示作为输入来生成的图像(text2img);你也可以用它对图像根据文字描述进行修改(即输入为文本+图像);
stable-diffusion-webui只是一个工具,它的后端需要训练模型来进行 AI 图片生成,目前主流三大模型:
a) Stable-diffusion: 一般简称 SD 模型,如我们 demo 里提供的 sd-v1-4,目前最新的是 stable-diffusion-v1-5,偏真人风格;
b) Waifu-diffusion: 一般简称 Waifu 或者 WD 模型,偏二次元,是 B 站大家用爱发电实现的;
c) Novel-AI-Leaks:一般简称 Naifu 模型,更偏二次元;
可在 google 的免费 gpu 服务器上跑一个novel ai:
画手和改变姿势一直是 AI 绘画的弱势,如图:
(来源:
https://mp.weixin.qq.com/s/YivzVlALm7ClxqbCPEBY2A)
但随着ControlNet模型(ControlNet的作者是一个 2021 年才本科毕业,目前正在斯坦福读博的中国人)的引入,已经攻克了,标志 AI 绘画又上一个台阶。
其主要通过添加额外条件来控制扩散模型,改善了图生图效果,并能实现线稿转全彩图、指定生成人体姿势,通过手部关键点还能优化手部的生成。
(来源:
https://mp.weixin.qq.com/s/YivzVlALm7ClxqbCPEBY2A)
可上Scribble Diffusion
绘画平台体验:
https://scribblediffusion.com/
比如手绘图案辅助 prompt 描述:
此外去年年底 12 月,Stable Diffusion也发布了 2.0 版本,有许多重要更新,比如新的生成图片会保持原来图片的形状和结构、支持 768 * 768 高分辨率图片等等。
2)Midjourney
应用教程:https://mp.weixin.qq.com/s/7TKnb9Ckb5VOIlBqnPme0g
在Discord里面,需要翻墙;不用安装,向机器人输入关键词,就给你生成图片;允许每月免费使用,有很大的时长或者次数限制,仅能看部分作品;每月大概需要付费 30 美元,订阅它的人非常多;简单的平面广告插画,类似 ppt 里的 slide 的小图片,可以批量生成,质量很高,稍微改改就能商用。这部分的从业者更可能受到 AI 绘画的冲击。
其是托管在 Discord服务器上的 AI 作画工具,先讲这个工具是因为它对于初学者非常友好,使用上非常简单,生成的图片质量高,速度快。对于想对 AI 作画入门的同学来说,我个人觉得应该是首选了。目前我觉得它唯一的缺点就是需要付费,不过前期作为实验,大概能免费生成几十张图片,想玩一玩的朋友我觉得足够了。
使用教程如下:
a)进入官网
官网网址为:
https://www.midjourney.com/home/?callbackUrl=%2Fapp%2F,选择
Join the Beta加入Discard,可以用邮箱或者中国手机号码注册。
b)加入社区
加入Midjourney社区。
进入new commer rooms频道,但太多人聊天了消息会被冲走,所以创建子区进行聊天。
c) ai 绘画
输入/imagine,即可发送绘图指令。
生成之后可以各种微调,如果你一开始不知道输入什么关键词才好,我建议你可以直接到 Midjourney 官网的案例专区参考关键词:
https://www.midjourney.com/showcase
或者在其他房间参考别人的关键词,也可以利用谷歌翻译把自己想说的按照下面的公式翻译后出图,关键词尽量具体,AI出图也会更加具体。
(来源:
https://mp.weixin.qq.com/s/7TKnb9Ckb5VOIlBqnPme0g)
(来源:
https://mp.weixin.qq.com/s/7TKnb9Ckb5VOIlBqnPme0g)
一般以下关键词格式可以生成比较好的图片:主体内容+气氛灯光色彩+构图+风格参考。
(来源:
https://mp.weixin.qq.com/s/7TKnb9Ckb5VOIlBqnPme0g)
但是生成手还是有点一言难尽。
3)DALL-E2
简介
就是开发了ChatGPT的那家 OpenAI,免费,科学上网,手机上能用,生成图片很快;文字输入生成图片,内容偏创意一点,AI 也挺能理解人话。
输入格式为:某种行为、场景描述、事物、画面风格。
官网介绍如下:
DALLE有挺多绘画风格,油画、印象派、水彩、蜡笔、梵高莫奈等等流派,这个绘画软件适合脑洞丰富的人。其有相关 api 接口:
https://platform.openai.com/docs/api-reference/images/create
使用接口需要chatgpt的 api key,就可以利用其 AI 绘画接口与 chatGPT 相结合,生成素材创意脚本后绘图,企微机器人chatgpt+openAI(DALL-E2模型)绘画 api。
逻辑图如下:
除了以上三大绘画平台外,还有Disco Diffusion(代码开源,适合二次开发,搞 AI 作画也就都是免费的,但免费的同时缺点也比较明显,速度比较慢,第一次使用会有些门槛,需要配置一些参数)。以及国内的剪映、一帧秒创、百度文心、意间等,简单总结如下:
四、有趣的 AI 绘画
以上介绍了最出名的三大 AI 绘画平台,其实业界产品都各有优势,比较常见的文生图、换风格、图生图就不细说了,这里总结下一些有趣的功能。
1)姿势识别
体验网站:
https://www.wujieai.com/lab/openpose
比如其中的姿势识别(基于controlNet),之后人物动作生成表情包也不在话下了:
2)涂鸦上色
体验网站:
https://www.wujieai.com/lab/openpose
可对用户上传的一张图片或线稿进行着色,生成一张绚丽的涂鸦图。适合对人物进行上色。
其他的功能可自行到无界 AI 体验。
3)组合图
体验网站:
https://www.artbreeder.com/create/collage
可组合图片生成新图。
4) 手绘成图
体验网站:
https://scribblediffusion.com/
可鼠标绘制图片,之后会根据描述以及手绘的轮廓生成图片。
5)生成漫画脸
手机端也有一款修图神器醒图,其可以将照片转换漫画脸:
比如跟朋友聚会的照片转换漫画脸之后就有发朋友圈的欲望了,效果很棒。
五、优缺点
1)AI 绘画的优点
a)自动化:AI 绘画可以自动完成一些重复性的绘画工作,比如绘制图标、线条等,这可以大大提高绘画效率。
b)可定制化:AI 绘画可以通过机器学习和人工智能技术来分析用户的喜好和需求,进而生成符合用户需求的图像。对输入的指导内容有优秀的识别能力,这使得依照内容精绘画一张图的成本大大降低。
c)高效性:AI 绘画可以迅速完成各种类型的绘画,因为 AI 绘画不受时间和空间限制。对于同一输入,输出基本是无限的,可以在保证知道内容准确的情况下,生产大量不相似的图片,解决了一种内容产出图片的多样性问题。
d)创造性:AI 绘画可以通过深度学习、神经网络等技术,自主生成一些具有创造性的图像。
2)AI 绘画的缺点
a)没有人类创意:AI 绘画只能在其训练数据集中生成图像,没有自己的创意和想法。
b)缺乏灵活性:AI 绘画可以生成很多图像,但是它缺乏人类绘画的灵活性和多样性。
c)难以控制:AI 绘画可能会生成一些意外或不符合要求的图像,这使得 AI 绘画难以完全控制。即使调整好了引导,在精细绘制上,仍存在部分绘图逻辑问题,出图率实际不高,这导致图片往往需要进行筛选,才能使用。
d)需要大量数据:AI 绘画需要大量的数据进行训练,以获得更好的性能和效果,这需要投入大量的时间和资源。AIGC 虽然足够智能,但还没有到随意理解人类意思的程度,需要你给它足够的引导,试错多次,出来的图片才能够满足需求,这变相增加了一次性人力成本。
六、未来
我们可以预见到 AI 绘画的水平将会进一步提高。随着更多的数据被输入到算法中,AI 绘画算法将变得更加智能和逼真。例如,在未来几年中,我们可以期待更多基于深度学习的算法的出现,这些算法将能够处理更多复杂的任务,例如对人体、物体和场景的绘制。
另一个发展趋势是人机交互式绘画。这种方法使用人类艺术家的创意和想象力,结合 AI 技术的计算能力,实现更加高效和创造性的绘画创作。例如,一个名为“DrawingAI”的项目就利用了这种方法,让用户通过简单的手势和语音控制,与 AI 绘画算法进行交互式创作。
除了这些技术和趋势之外,AI 绘画算法还将面临一些挑战。例如,如何保持艺术品的独特性和原创性,避免出现大量重复或类似的作品。此外,也需要解决一些伦理和版权问题,例如在人像生成领域的隐私和道德问题。
综上所述,AI 绘画技术在未来将会持续快速发展,不断推动艺术创作的边界。虽然 AI 绘画算法还面临一些挑战,但随着技术的不断发展和创新,相信这些挑战将逐渐被解决。无论是在艺术创作还是其他领域,AI 技术将继续发挥着重要的作用,为我们带来更多的惊喜和创造力。
Reference
https://easyai.tech/ai-definition/gan/
https://zhuanlan.zhihu.com/p/26746283
https://cloud.tencent.com/developer/news/8312
https://zhuanlan.zhihu.com/p/402819206
https://mp.weixin.qq.com/s/YivzVlALm7ClxqbCPEBY2A
https://zhuanlan.zhihu.com/p/28484031?hmsr=joyk.com&utm_source=joyk.com&utm_medium=referral
https://mp.weixin.qq.com/s/7TKnb9Ckb5VOIlBqnPme0g
https://www.woshipm.com/ai/5701833.html