7000字详解!幼儿园都能看懂的Stable Diffusion工作原理

1 评论 3137 浏览 20 收藏 27 分钟

作为文生图的大模型代表,Stable Diffusion在业内被越来越多的人使用。但很多人其实并不明白其工作原理。这篇文章,作者梳理了Stable Diffusion的工作原理,希望能够帮助大家更好的理解和使用它。

事先声明!本文没有苦涩难懂的各种专业术语和代码公式,请大家放心食用!!

在过去的一年里,AIGC在绘画领域的蓬勃发展对设计行业的冲击相信大家都有目共睹。各个公司都在要求设计师必须会使用 AIGC 的相关工具,其中以 Stable Diffusion 为基础的系列工具和 Midjourney 应用范围最广。

AI绘画领域能够取得如此巨大的进展,很大的功劳要归属于Stability AI发布了开源的Stable Diffusion。

它除了降低硬件要求,使其可以在相对普通的硬件上运行外。也正是因为它的开源性,应运而生的相关研究和为了更好控制模型的各种插件才发展的尤为繁荣。

本文也将从 Stable Diffusion 从发,聊一聊它的工作原理,希望能够帮助大家更好的理解和使用它。

为什么需要了解 SD 的工作原理

在使用 Stable Diffusion相关工具时,并非一定需要了解它的工作原理,但了解它对后续的使用会很有帮助。当遇到生成图片质量低,各种参数不知道怎么调整时,不会举手无措。因为你会知道它的配置参数比如:种子、采样器、步数、CFG 比例或去噪强度等是如何去影响最终生成图片的,能够帮助我们自定义调整算法以适应特定的设计需求和偏好,从而生成更符合预期的视觉内容。

在接下来的内容中,我会通过类比的方式让大家了解 Stable Diffusion的内部工作原理,以及它是如何能够通过提示词、图像参考等输入条件来生成各种创意图像的,再次强调本文没有苦涩难懂的各种专业术语和代码公式,几乎适合所有人。如果你在使用 Stable Diffusion 生图得时候,出图总是差强人意,相信看完这篇文章会对你有很大的帮助。

一、生成式模型的发展

生成模型发展初期主要是基于生成对抗网络(GAN),但在2021年随着扩散模型性能的显著提升和生成质量的大幅度改进逐渐成为主流。

因为它更接近人的思维模式,能够实现更自然和多样化的生成内容。

与传统的GAN相比,扩散模型在生成样本的质量、多样性和稳定性上具有一定的优势。并且在跨模态应用中表现出色,例如OpenAI的GLIDE和DALL·E 2、谷歌的Imagen、以及Stability AI的Stable Diffusion等都是基于扩散模型的应用,凸显了它在文本到图像生成中的强大能力。

下面我们先来介绍一下两者的工作原理,放心你一定能看懂!

1. 生成对抗网络(GAN)的工作原理

生成对抗网络(GAN)是由两部分组成的深度学习模型,它的核心思想是让两个网络一个生成器(Generator)和一个判别器(Discriminator)相互对抗,以此来提高生成数据的质量。

接下来我们用设计师做比喻来解释一下生成对抗网络(GAN)的工作原理,想象一个由两位设计师组成的团队:一位是设计实习生(生成器),另一位是设计总监(判别器)。他们相互配合完成客户所要求的视觉作品。

设计实习生(生成器):

实习生的职责是创造出新的视觉作品,比如海报、广告等。他的要求是制作出让客户满意漂亮的作品,以至于让客户相信是出自一位设计大师之手。

在初始阶段他的作品可能看起来比较生硬和不自然,很容易被识别出是新手做的。

设计总监(判别器):

总监主要是评价实习生的作品,并判断它画面是否和谐,字体、颜色等设计是否合理。总监具备视觉鉴赏的敏感眼光,能够识别出画面中的问题。

他的目标是确保提交的方案在视觉上没有问题,画面表达符合客服要求,保持高质量的方案产出。

工作流程:

第一步: 设计实习生提交他的初步设计给设计总监。早期的设计可能很容易出现视觉上的问题,因为缺乏工作经验和设计技法,需要不断地学习。

第二步: 设计总监审核这些设计,并提供反馈,指出画面哪些部分有问题或者没有很好的表达客户的需求。在这个过程中会逐渐提高对实习生的要求。

第三步: 设计实习生根据这些反馈调整他的创作方法,学习新的技术,尝试改进他的画面,让它们更加精细美观,能够更好的表达客户的需求。

重复: 这个过程不断重复,实习生不断改进他的作品,而总监也在不断提高对实习生的作品的视觉要求。

结果:

经过多次迭代后,如果实习生能够创造出,即使是非常有经验的设计总监都难以挑出问题的作品。到这一步就可以说生成对抗网络(GAN)已经训练完成了,生成器(设计实习生)已经能够制作出足够优秀的视觉作品,判别器(设计总监)的审美和视觉评判能力也得到了提升。通过两者不断地提高要求,GAN用于视觉生成,能够产生质量非常高的图像。

2. 生成对抗网络(GAN)被逐渐放弃的原因

GAN的训练不稳定:

设计总监过于挑剔:对设计师的每一项作品都持怀疑态度,并拒绝接受大部分设计方案。

设计师走捷径:为了通过审查,设计师开始不断重复相似的设计作品(模式崩溃),最终丧失了创造力和多样性。

难以评估设计质量:

缺乏明确标准:没有清晰的设计审美标准,很难判断设计师的作品是否符合期望。

设计总监的个人喜好:有时会因为自身的审美偏好对设计师的作品产生偏见,从而影响作品质量的评估。

对资源要求高:

设计师与设计总监的持续对抗需要大量的精力和时间,使得整个设计过程漫长而耗费资源。

设计师需要反复与总监沟通调整,沟通成本较高。

与GAN不同,扩散模型就像是拥有明确方向且稳定的设计团队,通过渐进式的优化逐步达成高质量的设计效果。下面我们继续来看一下扩散模型的工作原理。

二、扩散模型(Diffusion Models) 的工作原理

扩散模型之所以这样命名,是因为它的生成过程和物理学上的分子扩散过程非常相似,就像把冰融化为水再把水冻结成冰,水会在这个过程中逐渐移动和扩散。

扩散模型也是由主要的两个步骤组成,正向扩散和反向扩散,正向扩散是逐步增加噪声直至原始图像没有任何可以辨别的特征,反向扩散是逐步去除噪声直至恢复原始的数据让画面可辨认。

看不懂没有关系,同样我们做个比喻,比如用文物修复师的角色来形容扩散模型的工作原理,文物修复师的工作是修复一件经历了严重损坏的古老珍贵文物。

1. 损坏模拟(正向扩散的加噪过程)

  • 修复师修复文物的时候,首先需要完全了解损坏的过程。因此他采取了一个看似逆向的方法:他先对一个完好无损的相似文物进行人工老化和损坏处理,逐步施加各种损害,比如裂纹、掉漆、褪色等,模拟多年来可能发生的自然磨损。
  • 这个过程相当于扩散模型中的正向过程,即逐步增加噪声。这里的“噪声”不是字面意义上的声音,而是指对文物中的各种损坏因素(裂纹、掉漆、褪色等),让它从完好的状态逐渐变为完全损坏的状态。

2. 文物修复(反向扩撒的去噪过程)

  • 接下来就到了修复师把老化的文物恢复到它原始未受损的状态。这需要非常高超的技术和对文物原始状态的深刻理解。修复师会使用各种工具和化学物质,仔细地去除每一处人为的损坏,包括填补裂缝、重新上色、并修复褪色和磨损的部分。
  • 这一过程对应扩散模型中的逆向过程,即逐步去除噪声。在这里,“去除噪声”意味着修复师在消除之前刻意添加的所有损坏的同时,逐步还原文物的原始状态。

3. 噪声

在这个过程中,”噪声”指的是刻意施加到文物上的各种损坏因素。

这些“噪声”被有计划地逐步加入到文物的破坏中,来模拟文物被随机破坏。这个过程的目的是,在修复训练中创建一个从完全有序到完全无序的连续过程,以便文物修复师学习如何把随机破坏的文物重新恢复出完好的、精美的原始状态。

4. 噪声预测器和采样

噪声预测器和采样在反向扩散中是不可或缺的关键技术。

噪声预测器可以想象成一个高级的诊断工具,文物修复师使用它来分析艺术品的损坏程度和类型。这个工具能够精确地确定每一处损伤的位置、深度和影响,为修复工作提供依据。

采样过程可以视为修复过程中的实际操作步骤,每一步操作都基于噪声预测器提供的数据。由于解决某一个破损的问题有很多种方法,所以采样的实际操作步骤也可以分为很多种。对应到模型中就是各种采样器,比如:Euler, Euler Ancestral, DDIM, DPM++ 2M Karras等。再简单点来说,比如同一道数学题有多种解法,每一种解法就是一个个的采样器。

通过上面的形容,把扩散模型的“加噪”和“去噪”用文物修复的过程来描述,相信大家应该都懂了,其中文物修复师不仅要理解文物人为加速老化过程,还要掌握如何从极端损坏中恢复出文物的原始状态。经过这样不断的双重过程,加上修复工具(噪声预测器和采样等)的使用,先破坏再修复的方式,能够让文物修复师的能力逐渐提升,达到高质量还原文物的目的。回到扩散模型,就是让扩散模型在不断的加噪和去噪中不断训练,提高模型的能力,让其能够生成更高质量的图片或其它逼真数据的目的。

我们经常听到的Stable Diffusion,与扩散模型(Diffusion Models)并不相等,扩散模型是通用的底层技术。而Stable Diffusion是一种实现了特定技术应用的扩散模型,OK,下面我们继续来看一下Stable Diffusion 的工作流程。

三、Stable Diffusion 的工作流程

Stable Diffusion虽然与扩散模型的基本原理相同,但它更注重条件生成,名称中的Stable(稳定的)也强调了这一点,也正是因为条件生成的各项技术,才能让模型更接近我们的想法来生成图片,所以条件生成也是Stable Diffusion的核心功能。

条件生成

条件生成技术在视觉领域扮演着核心角色,我们最常使用的文生图(Text-to-Image)就是其最基础的功能之一, 除了文本到图像的转换。如图像到图像(Image-to-Image)、图像修复(Inpainting)、图像扩展(Outpainting)以及深度到图像(Depth-to-Image)等。这些技术都在各个不同的方向解决控制视觉和图形的任务,下面来看一下它们具体是如何工作的。

文生图(Text-to-Image):文本到图像的转换

将文本转换为计算机能够理解的内容是Stable Diffusion最基本的功能,也就是我们常说的文生图功能。它由以下几部分组成。

分词器(Embedding):

由于计算机不能直接理解人类的语言,只能处理数字和符号。分词器的任务是把我们人类的语言转换成计算机可以理解的数字表示。举个例子,比如:“一只在草地上跳舞的猫”,经过分词器处理后可能是:‘一只’,‘在’,‘草地上’,‘跳舞’,‘的’,‘猫’。通过预先定义的词汇表,将每个词语映射成一个唯一的数字编号。比如:{‘一只’: 1,‘在’: 2, ‘草地上’: 3,‘跳舞’: 4,‘的’:5,‘猫’: 6}。

嵌入(Embedding):

分词器把文本处理好以后,嵌入将数字编号转换为计算机可以处理的数字向量。嵌入向量可以让模型理解文本的含义,并进行后续的任务,例如文本分类、翻译或图像生成,也就是赋予词汇意义。

语言-图像对比预训练模型-CLIP(Contrastive Language-Image Pre-training):

通过学习大量的图像和对应的文本描述,CLIP可以将两者联系在一起,使得模型能够根据图像找到相关的文本描述,根据文本描述找到相关的图像。为计算机提供理解自然语言和视觉内容之间关联的能力,来指导图像的生成。

类标签(Class Labels)

类标签作为条件信息,可以帮助模型生成特定类别的图像。它作为一种补充信息能够提高生成图像的准确性。比如:“一支鲜花插在牛粪上”,可以使用“花”这个标签来确保生成图像中包含花的元素。还可以与特定的风格相关联,比如“漫画风格”“赛博朋克”等,或者与其他类别标签结合,比如:“赛博朋克风格的花插在牛粪上”,模型可以学习到每个类标签与特定图像风格的关联性,从而生成符合标签描述的风格图像。

虽然在Stable Diffusion中主要依赖于文本提示(prompt)来指导图像生成,但类标签在某些应用场景中可以进一步加强生成图像的准确性和多样性。

CFG Scale值(Classification Free Guidance Scale)

CFG Scale值是一种调节参数,它可以控制生成图像多大程度上符合我们给的文本描述或其他条件,数值越大与提示词的匹配度越高,反之越小。CFG Scale值的范围一般在5到15之间,较高值通常在7-12可以生成更符合描述的图像,较低在5以下,可以生成更具创意的多样化图像。在WebUI中CFG Scale值过高出现的过拟合现象,就是模型在尽可能的把提示词中的元素全部画出来,呈现的效果细节会非常多效果很差,这种情况是因为采样的迭代步数不够,不能够画出所有的细节,提高迭代步数你会发现画面会比低CFG Scale值更加精细,画面也不会出现崩坏,但出图占用更多的算力,出图时间很长。

图生图(Image-to-Image)

图生图在Stable Diffusion中可以实现图像风格转换、图像修复、图像扩展、图像编辑与变化、草图到完整图像等工作,它是以用户提供初始图像作为生成的基础,模型从初始图像开始,逐步增加或去除噪声,结合文本描述等其它条件逐渐从初始图像变为符合目标条件的最终图像。

图像深度(Depth-to-Image)

利用深度传感器或者深度估计模型来生成图像深度图,把图像的深度信息作为条件引导,可以让模型理解图像中各个物体到摄像机的距离,能够更好地把握整个场景的几何结构,提高图像的准确性。

ControlNet

ControlNet 是一种神经网络,它以Stable Diffusion的U-Net架构作为基础,加入额外的网络分支,用于处理特定的条件输入。可以理解为在Stable Diffusion本身的条件输入外加入额外的限制条件,ControlNet通过额外的控制输入(如深度图、姿态图、草图等),可以实现对图像生成过程的精确控制。

潜在空间(Latent Space)

潜在空间在Stable Diffusion中起着连接高维图像空间与条件信息的桥梁作用。

就像是PS,文本描述、类标签、ControlNet等就像是ps里的各个功能,并且设置好了动作,然后点一下就生成图像

我们可以把它看做是一个巨大的存满各种各样画作的收藏馆,这里的画不是真正的画,而是包含图像主要特征的各种元素,就像一幅没有拼起来的拼图。Stable Diffusion是这个收藏馆的管理员,文本描述、类标签、ControlNet 等就像是寻找指南,告诉管理员(Stable Diffusion)要寻找那一幅画作,最终根据各种要求快速的找到符合描述的画作。

变分自编码器(Variational Autoencoder,简称VAE)

VAE是一种生成模型,用于学习数据的潜在表示并生成类似的样本。我们同样以画作收藏馆做比喻来理解一下它,VAE是收藏馆的理货员,负责藏馆的画作的摆放和目录的整理,它能够帮助管理员(Stable Diffusion)快速找到目标画作,由于画作是一个个拼图块,它还需要将其拼成完整的图像交给管理员。在Stable Diffusion的工作流程中,VAE起着潜在空间和扩散模型之间的桥梁作用。

工作流程

潜在噪声张量生成:基于固定或随机种子生成具有潜在噪声的张量;文物修复师拿到一件被破坏掉的文物,这是他开始工作的基础。

条件嵌入生成:将文本描述、深度图或类标签等条件信息转换为嵌入向量,以多个维度存储特征。文本描述、深度图、类标签等就像修复师的修复指南,帮助他知道文物原来样子。

CLIP Transformer处理:使用交叉注意力技术计算嵌入向量之间的关系,提供图像生成的指导。CLIP Transformer就像修复师的“详情说明书”,将修复指南转化为详细的修复步骤。

U-Net去噪过程:U-Net根据CLIP Transformer的结果引导去噪过程,以逐步生成符合目标描述的潜在向量。U-Net就像修复师,根据转换好的详情说明逐步还原被破坏的文物,让它逐渐显露出文物完好的形象。

采样与噪声调度器:采样算法生成噪声并从初始张量中减去,噪声调度器控制去噪的非线性进度。采样算法和噪声调度器就像修复师的“工作计划”,决定每次修复的细节和顺序。

VAE与潜在空间:

  • 编码器:VAE编码器将原始图像压缩成潜在向量,形成潜在空间中的索引。VAE编码器就像修复师的“修复指南目录”,负责将文物的形象特征记录下来。
  • 潜在空间:存储由编码器生成的潜在向量,是图像的低维特征表示空间。潜在空间就像修复师的“特征库”,存放着所有文物的形象特征。
  • 解码器:VAE解码器将潜在向量解码成完整的高分辨率图像。VAE解码器就像“文物特征组装器”,将文物的特征转换成完整的文物形象。

最终图像生成:去噪过程完成后,张量通过VAE解码器离开潜在空间,文物修复师通过最终的修复步骤,呈现出完整的文物形象。

写在最后

作为一款开源工具,Stable Diffusion为我们提供了强大的可定制和控制能力,它不仅降低了硬件要求,让大部分人都可以使用外,还通过丰富的插件生态系统拓展了模型的应用范围。了解它的工作原理,能帮助我们更好地调整参数,提高图像质量,满足特定的设计需求和偏好。

在当前的环境下,熟悉使用AIGC技术已经成为企业要求的必备能力,它不仅大幅降低了设计内容的制作成本与时间,还拓展提高了设计的能力边界,不再需要设计师为某种风格而去学习一门技法。但也降低了设计师工作的门槛,所以保持终身学习紧跟前沿技术,才能立于不败之地,愿你我共勉!

今天就写到这里,bay~

本文由 @五幺六 原创发布于人人都是产品经理。未经许可,禁止转载。

题图来自 Pixabay,基于CC0协议。

该文观点仅代表作者本人,人人都是产品经理平台仅提供信息存储空间服务。

更多精彩内容,请关注人人都是产品经理微信公众号或下载App
评论
评论请登录
  1. 现在的AI绘图功能太多太乱了,但也给很多人提高了效率。

    来自广东 回复