第 16 讲 · 实战:文生图
文生图(text-to-image)是生成式 AI 的另一条主线:2022 年(与 ChatGPT 同年)Stable Diffusion 开源与 Midjourney 走红,让"打字出图"飞入寻常百姓家。本讲一半讲原理——扩散模型的思想值得你的数学背景咀嚼——一半讲实操:提示词怎么写、工具怎么选、边界在哪。
1. 原理:扩散模型十分钟版
LLM 逐 token 生成文本,图像这边的主流是完全不同的思路——扩散模型(diffusion model):先学会"毁掉"图像,再学会逆转毁灭。
前向过程(固定的、不用学):给真实图像 \(x_0\) 逐步加高斯噪声,\(T\) 步后变成纯噪声。每步
反复代入可得任意步的闭式(记 \(\alpha_t = 1 - \beta_t\),\(\bar\alpha_t = \prod_{s \leq t}\alpha_s\);两个独立高斯之和仍是高斯,方差相加——动笔合并一次就能验证):
反向过程(学习目标):训练一个神经网络 \(\epsilon_\theta(x_t, t)\),看着加噪图 \(x_t\) 猜出"刚才加进去的噪声是什么"。损失朴素得出奇:
(这个平方损失可以从变分下界 ELBO 严格推出——DDPM 论文(Ho et al. 2020)的核心推导,对学过随机过程的读者是一次愉快的阅读,此处按下。)生成 = 从纯噪声出发,用训练好的网络一步步去噪,噪声中"显影"出一张新图。直觉:模型学到的是"自然图像分布的梯度场"(score),去噪即沿着梯度把随机点推回数据流形上——第 01 讲"生成式建模 = 学分布"在图像上的实现。
文字怎么控制图:文本经编码器变成向量(第 06 讲的 Transformer),通过交叉注意力注入每一步去噪——"每一步都往符合描述的方向掰"。掰的力度由 guidance scale(CFG)控制:同时算"有条件"与"无条件"两次预测,按 \(\epsilon_{\text{uncond}} + w(\epsilon_{\text{cond}} - \epsilon_{\text{uncond}})\) 外推。\(w\) 大 = 贴文字但呆板,\(w\) 小 = 自由但跑题——你在工具里调的那个"提示词强度"就是它。
(补充一嘴生态现状:扩散并非唯一路线——自回归式生图(GPT 系的图像能力)把图像当 token 序列生成,语义理解与图文一致性常更强;扩散系在质感与生态工具链上占优。两条路线正在融合。)
2. 工具地图(2026 年初快照,时效同第 10 讲声明)
| 工具 | 形态 | 特点 |
|---|---|---|
| Midjourney | 订阅制网页/Discord | 艺术感与美学上限的代名词,控制精度一般 |
| GPT/Gemini 内置生图 | 聊天产品内置 | 胜在"听得懂人话":对话式迭代改图、图文混排、文字渲染准 |
| Stable Diffusion / Flux 系 | 开源,本地或云 | 控制力天花板(LoRA 微调、ControlNet),有折腾成本 |
| 即梦、可图、通义万相等 | 国内产品 | 直连可用、中文理解好、价格友好 |
选择逻辑:追求美学 → Midjourney 系;要"改图听指挥"与图文结合 → 聊天产品内置;要精确控制/批量/隐私 → 本地开源(你的 M4 24GB 跑 SDXL 级模型无压力,入口是 ComfyUI 或 DrawThings.app);日常轻量 → 国内产品。
3. 提示词:结构化描述一张画
文生图提示词的通用骨架(越靠前权重越高):
[主体](谁/什么,外观细节) + [动作/情境] + [环境背景] +
[构图视角](特写/全景/俯视) + [光线](黄昏逆光/柔光棚拍) +
[风格媒介](水彩/胶片摄影/等距插画/像素风) + [质量词](细节丰富…)
例:"一只戴圆框眼镜的橘猫,趴在堆满数学书的木桌上打盹,午后阳光从左侧窗户斜射进来,浅景深特写,暖色胶片质感,插画风格"。要点:
- 写画面,不写抽象:"孤独感"不如"空旷车站的长椅上一个小小的背影";模型看得见名词和形容词,看不见你的心情;
- 负面提示(支持的工具):把不想要的列出来(多余的手指、水印、文字);
- 迭代是常态:一次出图只是抽签,正确姿势是固定种子(seed)后微调措辞、或用"图生图/局部重绘"在满意的构图上继续雕;对话式产品直接说"保持整体不变,把背景换成雨夜";
- 精确控制(进阶,开源系):ControlNet 用骨架图/深度图/线稿锁定姿势与构图,字面意义的"按图施工"——需要精确复现特定姿态时的唯一解。
4. 学术与工作中的正确用法
- 能用:PPT 封面与氛围插图、公众号配图、活动海报底图、论文的概念示意草稿(最终版建议矢量工具重绘);
- 慎用/别用:论文的数据图表——图表必须由代码从数据生成(matplotlib 等,第 15 讲),生图模型画的坐标轴是"长得像图表的画",学术场合使用属于造假;涉及真实人物的图像(肖像权 + 深度伪造红线);期刊明令禁止的 AI 生成插图(投稿前查政策,同第 13 讲)。
版权现状一句话(截至 2026 年初,变动中):多数司法辖区认为纯 AI 生成、无实质人类创作参与的图像不受版权保护;训练数据的版权诉讼仍在进行。商用前查目标平台与所在地的最新规则,重要商业项目让 AI 出概念稿、人类完成终稿是稳妥路径。
本讲小结
- 扩散模型:学"猜噪声",生成 = 从纯噪声逐步显影;文本经交叉注意力控制方向,CFG 调力度;
- 工具四象限:美学(MJ)/ 听话(聊天内置)/ 控制(开源本地)/ 直连(国内);
- 提示词 = 主体 + 情境 + 构图 + 光线 + 风格;写画面不写抽象;迭代靠 seed 与局部重绘;
- 学术红线:数据图表必须代码画;人物图像与期刊政策先查后用。
动手:任选一个可用的生图工具,用第 3 节的骨架为你手头的某个 PPT 生成一张封面图;然后把同一个提示词删掉构图和光线部分再生成一次,对比差距——你会立刻理解结构化提示词的价值。
下一讲:把 AI 用在幻灯片和文档上——从"给我做个 PPT"的失望,到"大纲—逐页—成稿"的正确工作流。