炼丹手的奇幻之旅:从 GAN 到 Diffusion Model,AI 图像生成的进化史
引言:曾几何时,AI 生成的图片还只是一堆充满马赛克和诡异光影的“赛博涂鸦”。而如今,只要你在 Midjourney 或 Stable Diffusion 中敲下几个提示词,几秒钟内,一幅足以让顶级画师都为之惊叹的完美画作便跃然屏上。这场视觉革命的背后,绝非一蹴而就。从 GAN 的“左右互搏”到 Diffusion 的“破坏与重建”,AI 图像生成经历了一次又一次的范式转移。今天,让我们拨开繁复的论文迷雾,深入探究这条从 GAN 到 Diffusion Model 的进化之路。
第一阶段:拓荒时代与 GAN 的“左右互搏”
2014 年,Ian Goodfellow 提出了生成对抗网络(GAN, Generative Adversarial Networks),这被认为是深度学习生成领域的一个重要里程碑。GAN 的核心思想非常优雅且具有博弈论的浪漫色彩:让两个神经网络互相“掐架”。
1. GAN 的核心架构:造假者与鉴赏家
GAN 由两个部分组成:
- 生成器:就像一个高明的“造假者”,它的任务是从随机噪声中生成逼真的图像,试图以假乱真。
- 判别器:就像一个经验丰富的“鉴赏家”,它的任务是接收一张图片,并判断这张图片是来自真实数据集,还是由生成器捏造的。
两者在训练过程中不断博弈:生成器拼命提升造假技术骗过判别器,判别器则拼命提升鉴别能力识破生成器。最终,当判别器无法分辨真假(输出概率为 0.5)时,生成器就学到了真实数据的分布,能够生成高质量的图像。
早期的 PyTorch 伪代码长这样:
1 | import torch |
2. GAN 的繁荣与困境
在随后的几年里,GAN 迎来了大爆发,从 DCGAN 到 StyleGAN,生成图像的分辨率从 32x32 一路飙升到 1024x1024,甚至能够生成逼真的人脸。
然而,GAN 有着几个致命的“阿喀琉斯之踵”:
- 模式崩解:生成器可能会发现只要生成某几张绝对安全的图片就能骗过判别器,于是它丧失了多样性,只生成相同的人脸或相似的风景。
- 训练极不稳定:生成器和判别器需要极其精细的平衡。如果判别器太强,生成器会彻底摆烂(梯度消失);如果判别器太弱,生成器会乱造一通。
- 缺乏多样性控制:在 GAN 的隐空间中,很难做到对图像特征的精确、连续控制。
第二阶段:黎明前的探索——VAE 与 Flow-based Models
在 GAN 大放异彩的同时,学术界并没有停止寻找更优的生成范式。其中最具代表性的是变分自编码器(VAE)和流模型。
- VAE (Variational Autoencoders):VAE 不再像 GAN 那样对抗,而是将图像编码到一个符合高斯分布的隐空间中,然后再从隐空间解码重建图像。它的优势是训练稳定,隐空间连续(方便插值生成),但缺点是生成的图像往往比较模糊(因为基于像素的 MSE 损失倾向于生成均值图像)。
- Flow-based Models (流模型):如 Glow、NICE。通过一系列可逆的数学变换,将复杂的图像分布映射为简单的正态分布。虽然数学上极其完美,能精确计算似然,但计算代价极高,且生成质量并未超越 GAN。
尽管这些方法没有成为最终的答案,但它们为后来的 Diffusion Model 提供了极其重要的数学启示(尤其是 VAE 的变分推断思想)。
第三阶段:范式转移——Diffusion Model 的“加噪与去噪”
2020 年,Jonathan Ho 等人发表了著名的 DDPM(Denoising Diffusion Probabilistic Models)论文,标志着 Diffusion 模型的正式破局。随后,OpenAI、Stability AI 等公司将这一技术发扬光大,彻底终结了 GAN 在图像生成领域的统治地位。
1. 核心直觉:破坏与重建
Diffusion 的灵感源自非平衡热力学。想象你把一滴墨水滴入一杯清水中,随着时间推移,墨水逐渐扩散,最终变成一杯浑浊的灰水(信息完全丢失,变成纯噪声)。这个过程是不可逆且确定的。
Diffusion Model 的核心就在于:既然我们无法直接逆转物理定律,那我们能不能训练一个神经网络,让它一步一步地学会把这杯“灰水”还原成“墨水滴入前”的状态?
2. 前向过程:给图片“下毒”
给定一张真实的清晰图像 ,我们向其中逐步添加高斯噪声,总共添加 步。每一步的加噪公式为:
其中 是标准高斯噪声。
由于高斯分布的优良数学性质,我们不需要一步步算,可以直接从 得到任意时刻 的加噪图像 (重参数化技巧):
3. 反向过程:神医“解毒”
反向过程是 Diffusion 生成的关键。我们有一个 U-Net 神经网络,它的任务是:给定加噪后的图像 和当前的时间步 ,预测出上一步的图像 (或者预测出加进去的噪声 )。
训练过程极其简单粗暴:
- 拿一张真实图片 。
- 随机选一个时间步 ,生成纯噪声 。
- 根据公式得到加噪图 。
- 把 和 喂给 U-Net,让它预测噪声。
- 计算 L2 Loss:。
为什么 Diffusion 比 GAN 好训?
因为它的目标极其明确、稳定!它就是一个最纯粹的回归问题(MSE Loss),不需要像 GAN 那样在对抗的纳什均衡中如履薄冰。
4. 核心代码实现
下面是一段基于 PyTorch 的简版 Diffusion 核心代码,感受一下其优雅的数学逻辑:
1 | import torch |
第四阶段:工程奇迹——Latent Diffusion 与 Stable Diffusion
虽然 DDPM 解决了生成质量和训练稳定性的问题,但它有一个致命缺陷:太慢了,太吃显存了!
由于 Diffusion 是在像素空间进行加噪和去噪的,如果你要生成一张 1024x1024 的高清图,U-Net 每一步都要处理几百万个像素,并且要循环几百步(通常是 1000 步)。这在消费级显卡上是不可能完成的。
2021 年底,慕尼黑大学和 Runway 发表了 High-Resolution Image Synthesis with Latent Diffusion Models,并开源了著名的 Stable Diffusion,彻底引爆了 AI 绘画圈。
1. 潜空间的降维打击
Stable Diffusion 的核心创新在于引入了感知压缩。它不再在像素空间做 Diffusion,而是:
- 编码:使用一个预训练好的 VAE(变分自编码器)的 Encoder,将 512x512x3 的高清图片压缩成 64x64x4 的低维隐变量表示。
- Diffusion 过程:在 64x64x4 这样极小的潜空间上进行加噪和去噪!计算量呈指数级下降。
- 解码:去噪完成后,使用 VAE 的 Decoder 将 64x64x4 的特征图还原回 512x512x3 的像素图像。
2. 文本控制:CLIP 与 Cross-Attention
如果 AI 只能随机生成图片,那它只是个玩具。SD 的强大在于它能听懂人类的语言。
Stable Diffusion 借用了 OpenAI 的 CLIP 模型,将人类输入的文本提示词编码成特征向量。然后,在 U-Net 去噪的过程中,通过 交叉注意力机制 将文本特征注入到图像特征中。
这样一来,网络在预测“这一块应该是什么像素”时,会时刻参考着“一只戴着墨镜的赛博朋克猫”这个文本约束。
为什么 Diffusion 彻底击败了 GAN?
如果你关注近期的顶会论文数量或者工业界的落地方案,你会发现 GAN 的生存空间被严重挤压。核心原因在于:
- 多样性与保真度的双赢:GAN 容易模式崩解,只能生成有限类型的图;而 Diffusion 基于 Langevin 动力学采样,天生具有极强的多样性,同时通过强大的 U-Net 保证了极高的图像质量。
- 可控性降维打击:得益于潜空间的连续性和灵活的注意力机制,Diffusion 模型衍生出了 ControlNet(线稿控制生成)、IP-Adapter(图像风格迁移)、LoRA(特定画风微调)等极其强大的控制插件生态。这种精确且多样的控制力,是 GAN 望尘莫及的。
- 算力友好(训练层面):虽然 Diffusion 推理比单次前向传播的 GAN 慢,但 Diffusion 的训练过程极其稳定,不需要繁琐的超参调节来平衡网络。这让大厂能够轻松利用海量 GPU 集群不断 Scale up 模型参数。
结语:从像素到艺术的终点与起点
从 GAN 极具想象力的左右互搏,到 VAE 的隐空间探索,再到 Diffusion Model 在潜空间中的精雕细琢,AI 图像生成的进化史,本质上是人类对高维数据分布建模能力的进化史。
当然,技术演进并未停止。如今的 Consistency Models 试图将 Diffusion 的多步采样压缩到一步;而结合大语言模型的 Sora 等视频生成模型,正在将 Diffusion 的边界拓展到时间的维度。
作为开发者和“炼丹手”,我们非常幸运能身处在这个波澜壮阔的时代。技术不再是阻挡创造力的壁垒,借助于这些开源的强大模型,每一个拥有想象力的人,都能成为数字世界的造物主。