稳定扩散(Stable Diffusion)的运作方式如下:
原文地址:https://mccormickml.com/2022/12/21/how-stable-diffusion-works/ 作者:Chris McCormick(斯坦福大学毕业,一直从事计算机视觉、机器学习和 NLP 领域工作) 发表时间:2022 年 12 月 21 日 译者:通往 AGI 之路 《A16Z 整理的 AI 典藏》入门第五篇
如果您曾尝试在太暗的情况下拍照,而拍出的照片全是颗粒状,那么这种颗粒状就是图像中“噪点”的一个例子。我们使用Stable Diffusion来生成艺术作品,但它实际上在幕后所做的是“清理”图像!不过,它比手机图像编辑器中的噪点消除滑块复杂得多。它实际上了解世界的样子、了解书面语言,并利用这些来指导(噪点消除)过程。例如,想象一下,如果我给了下面左边的图像给一位熟练的平面艺术家,并告诉他们这是一幅以H.R。Giger(瑞士画家、雕塑家与布景师,《异形》中的外星生物就是他的作品)的风格描绘的外星人弹吉他的画。我打赌他们可以精心清理它,创造出像右图那样的东西。(这些是稳定扩散的实际图像!)艺术家会利用他们对Giger的艺术作品的了解,以及对世界的了解(例如吉他应该是什么样子以及如何弹奏)来做到这一点。稳定扩散本质上是在做同样的事情![heading2]“推理步骤”[content]你熟悉大多数艺术生成工具中的“推理步骤”滑块吗?稳定扩散是逐步去除噪点的。这是一个运行25步的例子:外星吉他手的例子更有意义,因为你可以更清楚地看出它应该是什么样子的……但在上图中,起始图像看起来完全无法辨认!实际上,这个充满噪点的外星人例子其实是从过程的大约一半开始取的——它(最开始的图像)实际上也是从完全的噪点开始的!
初始噪声和我们的文本描述是我们称之为稳定扩散的输入,不同的输入在这些表格中会有不同的值。我们也将一组大得多的数字插入到这些方程式中,但每次都是相同的——这些被称为稳定扩散的参数。还记得高中时用方程式绘制线条吗y = 3x + 2?如果这是稳定扩散,那么“x”是我们的输入,“y”是最终图像,数字3和2是我们的参数。(当然,方程式要复杂得多😝)。输入图像由大约79万个值表示,提示中的33个“tokens”由大约2.5万个值表示。但在Stable Diffusion中大约有10亿个参数。🤯(你能想象用手算所有这些数字吗?!?)这10亿个数字被分布在大约1100个不同大小的矩阵中。每个矩阵在数学运算的不同阶段被使用。如果你感到好奇,我在这里打印出了这些矩阵的完整列表!再次强调,这些参数不会改变——每次生成图像时都是相同的数字。稳定扩散之所以有效,是因为我们找到了每10亿个数字的正确值。这难道不是非常荒谬吗?
原文地址:https://mccormickml.com/2022/12/21/how-stable-diffusion-works/作者:Chris McCormick(斯坦福大学毕业,一直从事计算机视觉、机器学习和NLP领域工作)发表时间:2022年12月21日译者:通往AGI之路《[A16Z整理的AI典藏](https://ywh1bkansf.feishu.cn/wiki/F8OMwrI3TisTPokQAJHcMG2knBh)》入门第五篇一台计算机仅凭一段文字描述就能创作出艺术,这真是令人难以置信!我自己也非常好奇,“引擎盖下”到底发生了什么,使这种事情成为可能。因此我想在这里尽我所能,即使对于那些不熟悉人工智能概念的人,也能提供一个较为深入的解释。[heading1]概述[content]在第一部分,我会给你一个高层次的解释(你可能已经熟悉了)。这是一个好的开始,但我知道这无法满足我的好奇心。😉我会问,“好的,很棒,但是它是怎么做到的?”为了解答这个问题,我将展示一些稳定扩散的内部运作方式。内部的复杂程度可能超出了你的预期,但我至少想要更具体地向你展示其运作过程,这样它就不再是一个完全的谜了。更具体地说:稳定扩散是一个巨大的神经网络。神经网络是纯粹的数学。事实上,我们并不完全知道它在做什么!最终,稳定扩散之所以能工作,是因为我们训练了它。但让我们从全局视角开始吧!