文生图技术(二)–当前的绝对主流:扩散模型

1. 概述

从理解到生成

无论是文生图还是文生视频,其底层都依赖于两大关键技术:多模态对齐内容生成

  • 多模态对齐 (Multimodal Alignment)
    这是让AI“看懂”文字的第一步。核心思想是将文本和图像/视频这两种不同模态的数据,映射到同一个高维语义空间中。

    • 代表模型:CLIP。它通过在海量图文对数据上进行对比学习训练,使得语义相似的文本和图像在向量空间中的距离更近。当你输入“一只在草地上奔跑的柯基”时,文本编码器会将其转换为一个语义向量,这个向量能精准地指向视觉概念中对应的画面特征。
  • 内容生成 (Content Generation)
    在理解了文本意图后,AI需要从无到有地创造出匹配的视觉内容。目前主流的技术路线有两条:扩散模型 (Diffusion Model)自回归模型 (Autoregressive Model)

2. 扩散(Diffusion) VS 自回归(Autoregressive)

扩散模型 (Diffusion Model) - 当前的绝对主流

这是目前Midjourney、Stable Diffusion等主流模型采用的技术路径。它的灵感来源于热力学,核心过程分为两步:

  • 正向扩散(加噪):在训练阶段,模型学习如何一步步地向一张清晰的图片中添加高斯噪声,直到它变成纯粹的随机噪声。
  • 反向扩散(去噪):在生成阶段,过程被逆转。模型从一个完全随机的噪声开始,根据文本提示词(作为条件信息)的指导,一步步预测并去除噪声,最终“显现”出一张全新的、符合描述的图像。

为了降低计算成本,像Stable Diffusion这样的模型采用了潜在扩散模型 (Latent Diffusion Model, LDM) 架构。它不在原始的像素空间进行操作,而是在一个压缩的、低维度的“潜空间 (Latent Space)”里进行扩散过程,最后再通过一个解码器将结果还原成高清图像。

自回归模型 (Autoregressive Model) - 统一的未来范式?

这是一种更接近大语言模型(LLM)工作方式的思路,以智源研究院的 Emu3 为代表。

  • 核心思想:“预测下一个词元 (Next-token Prediction)”。它将图像也看作一种特殊的“语言”,通过一个分词器(Tokenizer)将图像离散化成一系列的视觉词元(Visual Tokens)。
  • 工作方式:模型将所有视觉词元和文本词元放在同一个序列中进行训练,学习它们的联合分布。生成图像时,它就像写文章一样,根据上文(已生成的词元)来预测下一个最可能出现的词元,如此循环往复,直到生成完整的图像序列。

优势:这种路线具有极高的通用性,可以用单一模型统一处理文本、图像、视频的生成与理解任务,展现出强大的扩展潜力。

3. 扩散模型(Diffusion Model)

3.1 多模态对齐--文本编码器

这是连接人类语言和机器视觉的桥梁。

  • 作用:将你输入的自然语言提示词(Prompt),如“一只戴着礼帽的猫”,转换成机器能够理解和处理的数学表示——一个高维的语义特征向量。
  • 实现:通常使用预训练的多模态模型(如CLIP或OpenCLIP)中的文本编码器部分。这些编码器在海量图文对上进行了训练,能够将语义相近的文本和图像映射到同一语义空间中,确保模型能准确捕捉“猫”、“礼帽”等概念的视觉内涵。

3.2 内容生成

当前有两种主流的内容生成方式:基于隐空间扩散的技术、基于条件流匹配的技术,本文中着重讲述前者

这是模型的核心,负责实际的图像生成。为了平衡生成质量与计算效率,主流模型普遍采用潜空间扩散模型 (Latent Diffusion Model, LDM) 架构。

  • 为何是“潜空间”? 直接在原始像素空间(例如512x512x3)进行扩散会消耗巨大的算力。LDM通过一个预训练的编码器(VAE Encoder)将高清图像压缩到一个维度更低、信息更密集的“潜空间”中进行操作,最后再通过解码器(VAE Decoder)还原成肉眼可见的图像。这极大地提升了训练和推理速度。

  • 扩散与去噪

    • 训练阶段(学习去噪):模型学习一个反向过程。它会拿一张真实图像,逐步向其添加高斯噪声,直到变成纯噪声。然后,训练U-Net网络(现在比较先进的模型使用ViT网络代替U-Net)学会预测每一步所添加的噪声。
    • 生成阶段(从噪声创作):从一个随机的高斯噪声开始,U-Net在文本条件的引导下,一步步预测并减去噪声,最终在潜空间中“浮现”出一个代表目标图像的潜变量。

3.3 条件注入机制 (Conditioning Mechanism) - AI的“指挥棒”

这是实现“文生图”的关键,决定了文本如何指导图像生成的每一步。

  • 核心技术:交叉注意力 (Cross-Attention)。在U-Net的每一层去噪过程中,都会插入交叉注意力模块。该模块让图像的特征(作为Query)去“查询”文本的特征(作为Key和Value)。
  • 工作原理:这使得模型在生成图像的每一个局部时,都能动态地关注到文本提示中最相关的词汇。例如,当生成猫的耳朵区域时,注意力机制会赋予“猫”这个词更高的权重;而在生成帽子时,则会聚焦于“礼帽”这个词。这种机制确保了文本语义被精确地融入到图像的每一个细节中。

3.4 训练&推理过程

3.4.1 训练

训练的目标不是让模型记住某张图,而是让它掌握一个通用的能力:给定任何一张被噪声污染的图片和污染程度,能准确预测出其中的噪声是什么

这个过程可以分解为以下几个步骤:

  • 数据准备与编码**

    • 准备海量的“图像-文本对”数据集,例如 LAION-5B。

    • 对于每一张真实图像 x₀,首先通过一个预训练的 VAE 编码器将其压缩到一个更小的潜空间 (Latent Space),得到潜变量 z₀。这样做是为了大幅降低计算成本。

    • 同时,图像的配套文本描述(Prompt)会通过一个文本编码器(如 CLIP Text Encoder)转换成一个文本条件向量 c

  • 随机加噪 (Forward Process)

    • 从预设的时间步列表(比如总共1000步)中,随机采样一个时间步 t。这个 t 代表了噪声的强度,t=0 代表无噪声,t=1000 代表纯噪声。

    • 根据时间步 t,从一个标准高斯分布中采样一份纯噪声 ε

    • 将这份噪声 ε 按照特定比例添加到干净的潜变量 z₀ 上,生成一张带噪的潜变量 zₜ。这个过程由一个固定的数学公式控制:
      zₜ = √ᾱₜ * z₀ + √(1-ᾱₜ) * ε
      (其中 ᾱₜ 是一个预先定义好的、随 t 变化的系数)

  • 学习与优化 (Learning & Optimization)

    • 现在,我们将带噪的潜变量 zₜ、文本条件 c 和时间步 t 一起输入给核心的 U-Net 网络。

    • U-Net 的任务非常单纯:预测我们刚才添加进去的那份噪声 ε。它会输出一个预测的噪声 ε_θ

    • 通过比较真实噪声 ε预测噪声 ε_θ 之间的差异(通常使用均方误差损失函数),计算出损失值。

    • 最后,通过反向传播算法更新 U-Net 的参数,让它下一次预测得更准。

一句话总结训练:不断重复以上过程,让 U-Net 成为一个“去噪专家”,它能根据任何程度的噪声图和文本提示,准确地指出“哪些部分是噪声”。

3.4.2 推理

推理过程是训练过程的逆向应用。此时,U-Net 的参数已经固定,不再学习。它的任务是从头开始创作一张新图。

这个过程同样是迭代式的,可以分为以下步骤:

  • 初始化与编码

    • 用户输入一段文本提示词(Prompt)。

    • 文本编码器将 Prompt 转换成文本条件向量 c

    • 在潜空间中,随机生成一个完全由噪声构成的初始潜变量 zₜ(这里的 t 通常是最大时间步,比如1000)。这就是创作的“原材料”。

  • 迭代去噪 (Reverse Process / Sampling)

    • 这是一个循环过程,由调度器(Scheduler)控制,通常会迭代 N 步(例如 20-50 步)。

    • 在每一步中,调度器会告诉 U-Net 当前的时间步 t

    • U-Net 接收三个输入:当前的带噪潜变量 zₜ、文本条件 c 和时间步 t

    • U-Net 会根据这些信息,预测出当前 zₜ 中包含的噪声 ε_θ

    • 调度器拿到预测的噪声后,会根据特定的算法(如 DDIM, Euler a 等)从 zₜ 中减去这部分噪声,得到一个“更干净一点”的潜变量 zₜ₋₁

  • 解码与输出

    • 当循环结束时,我们得到了一个几乎不含噪声的、干净的潜变量 z₀

    • 最后,将这个潜变量 z₀ 输入到预训练的 VAE 解码器 (Decoder) 中。

    • VAE 解码器会将这个低维的潜变量“解压”并还原成一张高分辨率的像素图像,这就是最终生成的作品。

一句话总结推理:从一团随机噪声出发,在文本的指引下,依靠训练好的 U-Net 一步步地“雕刻”掉多余的噪声,最终呈现出清晰的图像。

可以在此处查看更加详细的架构图和训练推理流程

发表回复