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
stable diffusion安装教程
以下是超详细的 Stable Diffusion 安装教程: 一、查看电脑配置是否支持 如果您的电脑是 AMD 或者 Intel,可能不太支持 SD,网上的安装教程也较麻烦。您可以查看专用 GPU 内存: 1. 4GB:说明电脑勉强可以跑动 SD,出图时间较长。 2. 6GB:出一张图的时间是 20 50 秒,SD 的大部分功能都可以使用。 3. 8GB:5 20 秒可以出一张图,基本上 SD 的所有功能都对您开放。 以上操作是用于查看 Windows 系统的,至于 Mac 系统,可以查看以下视频并按照视频一键安装:https://www.bilibili.com/video/BV1Kh4y1W7Vg/?spm_id_from=333.788&vd_source=6f836e2ab17b1bdb4fc5ea98f38df761 二、安装 SD 本地部署 1. 电脑配置能支持 SD 运行的情况下,我们使用 B 站秋叶分享的整合包。整合包链接:https://pan.baidu.com/s/1hY8CKbYRAj9RrFGmswdNiA?pwd=caru ,提取码:caru 。 2. 具体安装方法: 打开链接,下载《1.整合包安装》,存放到电脑本地。 打开保存到电脑里的文件夹。 打开文件夹《1.秋叶整合包主包》,鼠标右击文件,点击“解压文件”。 选择解压到 D 盘或者 E 盘,避免 C 盘被占满,点击确定。 解压完成后,来到第二个文件夹,双击里面的文件,点击安装。 打开刚刚解压保存的 SD 的根目录,找到启动器,鼠标右击启动器,点击“发送到”,选择桌面快捷方式,方便下次直接在桌面双击进入。 双击启动器,等待更新,接着点击左边第二个“高级选项”,在显存优化里,根据自己电脑的显存选择(即上面查看的专用 GPU 内存)。 回到第一个一键启动,点击右下角的一键启动。如果出现报错,可以回到最开始的界面,在左边点击“疑难解答”,再点击右边的“开始扫描”,最后点击“修复”按钮。 三、安装超清无损放大器 StableSR 安装方式有两种: 1. 在扩展面板中搜索 StableSR,可以直接安装。 2. 将下载好的插件,放在路径文件夹“……\\sdwebuiakiv4\\extensions”下。安装完成后,重启 webUI,就可以在脚本里面找到这个放大器。
2025-03-11
如何下载stable diffusion
以下是下载 Stable Diffusion 的方法: 1. 您可以从 上的推理代码。 2. 大多数的模型可以在 Civitai(C 站)这个网站里面下载,网址为 https://civitai.com/ 。下载时需要注意: 科学上网,这个需要您自己想办法。 点击右上角的筛选按钮,在框框里面找到自己需要的模型类型,如 Checkpoint=大模型、LoRA=Lora 等。 看到感兴趣的模型,点击右边的“Download”保存到电脑本地。 可以点击左上角的“Images”查看别人已经做好的图片,找到喜欢的点进去,直接点击 Lora 和大模型,可以直接跳转到下载页面。 3. 下载的模型保存位置: 大模型:SD 根目录就是存放 SD 的那个文件夹。 Lora 和 VAE 也有相应的保存位置。 4. 如果不知道下载的模型类型及应放置的文件夹,可以使用秋叶的模型解析工具 https://spell.novelai.dev/ ,把模型拖动到空白处即可查看模型信息。 5. 还可以安装 Civitai 助手插件,在 C 站搜索下载,或者去百度云盘下载后放在“……\\sdwebuiakiv4\\extensions”路径文件夹下。安装完成后重启 webUI,可在上方的标签选项卡中找到该插件,其功能包括下载预览图、下载文件、检查更新等。
2025-03-11
如何安装stable diffusion
以下是安装 Stable Diffusion 的详细步骤: 1. 安装前准备: 确认电脑系统为 Win10 或 Win11。查看方法:在桌面上找到“我的电脑”,鼠标右键点击,点击“属性”,查看 Windows 规格。 检查电脑性能: 电脑运行内存 8GB 以上。检查方法:鼠标右击桌面底部任务栏,点击“任务管理器”,在“性能”里面找到“内存”,查看划线的参数。8GB 勉强达到标准,16GB 可正常使用,32GB 能非常自由地使用 SD。 显卡为英伟达(N 卡)且显卡内存 4GB 以上。查看方法:在“任务管理器”中查看“GPU”,先确认显卡名字或型号为 NVIDIA。 2. 下载整合包: 下载 B 站秋叶分享的整合包。链接:https://pan.baidu.com/s/1hY8CKbYRAj9RrFGmswdNiA?pwd=caru ,提取码:caru 。 3. 安装整合包: 打开链接,下载《1.整合包安装》,存放到电脑本地。 打开保存到电脑里的文件夹。 打开文件夹《1.秋叶整合包主包》,鼠标右击文件,点击“解压文件”。 选择解压到 D 盘或者 E 盘(避免 C 盘被占满),点击确定。 解压完成后,来到第二个文件夹,双击里面的文件,点击安装。 打开刚刚解压保存的 SD 的根目录,找到启动器,鼠标右击启动器,点击“发送到”,选择“桌面快捷方式”,方便下次直接在桌面双击进入。 4. 启动和设置: 双击启动器,等待更新,接着点击左边第二个“高级选项”。 在显存优化里,根据自己电脑的显存选择(即上面查看的专用 GPU 内存)。 回到第一个一键启动,点击右下角的一键启动。 若出现报错,可回到最开始的界面,在左边点击“疑难解答”,再点击右边的“开始扫描”,最后点击“修复”按钮。 此外,关于 StableSR 超清无损放大器的安装: 安装方式是在扩展面板中搜索 StableSR 直接安装,或者将下载好的插件放在“……\\sdwebuiakiv4\\extensions”路径文件夹下。安装完成后,重启 webUI,就可以在脚本里面找到这个放大器。
2025-03-10
Stable Diffusion从哪可以使用
以下是关于 Stable Diffusion 的使用途径: 1. 模型获取: 在分享的链接中,有部分常用的大模型。文章的第三部分会详细介绍更多模型的下载途径及模型存放位置。 您可以从上的推理代码。 2. 低配置电脑使用: 可以通过云平台,如“青椒云”来畅玩 SD。点击链接 http://account.qingjiaocloud.com/signup?inviteCode=R0JJ9CHY 下载。 云平台使用步骤: 点击链接,注册账号。 下载并安装后,登录账号。 点击右上角个人中心进行实名认证。 进行实名认证后回到主界面,点击新增云桌面,选“AIGC 尝鲜”,新注册有优惠券可免费试用。 点击“开机”按钮,稍等后点击“进入桌面”,进入桌面后可关闭弹出框。 点击“此电脑”,在 C 盘找到 SD 根目录,点击“A 启动器.exe”。 点击右下角“一键启动”进入 SD。 用完记得关机,避免持续计费。
2025-03-07
stable diffusion是免费还是收费
Stable Diffusion 是开源免费的。其具有以下特点和使用规则: 优势在于开源免费、可以本地化部署、创作自由度很高,但需要较好的电脑配置,尤其是显卡。 所有代码均在 GitHub 上公开,大家可以拷贝使用。 免费用于非商业用途:个人和组织可以免费将该模型用于非商业用途,包括科学研究。 免费用于商业用途(年收入高达 100 万美元):初创公司、中小型企业和创作者可以免费将该模型用于商业目的,只要其年总收入低于 100 万美元。对于年收入超过 100 万美元的组织,需联系相关方咨询企业许可证。
2025-03-05
Stable Diffusion 教程
以下是关于 Stable Diffusion 的教程: Stable Diffusion 是什么: 稳定扩散(Stable Diffusion)是一个 AI 自动生成图片的软件,通过输入文字就能生成对应的图片。 入门教程: 新人视频教程:https://waytoagi.feishu.cn/wiki/O5jEwgZIRiQ10xkqGOQcKtSBnSe 文字教程:https://zhuanlan.zhihu.com/p/622238031 模型网站: C 站SD 模型网站:https://civitai.com/ Liblibai模型+在线 SD:https://www.liblib.ai/ huggingface:https://huggingface.co/models?pipeline_tag=texttoimage&sort=trending 吐司站:https://tusiart.com/ 推荐模型:人像摄影模型介绍:https://www.bilibili.com/video/BV1DP41167bZ 为什么要学 Stable Diffusion 及其强大之处: 学习 Stable Diffusion 非常简单,目的是花更少时间快速入门。 它可以生成真人 AI 美女、头像、壁纸,辅助绘画,还能用于恢复画质、室内设计等,有很多功能和应用场景。 希望以上内容对您有所帮助。
2025-03-04
扩散模型
在 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