近期,以 Stable Diffusion、Dall-E、Midjourney 等软件或算法为代表的 AI 画图技术引起了广泛关注。尤其是自 2022 年 8 月 Stable Diffusion 模型开源以来,更是加速了这一领域的发展。
对于初学者来说,面对这些令人惊叹的 AI 画图作品,他们既想了解画图软件的应用和技巧,又面对着诸如 Lora、ControlNet、Dall-E 等复杂术语,不知道从何入手。通过收集资料,本文将从以下四个方面介绍目前最流行的 AI 画图工具和模型训练方法,力求用通俗易懂的语言帮助大家理清术语背后的真实含义。
一、文生图算法简介
text to image 技术,又称为文生图,是一种鉴于自然语言描述生成图象的技术。其历史可以追溯到 20 世纪 80 年代。
随着深度学习技术的发展,特别是卷积神经网络 CNN 和循环神经网络 RNN 的出现,text to image 技术开始采用神经网络模型从事训练和生成。
GAN(generative adversarial networks)和 VAE(variational auto encoder)算法是最早被应用于 text to image 任务的算法。
随着计算机硬件和算法的不断进步,越来越多的新算法涌现出来,例如 Stable Diffusion 和 Dall-E 等。相较于传统算法如 GAN 和 VAE,这些新算法在生成高分辨率、高质量的图片方面表现更加卓越。
Stable Diffusion(稳定扩散)是鉴于 DPM(Diffusion Probabistic models)的改进版本,DPM 是一种概率建模方法,旨在应用初始状态的噪声扰动来生成图象。模型会首先生成一张初始状态的噪声图象,然后通过逐步的运算过程逐渐消除噪声,将图象转换为目标图象。这也是我们在从事 Stable Diffusion 画图时,首先须要确定噪声采样方式和采样步长的原因。
Stable Diffusion 是由 Stability AI COMP、VIZ LMU 和 Runway 合作发布的一种人工智能技术,其源代码在 2022 年 8 月公开于 GitHub,任何人都可以拷贝和应用。该模型是应用包含 15 亿个图象文本数据的公开数据集 Line 5B 从事训练的。训练时应用了 256 个 Nvidia A100 GPU,在亚马逊网络服务上花费了 150,000 个 GPU 小时,总成本为 60 万美元。
Dall-E 是 OpenAI 公司于 2021 年 1 月发布的一种鉴于 Transformer 和 GAN 的文本到图象生成算法,应用了大规模的预训练技术和自监督学习方法。Dall-E 的训练集包括了超过 250 万张图象和文本描述的组合。该算法的灵感来源于 2020 年 7 月 OpenAI 发布的 GPT-3 模型,后者是一种可以生成具有语言能力的人工智能技术。Dall-E 则是将 GPT-3 的思想应用于图象生成,从而实现了文本到图象的转换。
2022 年 2 月,OpenAI 发布了 Dall-E2。相比于上一版本,Dall-E2 生成的图象质量更高,而且可以生成更加复杂和多样化的图象。Dall-E2 的训练集包括了超过 1 亿张图象和文本描述的组合,比 Dall-E 的训练集大 40 倍。
当前 Dall-E 算法虽未开源,但已经有人尝试创建 Dall-E 的开源实现。比如,Crayon 前身为 Doy Mini,于 2022 年在 Hugging Face 的平台上发布。
大部分的画图工具都是鉴于 Stable Diffusion、Dall-E 相关的或类似或衍生的算法开发的,尤其是已经开源的稳定扩散算法。
以下是与此相关的几个常见、广泛应用的 AI 画图工具:Midjourney、Stable Diffusion、Dall-E、NovelAI、Disco Diffusion。
二、AI 画图工具介绍
接下来给大家介绍市面上常见的 AI 画图工具:
1. Midjourney
Midjourney 是一个由 Leap Motion 的联合创始人 David Holz 创立的独立研究室,他们以相同的名称制作了一个人工智能程序,也就是我们常听到的 Midjourney 画图软件。该软件于 2022 年 7 月 12 日进入公开测试阶段,鉴于 Stable Diffusion 算法开发,但尚未开源,只能通过 Discord 的机器人指令从事操作。
https://www.midjourney.com/app/
Discord 是一个在线聊天和语音交流平台,类似于我们常用的 QQ 聊天工具。Midjourney 官方提供了一个 discord 机器人,用户可以在 discord 中添加该机器人,进入指定的服务器从事画图操作。具体方法是,登录 discord,在添加了 Midjourney Bot 的服务器中,在聊天框里输出“image”,然后输出画图指令即可。
Midjourney 是一个学习成本极低、操作简单的画图工具,生成的图片非常有艺术感,因此以艺术风格闻名。只需输出任意关键词即可获得相对满意的画图结果。画图者只须要专注于设计好玩实用的画图指令(Prompt),而无需花费太多精力在软件操作本身上。但是,Midjourney 的应用须要全程科学上网,并且应用成本相对较高。由于软件未开源,生成的图片可能无法满足用户的特定需求,只能通过寻找合适的关键词配合图象编辑软件来实现。
2. Stable Diffusion
Stable Diffusion 是一种算法和模型,由 Stability.ai、CompVis-LMU 和 Runway 共同发布,于 2022 年 8 月开源。因此,用户可以下载 Stable Diffusion 的源代码,并通过各种方式在自己的电脑上从事本地部署。
将 Stable Diffusion 分解后,有以下几个结构和模型。在训练时,输出的训练图象首先通过编码器模块从事编码,以从事降维,例如从 512*512 降到 64*64,这将大大加快训练速度。输出的文本长度是不固定的,通过文本编码器(通常是 clip 模型)将其转换为固定长度的向量以从事计算。这两者结合后,输出到 UNET 网络从事训练。训练后,图象通过解码器解码后恢复为 512*512 的图象。
生成图象时候只须要带入一个初始化了的噪声图象和文本,二者组合后输出 UNET 网络从事去噪,最后通过 Dncoder 还原成清晰的图象。
大家可能会认为安装和部署 Stable Diffusion 很困难,因为须要安装 Python 运行环境和一些依赖库,以及对 Python 语言有一定的编程经验。但是,有一些一键式的安装包可以帮助你快速搭建 stable diffusion 的环境。这些安装包包含了 Python 运行环境和相关的依赖库和代码。只须要下载安装包,然后根据指示从事几个简单的步骤,即可完成 Stable Diffusion 的安装和部署。
最受欢迎的工具包是 GitHub 上 automatic 1111 用户创建的 Stable Diffusion Web UI。它是鉴于 radio 库的浏览器界面交互程序。具体的安装视频可以在各大知识平台都可以搜到,这里就不展开了。
一键式安装包(包含 Python 运行环境,还集成了 Stable Diffusion 的相关依赖库和代码) https://github.com/AUTOMATIC1111/stable-diffusion-webui
目前最新的 stable diffusion 的版本是 2.1,但 2.0 以上版本砍掉了 NSFW 内容和艺术家关键词,相当于封印了很多能力。
Stable Diffusion Web UI 只是运行 Stable Diffusion 的可视化界面,就如一辆车子缺乏发动机,我们还须要从 Stability AI 的 Hugging Face 官网下载 Stable Diffusion 模型,才能开始运行 Stable Diffusion 画图。
本地运行 Stable Diffusion 须要较高的显卡配置,建议应用显存大于 8G 的 N 卡显卡。如果配置不够但还想体验一下,Stable Diffusion 有线上版本 DreamStudio,只是须要付费应用。新用户可以获得 200 个点数,每次标准生成将消耗一个点数。
https://beta.dreamstudio.ai/generate?from=%2Fdream
3. Dall-E
Dall-E 是 OpenAI 旗下的一款 AI 画图工具软件,与 ChatGPT 同属于一个公司。最新版本 Dall-E 2 于 2022 年 2 月发布。Dall-E 可以在线应用,Dall-E 会根据这些文字描述生成一张或多张图片,并显示在屏幕上。用户可以上传自己的图片,标记图象中的区域从事进一步的编辑和修改。Dall-E 还会根据已有图象的视觉元素对图象从事二次加工,延展图片边界。
https://labs.openai.com/
用户在注册的第一个月可以获得 50 个免费积分,每月可以获得 15 个积分,每张图片花费 1 个积分。如果须要更多的图象,用户须要付费。当前,Dall-E 算法并未公开源代码。
4. NovelAI
Nova AI 是由美国特拉华州的 Anlatan 公司开发的云端软件。最初,该软件于 2021 年 6 月 15 日推出测试版,其主要功能是辅助故事写作。之后,在 2022 年 10 月 3 日,Nova AI 推出了图象生成服务,由于其生成的二次元图片效果出众,因此它被广泛认为是一个二次元图象生成网站。
https://novelai.net/
Nova AI 的图象生成模型是应用 8 个 Nvidia A100 GPU 在鉴于 Damburu 的约 530 万张图片的数据集上训练而得到的,其底层算法也是鉴于 stable diffusion 模型微调而来的。
应用 Nova AI 的方法很简单,只需登录官方网站,进入图象生成界面,输出关键字,即可生成图象。此外,由于 Novel AI 曾经发生过代码泄露,因此也可以下载 Novoai 的模型(Naifu、Naifu-diffusion)在 Stable Diffusion web UI 中应用。
5. Disco Diffusion
Disco Diffusion 是最早流行起来的 AI 画图工具,发布于 Google Clab 平台。它的源代码完全公开且免费应用,可通过浏览器运行而无需对电脑从事配置。Disco Diffusion 鉴于 Diffusion 扩散模型开发,是在 Stable Diffusion 发布之前最受欢迎的扩散模型之一。然而,它在绘制人物方面表现不佳,且生成一张图片须要十几二十分钟的时间,因此在 Stable Diffusion 发布后逐渐失去了市场热度。
6. 其他工具
NiJiJourney 是一个专门针对二次元绘画的 AI 绘画软件,由 Spellbrush 和 Midjourney 共同推出。应用方法与 Midjourney 基本相同,用户可以在 Discord 上输出相应的绘画指令从事绘画。目前 NiJiJourney 处于内测阶段,绘画是免费的,但是版权问题尚未明确表态。预计在正式公测时,付费用户可以获得商用权利,与 Midjourney 类似。
Waifu Diffusion 是一种鉴于扩散模型的 AI 画图模型,它的早期版本 1.4 在动漫领域的画图效果与 NovelAI 非常相似。有些人甚至认为 Waifu Diffusion 是在 NovelAI 模型的基础上从事微调得到的,但 Waifu Diffusion 团队表示他们的模型是 Trinart Derrida 和 Eimis Anime Diffusion 模型的合并结果。我们可以从 Hugging Face 上下载 Waifu Diffusion 模型,并在 Stable Diffusion Web UI 中应用它。
除此以外还有很多类似 Midjourney 的画图工具,几乎都是鉴于 Stable Diffsion 或者类似算法从事开发。如 Leonardo AI、BlueWillow AI、Playground AI、Dreamlike、NightCafe.studio 等等。有一些还具备图象修改、图象延展等功能,尽管这些软件还处于测试阶段,须要申请才能应用,但它们生成的图片质量不输 Midjourney,因此常被拿来与 Midjourney 从事对比。
① Leonardo AI
https://leonardo.ai/
② BlueWillow AI
https://www.bluewillow.ai/
③ Playground AI
https://playgroundai.com/
④ Dreamlike
https://dreamlike.art/
⑤ NightCafe.studio
https://nightcafe.studio/
三、模型训练相关名词
AI 大模型,也被称为基础模型(Foundation Model),是指将大量数据导入具有数亿甚至万亿级参数的模型中,通过人工智能算法从事训练。Stable Diffusion、NovelAI、Dall-E 等模型都属于大模型。这类大模型普遍的特点是参数多,训练时间长,具备泛化性、通用性、实用性,适用于各种场景的画图。
这类 AI 大模型也存在一个普遍的缺点,就是无法满足对细节控制或特定人物特定画图风格的画图须要。即便掌握了算法知识,训练一个好的 AI 画图模型也须要强大的计算资源,这些计算资源对于普通人来说过于昂贵。例如 Stable Diffusion 在亚马逊网络服务上应用 256 个 NVIDIA A100 GPU 从事训练,总共花费了 15 万个 GPU 小时,成本为 60 万美元。
于是,针对这些大模型的微调技术应运而生。为了达到绘制特定人物或特定画图风格的须要,我们不须要重新训练大模型,只要提供几张图片和一张显卡,几个小时的时间就可以实现。也就是我们常听说的 Embedding、Hypernetwork、Dreambooth、Lora、ControINet,它们都属于大模型的微调技术,可以在 Stable Diffusion Web UI 中从事训练后应用,感兴趣的话可以在 Civitai 从事下载。
1. Embedding
Text Coder 就像一本词典,输出文本后 Text Coder 能快速查找到符合要求的词向量,
那如果出现新的关键词,text coder 上找不到该怎么办?这就是 Embedding 算法要做的事情,它通过训练在 Text Coder 中找到与新的词特征、风格相同的词向量。例如这个麒麟训练后可以看作龙羊虎的组合。
Embedding 算法不改变大模型的基本结构,也不改变 text coder,所以就能达到微调模型的目的。对于风格的描述,一般须要较多的关键词。Embedding 对于复杂的词汇的调整结果并不太好,定义人物须要的关键词少,所以适用于对人物的训练。
② Hypernetwork
与 Embedding 不同,Hypernetwork 是作用在 UNET 网络上的,UNET 神经网络相当于一个函数,内部有非常多的参数,Hypernetwork 通过新建一个神经网络,称之为超网络。超网络的输出的结果是 UNET 网络的参数。超网络不像 UNET,它的参数少,所以训练速度比较快,因此 Hypernetwork 能达到以较小时间空间成本微调模型的目的。
Hypernetwork 会影响整个 UNET 的参数生成,理论上更适合风格的训练。Stable Diffusion Web UI 上也继承了 Embedding 和 Hypernetwork 的训练环境。
3. Dreambooth
Dreambooth 是 Google 在 2022 年 8 月提出的一种新的网络模型,它的强大之处在于能完整地保留你想要关键视觉特征。例如图中最左边的黄色闹钟上面一个醒目的黄色的。采用 Dreambooth 生成的新图象可以准确还原这个图象最右边这个样子。这须要模型能够准确识别物体的细节。你只需提供 3- 5 张的图象和文本提示作为输出,就可以达到很好的效果。Dreambooth 适合人物训练,改版的 Dreambooth 方法 native train 适合于风格的训练。
Dreambooth 要求同时提供特征词加类别和类别文本图片信息带入模型从事训练,例如 a dog 和 a [V] dog。这样做的好处是既可以保留类别的原始信息,又可以学习到特征词加类别的新的信息。
4. LoRA
LoRA(Low-Rank Adaptation of large Language Models)是由微软研究员开发的一种用于微调大模型的技术。该技术建议冻结预训练模型的权重,并在每个 Transformer 块中注入可训练层,从而在保持大部分参数不变的情况下,调整局部的一些模型参数。由于不须要重新计算模型的权重参数的梯度,这大大减少了须要训练的计算量,并降低了 GPU 的内存要求。
应用 LoRA 模型从事微调可以为我们提供更自由、更便捷的微调模型的方式。例如,它使我们能够在基本模型的基础上进一步指定整体风格、指定人脸等等。此外,LoRA 模型本身非常小,即插即用,非常方便易用。
5. Controlnet
Controlnet 是当前备受瞩目的 AI 画图算法之一。它是一种神经网络结构,通过添加额外的条件来控制基础扩散模型,从而实现对图象构图或人物姿势的精细控制。结合文生图的操作,它还能实现线稿转全彩图的功能。
Controlnet 的意义在于它不再须要通过大量的关键词来堆砌构图效果。即使应用大量关键词,生成的效果也难以令人满意。借助 Controlnet 可以在最开始就引导它往你须要的构图方向上走,从而实现更准确的图象生成。
四 、VAE 模型的作用
正如我们之前介绍的,Stable Diffusion 在训练时会有一个编码(Encoder)和解码(Dncoder)的过程,我们将编码和解码模型称为 VAE 模型。预训练的模型,如官网下载的 Stable Diffusion 模型,一般都是内置了训练好的 VAE 模型的,不用我们再额外挂载。但有些大模型并不内置 VAE 模型,或者 VAE 模型经过多次训练融合不能应用了,就须要额外下载,并在 Stable Diffusion Web UI 中添加设置。如果不添加,出图的色彩饱和度可能会出问题,发灰或变得不清晰。大家可以根据模型说明信息来确定是否要下载 VAE。