stable diffusion 原理是什么?

"

这篇文章主要介绍了Stable Diffusion,这是一种用于AI绘画的算法,它是由CompVis和Runway团队在2021年12月提出的"潜在扩散模型"(LDM/Latent Diffusion Model)的变体,基于2015年提出的扩散模型(DM/Diffusion Model)。文章中将深入介绍Stable Diffusion的技术细节,但是不会出现太多的数学公式或未解释的概念名词。

stable diffusion 早已不是一个新鲜话题,从 2022 年 8 月开源以来,有关 stable diffusion 的原理介绍、应用方法的资料数不胜数,我在之前 ai绘画是怎么画的?ai绘画算法揭秘一文讲透ai作画原理技术 两篇文章中也介绍过 AI 绘画的通用原理,但没有深入到 Stable Diffusion 的技术细节,今天就来填这个坑。

本文依旧是科普文,文中尽量不会出现数学公式或者未经解释的概念名词,大家可以放心食用。我会先用一段话介绍 stable diffusion 的算法原理,这段话里出现的概念名词后文会逐一解释。

Stable Diffusion 算法上来自 CompVis 和 Runway 团队于 2021 年 12 月提出的 "潜在扩散模型"(LDM / Latent Diffusion Model),这个模型又是基于 2015 年提出的扩散模型 (DM / Diffusion Model)。参考论文中介绍算法核心逻辑的插图,Stable Diffusion 的数据会在像素空间(Pixel Space )、潜在空间(Latent Space )、条件(Conditioning)三部分之间流转,其算法逻辑大概分这几步(可以按 ↩️ 顺序对照下图):

  1. 图像编码器将图像从像素空间(Pixel Space )压缩到更小维度的潜在空间(Latent Space),捕捉图像更本质的信息;
  2. 对潜在空间中的图片添加噪声,进行扩散过程(Diffusion Process);
  3. 通过 CLIP 文本编码器将输入的描述语转换为去噪过程的条件(Conditioning)
  4. 基于一些条件对图像进行去噪(Denoising)以获得生成图片的潜在表示,去噪步骤可以灵活地以文本、图像和其他形式为条件(以文本为条件即 text2img、以图像为条件即 img2img);
  5. 图像解码器通过将图像从潜在空间转换回像素空间来生成最终图像。

扩散模型(DM / Diffusion Model)

"扩散" 来自一个物理现象:当我们把墨汁滴入水中,墨汁会均匀散开;这个过程一般不能逆转,那 AI 可以做到么?(AI:我太难了)

当墨汁刚滴入水中时,我们能区分哪里是墨哪里是水,信息是非常集中的;当墨汁扩散开来,墨和水就难分彼此了,信息是分散的。类比于图片,这个墨汁扩散的过程就是图片逐渐变成噪点的过程:从信息集中的图片变成信息分散、没有信息的噪点图很简单,逆转这个过程就需要 AI 的加持了。

研究人员对图片加噪点,让图片逐渐变成纯噪点图;再让 AI 学习这个过程的逆过程,也就是如何从一张噪点图得到一张有信息的高清图。这个模型就是 AI 绘画中各种算法,如 Disco Diffusion、Stable Diffusion 中的常客扩散模型(Diffusion Model)。

潜在扩散模型(LDM / Latent Diffusion Model)

在计算机眼中,一张 512x512 分辨率的图片,就是一组 512 * 512 * 3 的数字,如果直接对图片进行学习,相当于 AI 要处理 786432 维的数据,这对算力、计算机性能要求很高。

CompVis 的研究人员提出,可以将图片映射到潜在空间(Latent Space)后进行扩散和逆扩散学习。如何理解 "潜在空间" 呢?大家都有自己的身份证号码,前 6 位代表地区、中间 8 位代表生日、后 4 位代表个人其他信息。放到空间上如图所示,这个空间就是「人类潜在空间」。

这个空间上相近的人,可能就是生日、地区接近的人。人可以对应为这个空间的一个点,这个空间的一个点也对应一个人。如果在空间中我的附近找一个点,对应的人可能跟我非常相似,没准就是我失散多年的兄弟 hh

AI 就是通过学习找到了一个「图片潜在空间」,每张图片都可以对应到其中一个点,相近的两个点可能就是内容、风格相似的图片。

同时这个 "潜在空间" 的维度(比如可能是 768)远小于 "像素维度"(786432),AI 处理起来会更加得心应手,在保持效果相同甚至更好的情况下,潜在扩散模型对算力、显卡性能的要求显著降低。这也就是为什么 Stable Diffusion 能在消费级显卡上运行,从而让 AI 绘画 "飞入寻常百姓家"。

说句题外话,我非常想知道为什么 Stable Diffusion 叫 Stable Diffusion,但没找到官方说明,这里做一个猜测:之所以这个基于 Latent Diffusion 的模型叫 Stable Diffusion,可能一方面表示这个模型效果很稳定(Stable),另一方面是致敬一下(算力 & 数据上的)金主爸爸 Stability.ai

CLIP(Contrastive Language-Image Pre-Training)

如果让你把左侧三张图和右侧三句话配对,你可以轻松完成这个连线。但对 AI 来说,图片就是一系列像素点,文本就是一串字符,要完成这个工作可不简单。

这需要 AI 在海量「文本-图片」数据上学习图片和文本的匹配。图中绿色方块是「图片潜在空间」的 N 张图片,紫色方块是「文本潜在空间」的 N 句描述语。AI 会努力将对应的 I1 与 T1 (蓝色方块)匹配,而不是 I2 与 T3 (灰色方块)匹配。这个 AI 就是广泛被用在 AI 作画中的 CLIP(Contrastive Language-Image Pre-Training / 对比式语言-文字预训练)。

当 AI 能成功完成这个连线,也就意味着 AI 建立了「文字潜在空间」到「图片潜在空间」的对应关系,这样才能通过文字控制图片的去噪过程,实现通过文字描述左右图像的生成。

总结

本文对一些技术细节做了简化,只保留 Stable Diffusion 最核心的算法逻辑为大家做了简明的介绍。深入理解 stable diffusion 原理,不仅有助于我们掌握 AI 绘画模型的基本原理,而且还能为我们在工作和学习中应用 AI 绘画带来更多的便利。

相关推荐
咚咚王者5 分钟前
人工智能之数据分析 Pandas:第六章 数据清洗
人工智能·数据分析·pandas
geneculture8 分钟前
融合全部讨论精华的融智学认知与实践总览图:掌握在复杂世界中锚定自我、有效行动、并参与塑造近未来的元能力
大数据·人工智能·数据挖掘·信息科学·融智学的重要应用·信智序位·全球软件定位系统
永霖光电_UVLED12 分钟前
安森美与英诺赛科将合作推进氮化镓(GaN)功率器件的量产应用
人工智能·神经网络·生成对抗网络
Dev7z15 分钟前
基于深度学习的脑肿瘤自动诊断和分析系统的研究与实现(Web界面+数据集+训练代码)
人工智能·深度学习
珠海西格电力17 分钟前
零碳园区数字感知基础架构规划:IoT 设备布点与传输管网衔接设计
大数据·运维·人工智能·物联网·智慧城市·能源
AI即插即用20 分钟前
即插即用系列 | WACV 2024 D-LKA:超越 Transformer?D-LKA Net 如何用可变形大核卷积刷新医学图像分割
图像处理·人工智能·深度学习·目标检测·计算机视觉·视觉检测·transformer
草莓熊Lotso24 分钟前
《算法闯关指南:动态规划算法--斐波拉契数列模型》--04.解码方法
c++·人工智能·算法·动态规划
狂放不羁霸28 分钟前
电子科技大学2025年机器学习期末考试回忆
人工智能·机器学习
多恩Stone36 分钟前
【3DV 进阶-9】Hunyuan3D2.1 中的 MoE
人工智能·pytorch·python·算法·aigc
Chase_______42 分钟前
AI 提升效率指南:如何高效书写提示词
人工智能·ai·prompt