简介:本文系统解析文生图像生成的底层运行机制:从"前向加噪—反向去噪"的马尔可夫过程出发,拆解文本编码、潜在空间压缩、去噪主干与采样调度之间的协作关系,并说明"为什么参数、数据与算力的规模扩大能带来生成质量的稳定提升"。文中给出流程示意与伪代码,帮助读者理解扩散模型为什么能生成高质量图像、关键模块如何分工,以及推理成本、引导强度、采样步数等实践边界与常见误区。
扩散模型(Diffusion Model)是当前图像生成领域的主流范式之一,其核心思想并不神秘:先定义一个”逐步把清晰图像破坏成纯噪声”的正向过程,再训练一个神经网络去学会”把这个破坏过程反过来”,即从一个随机噪声出发,一步一步地”去噪还原”出符合语义的图像。所谓潜在扩散模型(Latent Diffusion Model),则是在这条去噪链路上做了一次关键优化——不在原始像素空间里反复计算,而是先把图像压缩到一个维度更低、语义更集中的”潜在空间”里再去噪,从而大幅降低计算与显存开销。
理解这套机制的关键,是搞清楚三个问题:正向和反向过程在数学上如何成立、文本这类条件信息是如何被注入去噪过程的、以及为什么扩大模型规模能带来效果的持续提升。
在扩散模型流行之前,生成模型主要有几类路线,各有短板:
扩散模型的出现,本质上是用”回归”的思路替代了”对抗”的思路:训练目标退化为”预测某一步加进去的噪声”,这是一个良态(well-posed)的回归问题,训练稳定、不易崩溃,同时生成质量与多样性兼顾。这就是它被广泛采用的根本原因——它不是靠更复杂的博弈,而是靠一个稳定、可规模化扩展的训练目标取胜。
给定一张真实图像,按预设的噪声调度表(noise schedule),在 T 个时间步里逐步叠加高斯噪声。每叠加一步,图像就更”糊”一点,当 T 足够大时,图像被彻底破坏成接近标准正态分布的纯噪声。整个过程可以看作一条马尔可夫链:每一步只依赖上一步的状态。
训练一个网络,输入”当前含噪图像 + 当前时间步 t”,输出”这一步大概加了哪些噪声”。推理时则从纯噪声开始,用训练好的网络反复预测并减去噪声,一步步逼近目标图像。网络本质上是在学习”每一步该去掉多少噪声、往哪个方向去”。
如果直接在像素空间去噪,每一步都要处理海量像素,代价极高。潜在扩散的做法是先用一个变分自编码器(VAE)的编码器把图像压缩到低维潜在表示,在潜在空间里完成全部去噪计算,最后再用解码器还原成图像。这一步是”能在普通显卡上跑起来”的关键工程前提。
要让生成结果受文本提示控制,需要把文本编码器输出的语义向量,通过交叉注意力(cross-attention)机制注入到去噪主干的每一层。去噪网络在做”该往哪个方向去”的判断时,会同时参考当前含噪图像的局部特征和文本语义,从而让图像内容与提示对齐。
一次典型的文生图,通常由以下模块协作完成:
一次完整的生成可以按以下步骤理解:
第一步,文本编码。将提示词送入文本编码器,得到条件向量 c;同时准备一个”空条件”(负向提示或空文本)的向量用于对比。
第二步,采样初始噪声。在潜在空间采样一个服从标准正态分布的随机张量 z_T,作为去噪的起点。
第三步,迭代去噪。从时间步 T 逐步递减到 0,每一步用去噪主干预测噪声,并结合引导策略调整方向,再由调度器更新出下一步的潜在表示 z_{t-1}。这一步是计算开销的主要来源。
第四步,解码还原。把最终得到的潜在表示 z_0 送入 VAE 解码器,还原成可视的图像。
为兼顾”贴合提示”与”生成多样性”,常用一种无需额外分类器的引导技巧:每一步同时算一次”有条件预测”和一次”无条件预测”,再按一个引导强度 w 做外推——把无条件预测向有条件方向拉。用伪代码表达核心循环:
输入: 文本提示 prompt, 去噪步数 T, 引导强度 w1. c = TextEncoder(prompt) # 条件向量2. c_empty = TextEncoder("") # 空条件向量3. z = 采样标准正态噪声 # 起点 z_T4. for t from T down to 1:5. eps_uncond = Denoiser(z, t, c_empty) # 无条件下预测的噪声6. eps_cond = Denoiser(z, t, c) # 有条件下预测的噪声7. eps = eps_uncond + w * (eps_cond - eps_uncond) # 引导外推8. z = Scheduler.step(z, eps, t) # 更新潜变量9. image = VAEDecoder(z) # 解码还原输出: image
需要特别注意引导强度的边界:w 越大,结果越贴合提示,但过大会导致画面过饱和、对比度异常甚至出现伪影;w 太小则”不听话”,提示约束被稀释。
去噪步数并非越多越好。步数增加通常提升细节,但存在明显边际递减,且推理时间线性增加。业界因此发展出确定性采样与随机采样等不同策略,其区别在于每一步是”确定性地沿预测方向前进”还是”引入随机扰动”,前者更稳定可复现,后者在多样性上有优势。
在压缩后的潜在空间去噪,计算量随维度大幅下降,使得”多步迭代”这种原本昂贵的做法变得可行。这是扩散模型从研究走向日常可用的重要工程支点。
回到”规模是否就是一切”的问题,从原理上可以解释得更清楚:
这三者共同构成了业界观察到的”缩放规律”:在一定范围内,规模扩大与效果提升呈现较稳定的关系。但它有明确边界:一方面存在边际递减,规模翻倍未必带来同等收益;另一方面推理成本、显存占用、部署门槛会同步上升。因此”大”是能力提升的重要条件,却不是唯一条件,数据质量与训练策略同样关键。
正因为大模型训练高度工程化、算力密集,普通个人和小团队从”规模”上突破并不现实,但这恰恰说明领域走向成熟:主流做法是把训练好的模型开源,并提供可获取算力的实验平台。个人开发者完全可以站在这些已有成果之上,借助公开模型与云端算力资源完成微调、二次创作和应用落地。百度提供的 AI Studio 平台以及各类免费或低价显卡资源,正是这种”站在巨人肩膀上”思路的具体支撑——把精力放在创意、数据处理和应用设计上,而非重复造轮子。
扩散模型之所以能高质量生成图像,核心是”用稳定的回归目标学习反向去噪过程”,再叠加潜在空间压缩降低开销、交叉注意力注入条件实现可控、引导与采样策略平衡贴合度与多样性。理解了前向加噪与反向去噪的对称性、各模块的分工、以及规模与效果之间的关系与边界,就能更理性地看待”大即是正义”这一现象:规模是能力提升的重要杠杆,但真正落地的关键在于能否用好已有的大模型、驾驭好数据与创意,并清楚各项参数的取舍边界。