深入解析Stable Diffusion:从文本到图像的生成奥秘

前言

前两天写了:北方的郎:Transformer Explainer:交互式学习Transformer模型的利器,配合本文详解,轻松掌握Transformer对Transformer Explainer进行详细介绍。

今天这个是diffusion-explainer,是和Transformer Explainer同一组研究人员开发的交互式可视化工具,旨在帮助用户深入理解Stable Diffusion模型的内部工作原理,为用户提供了一种直观的学习体验。

所有的AI设计工具,安装包、模型和插件,都已经整理好了,👇获取~

请添加图片描述

什么是Stable Diffusion?

Stable Diffusion 是一种文本到图像的模型,能够将文本提示转化为高分辨率图像。例如,如果你输入“a cute and adorable bunny”,Stable Diffusion 会在几秒钟内生成描绘这一内容的高分辨率图像——一只可爱的小兔子。点击 Diffusion Explainer 中的“Select another prompt”可以更改提示,并查看每个提示生成的有趣图像!

Stable Diffusion 是如何工作的?

Stable Diffusion 首先将文本提示转换为文本表示,即用数值概括提示内容。文本表示用于生成图像表示,图像表示则概括了文本提示中描述的图像。然后,图像表示会被放大为高分辨率图像。

你可能会好奇,为什么 Stable Diffusion 要引入图像表示,而不是直接生成高分辨率图像。原因是计算效率。在紧凑的图像表示上进行大部分计算,而不是在高分辨率图像上,可以显著减少计算时间和成本,同时保持高图像质量。

图像表示最初是随机噪声,经过多个时间步的细化,最终生成与文本提示高度一致的高质量图像表示。细化时间步的数量通常设置为 50 或 100;在 Diffusion Explainer 中,我们将其固定为 50。

我们将 Stable Diffusion 的图像生成过程分解为三个主要步骤:

  1. 文本表示生成

    :Stable Diffusion 将文本提示转换为文本向量表示。

  2. 图像表示细化

    :从随机噪声开始,Stable Diffusion 在文本表示的指导下逐步细化图像表示。Stable Diffusion 会重复多次细化步骤(在 Diffusion Explainer 中为 50 次)。

  3. 图像放大

    :Stable Diffusion 将图像表示放大为高分辨率图像。

现在,让我们更详细地了解每个过程。

文本表示生成(Text Representation Generation

点击“文本表示生成”可以查看文本提示如何被转换为文本表示,即概括提示内容的向量。它包含两个步骤:分词文本编码

1 分词(Tokenizing

分词是处理文本数据的常见方法,将文本转换为数字并用神经网络处理。

Stable Diffusion 将文本提示分词为一系列标记。例如,它将文本提示“a cute and adorable bunny”分解为标记:a、cute、and、adorable、bunny。此外,为了标记提示的开始和结束,Stable Diffusion 在标记序列的开头和结尾添加了 <start><end> 标记。上述示例的最终标记序列为:<start>, a, cute, and, adorable, bunny, <end>

为了便于计算,Stable Diffusion 通过填充或截断使任何文本提示的标记序列长度保持为 77。如果输入提示的标记少于 77 个,则在序列末尾添加 <end> 标记,直到达到 77 个标记。如果输入提示的标记超过 77 个,则保留前 77 个标记,其余部分被截断。长度 77 是为了平衡性能和计算效率而设定的。

2. 文本编码

Stable Diffusion 将标记序列转换为文本表示。为了使用文本表示来指导图像生成,Stable Diffusion 确保文本表示包含与提示中描述的图像相关的信息。这是通过一种称为 CLIP 的特殊神经网络实现的。

CLIP 由图像编码器和文本编码器组成,经过训练可以将图像及其文本描述编码为彼此相似的向量。因此,CLIP 的文本编码器计算的提示文本表示很可能包含与提示中描述的图像相关的信息。你可以点击上方的“文本编码器”显示可视化解释。

图像表示细化(Image Representation Refining

Stable Diffusion 生成图像表示,即用数值概括文本提示中描述的高分辨率图像的向量。这是通过在多个时间步上细化随机初始化的噪声来实现的,从而逐步提高图像质量和对提示的贴合度。你可以通过调整 Diffusion Explainer 中的种子来更改初始随机噪声。点击“图像表示细化器”可以可视化每个细化步骤,包括噪声预测和去除。

1. 噪声预测(Noise Prediction

在每个时间步,一个称为 UNet 的神经网络预测当前时间步图像表示中的噪声。UNet 接受三个输入:

  • 当前时间步(timestep)的图像表示

  • 提示的文本表示,用于指导应从当前图像表示中去除哪些噪声以生成符合文本提示的图像

  • 时间步(timestep),用于指示当前图像表示中剩余的噪声量

换句话说,UNet 在文本提示表示和时间步的指导下预测当前图像表示中的条件噪声。

然而,尽管我们使用文本提示来条件化噪声预测,生成的图像表示通常对文本提示的贴合度不够强。为了提高贴合度,Stable Diffusion 通过额外预测基于空提示(“ ”)的通用噪声,并将其从条件噪声中减去,来衡量提示的影响:

提示的影响 = 条件噪声 - 通用噪声(impact of prompt=prompt-conditioned noise-generic noise

换句话说,通用噪声有助于提高图像质量,而提示的影响则有助于贴合提示。最终噪声是它们的加权和,由称为引导尺度的值控制:

通用噪声 + 引导尺度 × 提示的影响(generic noise+guidance scaleximpact of prompt

引导尺度为 0 表示完全不贴合文本提示,而引导尺度为 1 表示使用原始的条件噪声。较大的引导尺度会导致更强的提示贴合度,但过大的值可能会降低图像质量。在 Diffusion Explainer 中更改引导尺度值,看看它如何改变生成的图像。

2. 噪声去除

Stable Diffusion 然后决定从图像中实际去除多少预测噪声,这是由一种称为调度器的算法决定的。去除少量噪声有助于逐步细化图像并生成更清晰的图像。

调度器通过考虑总时间步数来做出这一决定。然后将缩小后的噪声从当前时间步的图像表示中减去,以获得细化后的表示,该表示成为下一个时间步的图像表示:

时间步 t+1 的图像表示 = 时间步 t 的图像表示 - 缩小后的噪声

image representation of timestep_t+1_=image representation of timestep_t_-downscaled noise

图像放大

在所有去噪步骤完成后,Stable Diffusion 使用称为解码器的神经网络将图像表示放大为高分辨率图像。在文本表示的指导下完全去噪的细化图像表示将生成与文本提示高度一致的高分辨率图像。

提示关键词如何影响图像生成?

编写文本提示可能非常依赖经验和重复性。例如,从提示“a cute bunny”开始,你可能需要反复添加和删除关键词,例如“in the style of cute pixar character”,直到达到所需的图像。

因此,了解提示关键词如何影响图像生成对编写和优化提示非常有帮助。点击文本提示中高亮显示的关键词,比较仅关键词不同的两个提示生成的图像。

关于AI绘画技术储备

学好 AI绘画 不论是就业还是做副业赚钱都不错,但要学会 AI绘画 还是要有一个学习规划。最后大家分享一份全套的 AI绘画 学习资料,给那些想学习 AI绘画 的小伙伴们一点帮助!

对于0基础小白入门:

如果你是零基础小白,想快速入门AI绘画是可以考虑的。

一方面是学习时间相对较短,学习内容更全面更集中。
二方面是可以找到适合自己的学习方案

包括:stable diffusion安装包、stable diffusion0基础入门全套PDF,视频学习教程。带你从零基础系统性的学好AI绘画!

零基础AI绘画学习资源介绍
👉stable diffusion新手0基础入门PDF👈

请添加图片描述
在这里插入图片描述

👉AI绘画必备工具👈

在这里插入图片描述

温馨提示:篇幅有限,已打包文件夹,获取方式在:文末

👉AI绘画基础+速成+进阶使用教程👈

观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

在这里插入图片描述

温馨提示:篇幅有限,已打包文件夹,获取方式在:文末

👉12000+AI关键词大合集👈

在这里插入图片描述

这份完整版的AI绘画全套学习资料已经上传优快云,朋友们如果需要可以微信扫描下方优快云官方认证二维码免费领取【保证100%免费

请添加图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值