前言

有了前面教程的概念之后,本文再来聊一下原理,多少会提到底层的技术,如果觉得无聊看不懂懒得看,可以跳过本文。如果你坚持看完,恭喜你,成为AI绘画高手就差实操了。

一、Stable Diffusion 是如何工作的?

大家都知道了使用Stable Diffusion绘画,只要输入一段**文字描述(Prompt),**它就能返回与文本匹配的图像。Stable Diffusion将文本提示转换为图像。

1、Stable Diffusion本质

从第一章节我就了解了Stable Diffusion 本身不是一个模型,而是一套图像生成框架。它包含了图像编码器、文本编码器、Diffusion模型以及图像解码器等组件。

具体来说,Stable Diffusion 使用了以下几个模型:

1)、图像编码器

使用预训练的CLIP模型来编码输入图像,将其映射为latent vector。

2)、文本编码器

也使用CLIP模型来编码输入文本,将其映射为latent vector。

3)、Diffusion(扩散模型)

这是Stable Diffusion的核心,它将图像的latent vector通过噪声不断扩散,然后再通过图像解码器还原,实现图像生成的过程。

4)、图像解码器

使用一个反卷积网络将Diffusion模型输出的latent vector还原为图像。

5)、训练目标

使用CLIP模型中图像编码器和文本编码器得到的latent vector之间的相似度,作为Diffusion模型训练的目标,使其生成的图像与输入文本的相关性最大化。

所以,Stable Diffusion其实是一套将CLIP、Diffusion模型和解码器整合在一起的图像生成框架。CLIP模型提供了图像和文本的语义理解能力,Diffusion模型实现了通过噪声生成图像的功能,解码器则将其输出转换为可视图像。这三个模块的配合使得Stable Diffusion可以根据文本描述生成与之相关的图像。

"latent vector"是指在机器学习和人工智能中使用的一种概念,用于表示数据的低维度表示。这个概念通常与神经网络相关,因为它们可以将输入数据转换为潜在向量,然后使用这些向量进行分类、聚类或生成新的数据。这些向量被称为“潜在”,因为它们不是直接从数据中提取出来的,而是通过神经网络学习得到的。这个过程被称为“编码”,因为它将原始数据编码成向量形式。潜在向量通常具有一些有用的属性,例如可以进行算术操作,从而生成类似的但不完全相同的数据。这种技术被广泛应用于图像生成、自然语言处理和推荐系统等领域。

2、扩散模型(Diffusion Model)的缺点