👨🎨 [人工智能] AI 图像生成技术调研
The sculpture is already complete within the marble block, before I start my work. It is already there, I just have to chisel away the superfluous material. ― Michelangelo
“在我雕刻之前,完美的雕塑已经长在大理石里了,我只是把多余的材料凿去罢了。” ― 米开朗基罗
如果说 2022 年 12 月 ChatGPT 的发布开启了 AI 大模型时代,那么 2022 年 8 月推出的各种表现很惊艳的「文生图」模型就是时代前的序曲。人们为 ChatGPT 表现出的智能惊叹,也被 DALL·E 2/Midjourney/Stable Diffusion 生成的创意图片惊艳。
本文档主要是对「AI 图像生成」这个技术的 发展历史/技术原理/使用技巧 做一些简单的介绍,帮助更多的人进入这个绚烂的创意世界。

主流应用
目前国际上「图像生成」应用主要是 3 个:
| DALL·E | Midjourney | Stable Diffusion |
|---|---|---|
![]() | ![]() | ![]() |
| 是否开源 | 最新版本 | 如何使用 | |
|---|---|---|---|
| DALL·E 系列 | 否,OpenAI 旗下产品 | DALL·E 3 | 可以在 ChatGPT 中直接使用 |
| Midjourney 系列 | 否 | Midjourney 6 | Discord 机器人 |
| Stable Diffusion 系列 | 是 | Stable Diffusion 3,XL 等 | 个人部署,国内小白一般使用 秋葉aaaki 的整合包 |
国内很多厂商也做了相关的生图应用,这里有自研的,也有基于开源模型 SD 训练/微调的,但整体上效果没 有 DALL·E 和 Midjourney 的效果好,由于品类繁多,我就不一一列举了。
发展时间线
| 1 月 | 2 月 | 3 月 | 4 月 | 5 月 | 6 月 | 8 月 | 9 月 | 10 月 | 11 月 | 12 月 | |
|---|---|---|---|---|---|---|---|---|---|---|---|
| 2020 | DETR | DDPM | DDIM | ||||||||
| 2021 | CLIP 🔗 DALL·E | DMBG | |||||||||
| 2022 | BLIP | DALL·E 2 | StableDiffusion Midjourney V3 | Stable Diffusion 2 | |||||||
| 2023 | BLIP2 | GPT4 Midjourney V5 | SAM | DALL·E 3 | ChatGPT | Midjourney 6 | |||||
| 2024 | Sora | Stable Diffusion 3 |
上面的表格我列举了影响此次图片生成发展的关键技术进展,可以看到都是最近几年的事情:
- 2020 年发表了 DETR/DDPM/DDIM 等一系列的重磅论文,完善了 Diffusion Model 这个理论模型
- 2021 年发布了 CLIP 论文,建立了
text<->image间的关系,为未来 text2image 奠定了理论基础 - 2022 年应用井喷,
DALL·E 2/Midjourney 3/Stable Diffusion已可创建足够惊艳的作品 - 2023 年之后主要是模型的优化/参数的扩展,提升生图的稳定性和上限
上面的专业名词是不是太多了看不大懂?没关系,下一章节我会用通俗的语言介绍一下模型的运行细节,帮助大家理解「图像生成模型」的原理,去更好的使用相关服务。

技术原理
3 大主流应用里,虽然有 2 个是闭源模型,但根据他们放出的论文,再加上 Stable Diffusion 的代码和论文,业内推测大家的技术底层细节都是类似的,主要基于两个模型:
- CLIP 建立文字和图片之间的关系,实现跨模态的语义对齐
- Diffusion Model 可以从一团噪音中「无中生有」,生成一张图片
两者互相结合,就能言出法随,通过文字生成图片。具体是怎么实现的,下面我们一一介绍。
CLIP
我们先说说 CLIP。
在常规的深度学习模型中,各个功能都是分开的。做 NLP 的模型只能处理文字内容,CV 相关的模型只能处理图像相关的内容。后面大家就有个想法,能不能让模型同时处理这些任务?
2024 年的 GPT-4o 就是 这种多模态的代表,可以输入 图像/文字/音视频,然后输出 图像/文字/音视频。
但几年前还没有 GPT-4o 这么强大的东西。当时 OpenAI 在 21 年 1 月发布了论文《Contrastive Language-Image Pre-training》,用于匹配图像和文本的预训练神经网络模型,旨在实现跨模态的语义对齐。
这个论文很出色,后面的 DALL·E 和 Stable Diffusion 都依赖于 CLIP 做 TextEncoder,下面我们就说说这个算法的大致流程。
训练数据
要实现图像和文本的对齐,就需要先准备相关的训练数据集。计算机科学家需要先准备一组「文本-图像对」,用文字描述图片里的信息,然后把这些数据喂到相关模型里。
那么现实生活中如何找这么多的 text<->image 数据?答案是 HTML 都给你准备好了:

<img
src="/media/cc0-images/grapefruit-slice-332-332.jpg"
alt="Grapefruit slice atop a pile of other slices"
/>
HTML 的 img 标签天然带有 alt 属性,这个属性里的内容一般就是描述图像内容的。OpenAI 嘛,「大力出奇迹」驾轻就熟,他们从互联网上下载了 4亿 张带有 alt 标签描述的图片,然后把这部分图片当作训练集。
这时候有人肯定会提出疑问,alt 描述不一定准,完全的贴合图片信息啊。这个疑问是正常的,首先 alt text 会经过初步的清洗,去除一些显而易见的问题(例如广告),但是一力降十会,4 亿数据可以解决很多问题。当然,更精细的描述还是会提升模型能力的,后期的 DALL·E 3 和 Stable Diffusion 3 都通过增强训练集的准确度去提升模型的整体推理准确度的,但这是后话了。
预训练

有了数据就可以训练了。CLIP 希望能借助 对比学习(Contrastive Learning),让模型找到「文本-图像」的匹配关系。因为是两个模态,所以会使用两个模型分别提取特征:
- Text Encoder:用来提取 text 的文本特征,选个 NLP 模型就行,比如说 Text Transformer
- 输入:文字
- 输出:
[T1, T2, ... TN]的特征值
- Image Encoder:用来提取 image 的图像特征,选个 CV 里常用的 CNN 模型就行
- 输入:图片
- 输出:
[I1, I2, ... IN]的特征值
接下来就是对比学习的环节,根据两个特征值组合出 个可能的「文本-图像对」的相似度,正样本就是矩阵的对角线,也就是说,正样本只有 个,负样本有 个,CLIP 的训练目标就是最大化 个正样本的相似度,最小化负样本的相似度。
经过 4亿 数据的学习,就可以建立「文本-图像」的匹配关系了。
CLIP 有些 zero-shot 分类的功能,但是在本篇文档里并不是重点,所以就先略过了
Diffusion
名词由来
Diffusion,扩散,传播的意思,这个词是从热力学(Thermodynamics)里面借用的。
热力学里 Diffusion 的定义是这样的:
扩散现象是指物质分子从高浓度区域向低浓度区域转移直到均匀分布的现象
扩散案例大家可以参考左边的这个墨水扩散视频。
| 扩散视频 | 最终状态 |
|---|---|
![]() |
可以想象到,只要时间够久,这杯水会变成右图,变成一杯颜色均匀的蓝色水。严谨一些描述,最后就是达到了一个各向同性的正态分布。
那么这个现象迁移到图片里,就可以这样类比:
对于一张正常的图片(一杯水),我们向图片里加入随机噪声(蓝墨水),随机噪声越加越多(蓝墨水持续扩散),最后这张图片就会变为一张纯粹的噪点图(这杯水完全变为均匀的蓝水):

由此可以看出,这两件事儿相似点还是蛮多的,所以就把名字拿来,整个模型就叫 Diffusion Model。




