Navigate to WaytoAGI Wiki →
Home/Question List/Question Detail

稳定扩散(Stable Diffusion)是如何运作的

Answer

稳定扩散(Stable Diffusion)的运作方式如下:

  • 消除图像中的噪点:拍照太暗时会产生噪点,稳定扩散用于生成艺术作品,其本质是“清理”图像。它比手机图像编辑器中的噪点消除滑块复杂得多,它了解世界的样子和书面语言,并以此指导噪点消除过程。例如,就像艺术家利用对特定风格和世界的了解来清理图像一样,稳定扩散也在做类似的事情。
  • “推理步骤”:稳定扩散是逐步去除噪点的。
  • 编写稳定扩散程序:初始噪声和文本描述作为输入,还有一组不变的约 10 亿个参数。输入图像由约 79 万个值表示,提示中的 33 个“tokens”由约 2.5 万个值表示。这 10 亿个参数分布在约 1100 个不同大小的矩阵中,每个矩阵在数学运算的不同阶段被使用。
  • 概述:稳定扩散是一个巨大的神经网络,是纯粹的数学,我们并不完全知道它在做什么,但它能工作是因为经过了训练。先从高层次解释,再展示其内部运作方式。

原文地址:https://mccormickml.com/2022/12/21/how-stable-diffusion-works/ 作者:Chris McCormick(斯坦福大学毕业,一直从事计算机视觉、机器学习和 NLP 领域工作) 发表时间:2022 年 12 月 21 日 译者:通往 AGI 之路 《A16Z 整理的 AI 典藏》入门第五篇

Content generated by AI large model, please carefully verify (powered by aily)

References

稳定扩散(Stable Diffusion)是如何运作的

如果您曾尝试在太暗的情况下拍照,而拍出的照片全是颗粒状,那么这种颗粒状就是图像中“噪点”的一个例子。我们使用Stable Diffusion来生成艺术作品,但它实际上在幕后所做的是“清理”图像!不过,它比手机图像编辑器中的噪点消除滑块复杂得多。它实际上了解世界的样子、了解书面语言,并利用这些来指导(噪点消除)过程。例如,想象一下,如果我给了下面左边的图像给一位熟练的平面艺术家,并告诉他们这是一幅以H.R。Giger(瑞士画家、雕塑家与布景师,《异形》中的外星生物就是他的作品)的风格描绘的外星人弹吉他的画。我打赌他们可以精心清理它,创造出像右图那样的东西。(这些是稳定扩散的实际图像!)艺术家会利用他们对Giger的艺术作品的了解,以及对世界的了解(例如吉他应该是什么样子以及如何弹奏)来做到这一点。稳定扩散本质上是在做同样的事情![heading2]“推理步骤”[content]你熟悉大多数艺术生成工具中的“推理步骤”滑块吗?稳定扩散是逐步去除噪点的。这是一个运行25步的例子:外星吉他手的例子更有意义,因为你可以更清楚地看出它应该是什么样子的……但在上图中,起始图像看起来完全无法辨认!实际上,这个充满噪点的外星人例子其实是从过程的大约一半开始取的——它(最开始的图像)实际上也是从完全的噪点开始的!

稳定扩散(Stable Diffusion)是如何运作的

初始噪声和我们的文本描述是我们称之为稳定扩散的输入,不同的输入在这些表格中会有不同的值。我们也将一组大得多的数字插入到这些方程式中,但每次都是相同的——这些被称为稳定扩散的参数。还记得高中时用方程式绘制线条吗y = 3x + 2?如果这是稳定扩散,那么“x”是我们的输入,“y”是最终图像,数字3和2是我们的参数。(当然,方程式要复杂得多?)。输入图像由大约79万个值表示,提示中的33个“tokens”由大约2.5万个值表示。但在Stable Diffusion中大约有10亿个参数。?(你能想象用手算所有这些数字吗?!?)这10亿个数字被分布在大约1100个不同大小的矩阵中。每个矩阵在数学运算的不同阶段被使用。如果你感到好奇,我在这里打印出了这些矩阵的完整列表!再次强调,这些参数不会改变——每次生成图像时都是相同的数字。稳定扩散之所以有效,是因为我们找到了每10亿个数字的正确值。这难道不是非常荒谬吗?

稳定扩散(Stable Diffusion)是如何运作的

原文地址: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]在第一部分,我会给你一个高层次的解释(你可能已经熟悉了)。这是一个好的开始,但我知道这无法满足我的好奇心。?我会问,“好的,很棒,但是它是怎么做到的?”为了解答这个问题,我将展示一些稳定扩散的内部运作方式。内部的复杂程度可能超出了你的预期,但我至少想要更具体地向你展示其运作过程,这样它就不再是一个完全的谜了。更具体地说:稳定扩散是一个巨大的神经网络。神经网络是纯粹的数学。事实上,我们并不完全知道它在做什么!最终,稳定扩散之所以能工作,是因为我们训练了它。但让我们从全局视角开始吧!

Others are asking
现在Ai作图用什么?还是以前的Stable Diffusion吗?还是又出现了新的开源软件?
目前在 AI 作图领域,Stable Diffusion 仍然是常用的工具之一。Stable Diffusion 是 AI 绘画领域的核心模型,能够进行文生图和图生图等图像生成任务,其完全开源的特点使其能快速构建强大繁荣的上下游生态。 除了 Stable Diffusion,也出现了一些新的相关开源软件和工具,例如: :Stability AI 开源的 AI 图像生成平台。 :拥有超过 700 种经过测试的艺术风格,可快速搜索查找各类艺术家,并支持一键复制 Prompt。 同时,市面上主流的 AI 绘图软件还有 Midjourney,其优势是操作简单方便,创作内容丰富,但需要科学上网并且付费。如果您想尝试使用 Stable Diffusion,可以参考 B 站【秋葉 aaaki】这个 Up 主的视频了解具体的安装方法。
2025-03-24
什么是Diffusion Model
在 AI 图像生成中,“Diffusion Model”(扩散模型)是一类生成模型。其工作原理包括以下几个方面: 1. 正向扩散过程:向图像逐渐添加高斯噪声,直至图像完全无法识别,此过程可形式化为顺序扩散马尔可夫链。 2. 潜空间表示:将图像压缩到低维的潜在空间中,以减少计算量并提高生成速度。 3. 学习逆向过程:训练神经网络来预测每一步中噪声的分布,并逐步去除噪声以恢复清晰图像。 4. 文本到图像的生成:结合文本编码器和图像解码器,依据文本描述生成相应图像。 扩散模型的关键优势在于能够生成高质量的图像,且相比其他生成模型(如 GANs)在计算效率和稳定性方面更具优势。例如 Stable Diffusion 等模型就是基于扩散模型的文本到图像生成工具,可根据文本提示生成逼真的图像。 扩散模型的逆向过程,即从噪声中恢复图像的过程,可类比为雕刻,AI 逐步去除不必要的部分,最终得到清晰的图像。这个过程可以逐步进行,也可以一次性完成,取决于模型的具体实现和采样算法。 总的来说,扩散模型为 AI 图像生成提供了强大的技术手段,能在多种场景下生成高质量的图像。例如 Midjourney 就是一个由 Latent Diffusion Model(LDM)驱动的 AI 图像生成工具,它通过文本提示和参数输入,利用基于大量图像数据训练的机器学习算法生成独特的图像。
2025-03-21
Stable Diffusion 是 Diffusion Model 的优化版本,引入了潜在空间(Latent Space)技术,这个潜在空间(Latent Space)是什么意思,它的实现原理是什么?
在 Stable Diffusion 模型中,潜在空间(Latent Space)指的是图像的潜在分布,它包含了与图像相关的所有信息。 图像被映射到潜在空间后,扩散过程在这个空间中进行。ComfyUI 中的许多操作都在潜在空间中进行,如 KSampler 节点就是在这个空间中执行采样过程。在潜在空间中,通过节点调整对潜在空间的操作,如噪声添加、去噪步数等,这部分通常由潜在空间操作模块来实现。 在 Stable Diffusion 模型中,图像的潜在分布是通过一个编码器解码器结构来学习的。编码器将图像映射到潜在空间,而解码器则将潜在空间中的向量映射回图像空间。通过这种方式,模型可以学习到图像的潜在分布,从而实现图像生成、编辑和操作。 在采样过程中,Stable Diffusion 模型通过逐步降低噪声水平来生成图像。在这个过程中,模型根据当前的噪声水平预测图像的潜在分布,然后根据这个分布生成一个新的图像。这个过程重复进行,直到生成一个高质量的图像。 与之对应的是像素空间(Pixel Space),像素空间指的是图像中每个像素的原始颜色或强度值所组成的空间。图像可以看作是一个二维或三维的矩阵,其中每个元素代表一个像素。在像素空间中,图像的表示是密集的,且包含了大量的细节信息。
2025-03-21
Stable Diffusion有哪些模型
Stable Diffusion 模型包括以下几种: 1. Stable Video Diffusion 模型: 避坑指南:直接使用百度网盘准备好的资源可规避大部分坑;若报显存溢出问题,可调低帧数或增加 novram 启动参数;云部署实战部分,基础依赖模型权重有两个 models–laion–CLIPViTH14laion2Bs32Bb79K 和 ViTL14.pt,需放到指定路径下。 总结:Sora 发布后,之前的视频生成模型略显逊色,Stable Video Diffusion 作为开源项目可自由创作无需充值,有独特优势。其生成的视频画质清晰、过渡自然,虽目前只能生成最多 4 秒视频,但在不断迭代。 2. 潜在扩散模型(Latent Diffusion Models): CLIP:将用户输入的 Prompt 文本转化成 text embedding。 核心组件:VAE EncoderDecoder、UNET(进行迭代降噪,在文本引导下进行多轮预测)。 存放路径:ComfyUI 存放路径为 models/checkpoints/。 基础预训练模型:SD1.5、SDXL。 训练方法:DreamBooth(by Google)。 格式:.pt、.safetensor。 融合模型:checkpoint+checkpoint、Lora+Lora、checkpoint+Lora。 模型自带已适配的 VAE。 微调模型:概念学习、Checkpoint。 3. 不同版本模型对比: Stable Diffusion 2.0 系列模型。 Stable Diffusion 2.1 系列模型。 Stable Diffusion 1.6 系列模型。 SD Turbo 模型。 4. 性能优化方面: 使用 TF32 精度加速 SD 模型训练与推理。 使用 FP16 半精度加速。 对注意力模块进行切片。 对 VAE 进行切片。 大图像切块。 CPU<>GPU 切换。 变换 Memory Format。 使用 xFormers 加速 SD 模型训练与推理。 使用 tomesd 加速 SD 模型推理。 使用 torch.compile 加速 SD 推理速度。 此外,还有关于 Stable Diffusion 训练数据集制作、微调训练、基于其训练 LoRA 模型、训练结果测试评估等方面的内容。
2025-03-21
什么是Stable Diffusion
Stable Diffusion 是一种扩散模型的变体,最初称为潜在扩散模型(Latent Diffusion Models)。 它的核心技术来源于 AI 视频剪辑技术创业公司 Runway 的 Patrick Esser 以及慕尼黑大学机器视觉学习组的 Robin Romabach,其技术基础主要来自于他们之前在计算机视觉大会 CVPR22 上合作发表的潜扩散模型研究。 Stable Diffusion 是一种基于潜在扩散模型的文本到图像生成模型,能够根据任意文本输入生成高质量、高分辨率、高逼真的图像。其原理包括:使用新颖的文本编码器(OpenCLIP)将文本输入转换为向量表示以捕捉语义信息并与图像空间对齐;使用扩散模型将随机噪声图像逐渐变换为目标图像,该模型能从训练数据中学习概率分布并采样新数据;在扩散过程中利用文本向量和噪声图像作为条件输入给出每步变换的概率分布,以根据文本指导噪声图像向目标图像收敛并保持图像清晰度和连贯性;使用超分辨率放大器将生成的低分辨率图像放大到更高分辨率,该放大器也是扩散模型,能从低分辨率图像中恢复细节信息并增强图像质量。 简单来说,Stable Diffusion 就是一个 AI 自动生成图片的软件,通过输入文字就能生成对应的图片。它具有能处理任意领域和主题的文本输入并生成多样化和富有创意的图像、生成高达 2048x2048 或更高分辨率且保持良好视觉效果和真实感等优点。
2025-03-21
Stable Diffusion、MidJourney、DALL·E 这些生成式AI工具有什么区别
Stable Diffusion、Midjourney 和 DALL·E 这三个生成式 AI 工具主要有以下区别: 1. 开源性:Stable Diffusion 是开源的,用户可以在任何高端计算机上运行。 2. 学习曲线:Midjourney 的学习曲线较低,只需键入特定的提示就能得到较好的结果。 3. 图像质量:Midjourney 被认为是 2023 年中期图像质量最好的系统。 4. 应用场景:Stable Diffusion 特别适合将 AI 与来自其他源的图像结合;Adobe Firefly 内置在各种 Adobe 产品中,但在质量方面落后于 DALL·E 和 Midjourney。 5. 训练数据:这些工具都是使用大量的内容数据集进行训练的,例如 Stable Diffusion 是在从网络上抓取的超过 50 亿的图像/标题对上进行训练的。 6. 所属公司:DALL·E 来自 OpenAI。 在使用方面: 1. Stable Diffusion 开始使用需要付出努力,因为要学会正确制作提示,但一旦掌握,能产生很好的结果。 2. DALL·E 已纳入 Bing(需使用创意模式)和 Bing 图像创建器,系统可靠,但图像质量比 Midjourney 差。 3. Midjourney 需要 Discord,使用时需键入特定格式的提示。
2025-03-20
Stable Diffusion从哪可以使用
以下是关于 Stable Diffusion 的使用途径: 1. 模型获取: 在分享的链接中,有部分常用的大模型。文章的第三部分会详细介绍更多模型的下载途径及模型存放位置。 您可以从上的推理代码。 2. 低配置电脑使用: 可以通过云平台,如“青椒云”来畅玩 SD。点击链接 http://account.qingjiaocloud.com/signup?inviteCode=R0JJ9CHY 下载。 云平台使用步骤: 点击链接,注册账号。 下载并安装后,登录账号。 点击右上角个人中心进行实名认证。 进行实名认证后回到主界面,点击新增云桌面,选“AIGC 尝鲜”,新注册有优惠券可免费试用。 点击“开机”按钮,稍等后点击“进入桌面”,进入桌面后可关闭弹出框。 点击“此电脑”,在 C 盘找到 SD 根目录,点击“A 启动器.exe”。 点击右下角“一键启动”进入 SD。 用完记得关机,避免持续计费。
2025-03-07
扩散模型
在 AI 图像生成中,“diffusion”(扩散)通常指的是一类生成模型,称为扩散模型(Diffusion Models)。 扩散模型的工作原理如下: 1. 正向扩散过程:向图像逐渐添加高斯噪声,直到图像完全无法识别,这个过程可以被形式化为顺序扩散马尔可夫链。 2. 潜空间表示:将图像压缩到低维的潜在空间(Latent Space)中,以减少计算量和提高生成速度。 3. 学习逆向过程:训练一个神经网络来预测每一步中噪声的分布,并逐步去除噪声,从而恢复出清晰的图像。 4. 文本到图像的生成:结合文本编码器和图像解码器,根据文本描述生成相应的图像。 扩散模型的关键优势在于其生成高质量图像的能力,以及相比其他生成模型(如 GANs)在计算效率和稳定性上的优势。Stable Diffusion 等模型就是基于扩散模型的文本到图像生成工具,能够根据文本提示生成逼真的图像。 扩散模型的逆向过程,即从噪声中恢复图像的过程,可以类比为雕刻,AI 逐步去除不必要的部分,最终得到清晰的图像。这个过程可以逐步进行,也可以一次性完成,取决于模型的具体实现和采样算法。 从 2015 年被引入图像生成领域,直到近几年才真正受到关注。2020 年开始,关于扩散模型的研究领域兴起,支撑着许多最先进的图像生成系统。 无条件扩散模型可以从特定的图像(如人脸)中训练,并学习生成新的图像实例。还能用于图像超分辨率,增强低质量图像。 扩散模型还可以从文本提示生成图像,或者用于图像到图像的转换,以及图像编辑,比如添加或删除某些内容。 基本思想是通过迭代的正向扩散过程系统地并逐渐破坏数据分布中的结构,具体是向图像添加噪声,然后学习一个反向扩散过程,以恢复数据结构。目标是让模型学会去噪,以去除添加的噪音,从而能够从纯噪声图像开始合成新的图像。 Sora 是一个扩散模型,给定输入的噪声块(以及像文本提示这样的条件信息),它被训练来预测原始的“干净”分块。Sora 是一个扩散 Transformers 变换器,在包括语言建模、计算机视觉和图像生成在内的多个领域展示了显著的扩展性。在视频生成中,随着训练计算增加,固定种子和输入的视频样本质量显著提高。
2024-10-10
请帮我介绍一下大语言模型和扩散模型的区别
大语言模型和扩散模型主要有以下区别: 1. 处理的信息类型: 大语言模型专注于处理和生成文本信息,通过分析大量的文本数据来理解和生成自然语言。 扩散模型不仅能处理文本信息,还能理解和生成图片、音频等多种类型的信息,能在更多样化的任务中应用。 2. 应用场景: 大语言模型主要用于自然语言处理任务,如文本翻译、文本生成、情感分析等。 扩散模型由于能够处理多种信息类型,可以应用于图像识别与描述、视频分析、语音识别与生成等更广泛的领域。 3. 数据需求: 大语言模型主要依赖于大量的文本数据进行训练。 扩散模型则需要多种类型的数据进行训练,包括文本、图片、音频等,以便在不同模态间建立关联。 4. 生成过程: 扩散模型涉及模型学习从图像中去除噪声,其正向扩散过程是从干净的图像开始,迭代地添加噪点。 大语言模型则是通过分析和学习大量文本数据来生成自然语言文本。 5. 面临的挑战: 扩散模型可能生成不真实的图像,难以控制,训练的计算成本可能很高。 大语言模型在推理能力方面相对较弱。
2024-09-29
能用简单易懂的方法给我讲一下扩散模型的原理、核心技术思想和工作流程吗
扩散模型(Diffusion Models)是深度学习领域中一种强大的生成模型,它最近在生成图像、音频和其他类型的数据方面取得了显著的进展。扩散模型的核心思想是模拟物理过程中的扩散现象,将其应用于数据生成。 原理和核心技术思想: 1. 正向过程(Forward Process): 扩散模型的灵感来源于物理学中的扩散现象,比如一滴墨水在清水中逐渐扩散开来。 在数据生成的上下文中,正向过程模拟了数据逐渐“变得随机”的过程。从一个确定的输入数据点(比如一张清晰的图片)开始,通过逐步添加噪声,将其转化为一个完全随机的噪声分布。 2. 逆向过程(Reverse Process): 与正向过程相反,逆向过程的目标是从噪声数据重构出原始数据。 这个过程就像是逆转扩散过程,逐步预测并去除噪声,最终恢复出清晰的数据。 3. 概率框架: 扩散模型在概率框架下工作,它定义了数据从初始状态到噪声状态的马尔可夫链,以及从噪声状态恢复到初始状态的逆马尔可夫链。 4. 训练过程: 通过训练一个神经网络来学习逆向过程中的每一步,即如何从噪声数据中去除噪声并逐步恢复出原始数据。 工作流程: 1. 初始化: 选择一个初始数据点,比如一张图片。 2. 正向扩散: 通过逐步添加噪声,将初始数据点转化为噪声数据。这个过程可以看作是一系列逐步增加噪声的步骤。 3. 训练逆向模型: 使用神经网络学习如何逆转扩散过程。在训练阶段,网络会接收到部分噪声数据,并尝试预测原始数据。 4. 逆向去噪: 在生成阶段,从随机噪声开始,利用训练好的神经网络逐步去除噪声,每一步都使数据更接近原始状态。 5. 生成数据: 经过多轮逆向去噪步骤后,最终生成清晰的数据,如高质量的图片或音频。 扩散模型的一个关键优势是它能够生成高保真度的复杂数据,如高分辨率的图像。此外,由于其概率性质,它还可以生成多样化的数据样本,为数据生成任务提供了新的可能性。 扩散模型在生成任务中取得的成果令人瞩目,但同时也需要大量的计算资源,因为它们通常需要数百到数千个步骤来生成数据。不过,随着硬件的发展和模型优化,扩散模型的应用前景非常广阔。
2024-04-22
ai语言模型是如何运作的
AI 语言模型的运作机制主要包括以下几个方面: 1. 对于大语言模型(LLM),如豆包在回复时是一个字一个字地推理生成内容,即流式输出。这类似于输入法的输入联想逻辑,会根据输入的单个字或上下文推测下一个字。但存在两个问题:一是全量数据计算算力吃不消,二是仅算字的概率易受不相干信息干扰。为解决这些问题,出现了词向量机制和 Transformer 模型中的 Attention 自注意力机制。 2. 大型语言模型通过大量的数据训练来学习语言的结构和模式,包括词汇、语法、句子结构以及上下文关系。当接收到输入时,会根据学习到的知识生成连贯的回答,类似于词语接龙游戏。 3. 以 Kimi Chat 为例,大模型会利用网页搜索工具,在互联网上检索相关内容,并基于检索结果进行总结分析,最后给出结论。同时,大模型还可以通过自行规划任务执行的工作流路径,如先识别男孩的姿势,再找到相关模型处理等。 4. 在多智能体协作方面,如吴恩达通过开源项目 ChatDev 举例,可让一个大语言模型扮演不同角色相互协作,共同开发应用或复杂程序。 5. OpenAI 的研究主管 Lilian Weng 提出了“Agent = LLM + 规划 + 记忆 + 工具使用”的基础架构,其中大模型 LLM 扮演了 Agent 的“大脑”。规划包括子目标分解、反思与改进,将大型任务分解为较小可管理的子目标,并对过去的行动进行自我批评和反思,以提高最终结果的质量。 需要注意的是,大模型并不拥有无限知识,其知识来源于训练过程中接触到的数据,这些数据是有限的。虽然大模型可以处理和生成大量信息,但只能回答在训练过程中见过或类似的问题,且训练后的知识库不会自动更新。
2025-01-20
什么是知识库,以及他的运作原理是什么,请用小白也能理解的语言进行说明
知识库可以用比较通俗的方式来理解: 想象一个大语言模型就像一个非常聪明、读过无数书的人,但对于一些特定的工作场景中的细节,比如见到老板娘过来吃饭要打三折,张梦飞过去吃饭要打骨折,它可能并不清楚。这时候,知识库就像是给这个聪明的人发的一本工作手册。 从更专业的角度来说,知识库的运作原理通常包括以下几个步骤: 1. 文档加载:从各种不同的来源,比如 PDF、SQL 数据、代码等加载相关的文档。 2. 文本分割:把加载的文档分割成指定大小的块,称为“文档块”或“文档片”。 3. 存储:这包括两个环节,一是将分割好的文档块进行嵌入,转换成向量的形式;二是将这些向量数据存储到向量数据库中。 4. 检索:当需要使用数据时,通过某种检索算法从向量数据库中找到与输入问题相似的嵌入片。 5. 输出:把问题以及检索出来的嵌入片一起提交给大语言模型,大语言模型会根据问题和检索出来的提示一起生成更合理的答案。 以车型数据为例,每个知识库的分段中保存了一种车型的基础数据。当用户问宝马 X3 的售价是多少时,就能匹配到对应车型的分段,然后从其中获取到售价信息。 海外官方文档:https://www.coze.com/docs/zh_cn/knowledge.html 国内官方文档:https://www.coze.cn/docs/guides/use_knowledge
2024-11-13