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

无论是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绘画工具的能力。

相关推荐
果冻人工智能16 分钟前
2025 年将颠覆商业的 8 大 AI 应用场景
人工智能·ai员工
代码不行的搬运工17 分钟前
神经网络12-Time-Series Transformer (TST)模型
人工智能·神经网络·transformer
石小石Orz19 分钟前
Three.js + AI:AI 算法生成 3D 萤火虫飞舞效果~
javascript·人工智能·算法
孤独且没人爱的纸鹤28 分钟前
【深度学习】:从人工神经网络的基础原理到循环神经网络的先进技术,跨越智能算法的关键发展阶段及其未来趋势,探索技术进步与应用挑战
人工智能·python·深度学习·机器学习·ai
阿_旭31 分钟前
TensorFlow构建CNN卷积神经网络模型的基本步骤:数据处理、模型构建、模型训练
人工智能·深度学习·cnn·tensorflow
羊小猪~~32 分钟前
tensorflow案例7--数据增强与测试集, 训练集, 验证集的构建
人工智能·python·深度学习·机器学习·cnn·tensorflow·neo4j
极客代码38 分钟前
【Python TensorFlow】进阶指南(续篇三)
开发语言·人工智能·python·深度学习·tensorflow
zhangfeng113338 分钟前
pytorch 的交叉熵函数,多分类,二分类
人工智能·pytorch·分类
Seeklike39 分钟前
11.22 深度学习-pytorch自动微分
人工智能·pytorch·深度学习
庞传奇40 分钟前
TensorFlow 的基本概念和使用场景
人工智能·python·tensorflow