Stable Diffusion是2022年发布的深度学习文本到图像生成模型,它主要用于根据文本的描述产生详细图像,尽管它也可以应用于其他任务,如内补绘制、外补绘制,以及在提示词(英语)指导下产生图生图的翻译。
根据维基百科的描述可以得知,Stable Diffusion主要用于文本生成图像的深度学习模型,也就是常说的txt2img的应用场景中:通过给定文本提示词(text prompt),该模型会输出一张匹配提示词的图片。
例如输入文本提示词:A cute cat,Stable Diffusion会输出一张带有可爱猫咪的图片(如下图)。
Stable Diffusion是基于“潜在扩散模型”(latent diffusion model;LDM)的模型,因此下面内容将以解析LDM展开。为方便起见,由于Stable Diffusion与LDM是相同的,下文面将用Stable Diffusion的缩写SD来统称二者。
一、技术原理
Stable Diffusion 技术是 Diffusion 的改进版本,它通过引入隐向量空间来克服 Diffusion 速度上的限制。除了可用于文本生成图任务,该技术还可以应用于图像生成图像、特定角色描绘,甚至是超分辨率或上色任务。本文主要介绍了 stable diffusion 的计算思路,并对各个重要的组成模块进行了分析,着重解析了最常用的“文本生成图”任务。
下图展示了一个基本的文本生成图流程,将 Stable Diffusion 结构视为一个黑盒。当黑盒的输入是文本串“paradise(天堂)、cosmic(广阔的)、beach(海滩)”时,利用这项技术生成了符合输入要求的图像,即最右边的图中呈现了蓝天白云和一望无际的广阔海滩。
Stable Diffusion 的核心思想是利用文本中包含的图像分布信息来逐步去噪一张纯噪声的图片,生成与文本信息匹配的图像。它是一个组合系统,包含多个模型子模块,下面将逐步拆解这个黑盒。Stable Diffusion 的主要问题是如何将人类输入的文字串转换成机器可理解的数字信息。这里使用了文本编码器(蓝色模块),它将文字转换成计算机可理解的数学表示,然后输出一系列包含输入文字信息的语义向量。这个语义向量可以作为图片生成器(粉黄组合框)的控制输入,这也是 stable diffusion 技术的核心模块。图片生成器可以分成两个子模块(粉色模块+黄色模块)来介绍。
文本编码器(蓝色模块):将文字转换成计算机可理解的数学表示,使用了 CLIP 模型,将文字串输入,输出包含文字信息的语义向量。 图片信息生成器(粉色模块):与 Diffusion 模型的区别在于,它通过一个 Unet 网络和一个采样器算法共同生成低维空间向量。在生成过程中,采样器算法控制图片生成速度,而循环标志代表了多次迭代过程。 图片解码器(黄色模块):接收图片信息生成器的低维空间向量作为输入,通过升维放大得到完整图片。这个模块只在最后阶段进行一次推理,获得生成图片的最终步骤。在扩散过程中,图片信息生成器通过 Unet 网络和语义控制向量重复 30~50 次,去除纯噪声并注入语义信息,得到具有丰富语义信息的隐空间向量。采样器负责动态调整 Unet 去噪强度。从图 3 可以直观地看出,经过迭代去噪后的隐向量已经耦合了语义信息,解码出来是一张包含有效语义信息的图片。
二、应用场景
Stable Diffusion是一种多功能的AI技术,可以应用于文本生成图像、图像修复、超分辨率重建、视频制作、游戏设计等领域。例如,设计师可以使用Stable Diffusion通过文字描述来生成符合描述的海报或服装图案,数字图像处理和计算机视觉领域可以使用它来修复图像中的缺陷或提高图像分辨率。此外,影视制作和游戏开发领域可以使用Stable Diffusion来生成动态图像或游戏场景和角色。
Stable Diffusion源码地址:https://github.com/CompVis/stable-diffusion
为了方便普通人使用Stable Diffusion,开源项目stable-diffusion-ui应运而生。它是一个基于Stable Diffusion模型的web应用程序接口,提供了多种功能,如txt2img、img2img、inpaint等,用户可以通过调节不同参数生成不同效果,还可以在Extras中找到优化图像质量的功能,在Settings中修改默认参数。通过这个UI界面,普通人可以方便地使用Stable Diffusion进行创作,而无需接口或命令程序的支持。
Stable Diffusion web UI 地址:GitHub - AUTOMATIC1111/stable-diffusion-webui: Stable Diffusion web UI
三、总结
Stable Diffusion是一个备受关注的文本到图像生成模型,具有广泛的应用前景和潜在的发展空间。该模型利用潜在扩散过程生成高质量且稳定的图像,适用于文本生成图像、图像修复、超分辨率重建等多个领域,并提供开源的预训练模型以方便用户使用。然而,由于潜在扩散过程的复杂性以及数据和计算资源的限制,Stable Diffusion仍然面临一些挑战和问题需要进一步研究和解决。
接下来,我们将介绍如何安装和使用Stable Diffusion web UI,以便您能够利用Stable Diffusion制作出您想要的图片!