PyTorch 实战:文本引导图像生成与 Stable Diffusion 实践
引言
为了让扩散模型具备理解文字的能力,我们需要引入文本控制机制。本节旨在讲解如何通过文字描述来引导图像生成过程,实现从'纯噪声 + 文本'生成图像,而不仅是从纯噪声生成。
基于扩散模型的文本生成图像
在扩散模型的 UNet 模型训练流程中,我们通常仅训练模型从含噪图像中预测噪声。为实现文生图功能,需调整架构,将文本作为额外输入注入 UNet 模型:

这样的 UNet 模型称为条件 UNet 模型,更精确地说是文本条件 UNet 模型,因为它会根据输入文本来生成图像。为了训练此类模型,首先我们需要将输入文本编码成一个可以输入 UNet 模型的嵌入向量。然后,需要对 UNet 模型稍作修改,以适配嵌入文本形式的额外输入数据(除了图像之外)。
将文本输入编码为嵌入向量
文本编码是连接自然语言与图像生成的桥梁。在实际操作中,我们通常利用预训练的语言模型(例如 CLIP)将文本序列转化为高维向量。这些向量捕捉了文本的语义信息,随后被注入到 UNet 的中间层,指导去噪方向。这一步骤确保了生成的图像能够准确反映用户的文字描述,是实现高质量文生图的关键基础。


