人工智能绘画的算法和原理简述

无论是DALL-E 2、Midjourney还是Stable Diffusion,它们的主要算法和原理都基于扩散模型,并且它们之间也存在千丝万缕的联系。

人工智能是一种模拟人脑神经网络的技术。通过训练,它可以学习各种任务,比如绘画。当我们让AI学习绘画时,它会结合文字进行训练。通过大量填鸭式的训练,在某个时刻,它会突然领悟,能够根据文字要求进行绘画,并且它的绘画具有类似人类的逻辑性,它的能力得到了快速提升。

目前,扩散模型是最常用的AI生成图像的方法之一。扩散模型基于非平衡热力学,这是热力学的一个分支,专门研究不处于热力学平衡中的物理系统。一个典型的例子是一滴墨水在水中扩散。在墨水开始扩散之前,它会在水中某个地方形成一个大的斑点。

如果要模拟墨水开始扩散前的初始状态概率分布,将会非常困难,因为这个分布非常复杂,很难进行采样。然而,随着墨水扩散到水中,水逐渐变成淡蓝色,墨水分子会更加简单和均匀地分布。此时,我们可以使用数学公式来描述其中的概率分布。非平衡热力学可以描述墨水扩散过程中每一步的概率分布。由于扩散过程的每一步都是可逆的,因此只要步长足够小,我们就可以从简单的分布中推断出最初的复杂分布。

通过墨水的例子,我们可以得到一个启示:如果我们使用像素图对模型进行存储,那么将需要大量的硬件资源;相反,如果我们使用高斯噪点图进行存储,那么采样分布将更加容易。我们可以轻松地使用数学公式描述高斯分布的概率,并从简单的高斯分布中进行采样。因此,模型库可以采用高斯噪点图进行存储,这样反转过程也相对容易。这种方法在节省存储空间的同时,还能够保留模型的重要特征。

为了便于理解,我们再举一个例子,扩散模型类似于乐高玩具,打散后就是一个个的小方块,相当于变成噪点,小方块组装成各种各样的造型,类似于去噪的过程。

应用于AI绘画的过程中,可以通过逐步添加高斯噪声(模拟墨滴在水中扩散)来处理一幅图像。最终,这幅图像会变成高斯分布(模拟墨滴最终均匀扩散到水中)。高斯分布是一种非常容易建模和采样的概率分布,因此它在AI绘画的训练过程中起到了重要作用。推理过程则是将这个过程逆向进行,从一个均匀分布的高斯分布中进行采样,并逐步去除噪声,最终得到一幅完整的图像,这也就是将墨水扩散的过程进行逆转的过程。

下图展示了扩散模型的加噪与去噪的过程。扩散模型的原理包括两个步骤:首先是正向扩散,逐渐给图像添加高斯噪声,直到获得纯噪声的图像;然后,通过训练一个神经网进行图像去噪,从纯噪声的图像开始,直到获得最终的图像。

那么,AI绘画具体是怎么工作的呢?以Stable Diffusion为例,首先输入提示词,如"戴眼镜的少女",然后Stable Diffusion开始工作,主要分为三个部分,如图1-16所示。
Stable Diffusion基本原理

第一部分:文本编码。通过图像转换特征,把文本转换为数字信息,并提取出关键标记,如眼镜、少女、金属、年轻等。

第二部分:潜在空间生成。使用图像信息生成器,主要使用U-net调度算法生成图像。

第三部分:变分自编码器(VAE)编码。通过VAE图像解码器,把潜在空间64×64像素的图像解码成512×512像素的图像,从而绘制出训练图像。

给AI绘图提供文本的提示词也被称为指令,被用户戏称为"咒语"。通过Stable Diffusion的计算,可以在WebUI界面上生成直观的图像。AI绘画的过程实际上比描述的更加复杂。

即使不是AI算法工程师,如果深入了解其具体编码过程,熟悉其基本原理对使用者以后无论是生成图像、训练模型还是使用ControlNet工具编辑图像都会有很大帮助。这种了解有助于使用者更好地创作和提高操作AI绘画工具的能力。

相关推荐
果冻人工智能10 分钟前
法官们终于似乎明白了:如果没有复制,那就没有版权
人工智能
tle_sammy11 分钟前
AI 重构老旧系统:创业新曙光
人工智能·重构
果冻人工智能13 分钟前
什么是 MCP,以及你为什么该关注它
人工智能
誉鏐18 分钟前
PyTorch复现逻辑回归
人工智能·pytorch·逻辑回归
正脉科工 CAE仿真21 分钟前
基于ANSYS 概率设计和APDL编程的结构可靠性设计分析
人工智能·python·算法
EasyGBS26 分钟前
视频设备轨迹回放平台EasyCVR打造视频智能融合新平台,驱动智慧机场迈向数字新时代
网络·人工智能·安全·音视频
Chaos_Wang_32 分钟前
NLP高频面试题(三十三)——Vision Transformer(ViT)模型架构介绍
人工智能·自然语言处理·transformer
新知图书44 分钟前
OpenCV单窗口显示多图片
人工智能·opencv·计算机视觉
荷包蛋蛋怪1 小时前
【北京化工大学】 神经网络与深度学习 实验6 MATAR图像分类
人工智能·深度学习·神经网络·opencv·机器学习·计算机视觉·分类
小马哥编程1 小时前
【软测】AI助力测试用例
人工智能·测试用例