5.1 SDXL¶
所属章节:第 5 章 模型演进与系统对比
课时:90 分钟
前置:SD1.5 架构、Cross-Attention
对应面试题:A10
一句话目标:学完能说出 SDXL 的四项核心改动,解释它们分别解决什么问题,并讲清 base + refiner 的分工。
1. 学习目标¶
学完本节,你应该能够:
- 说出 SDXL 相比 SD1.5 的核心改动;
- 解释 双文本编码器的作用;
- 解释 micro-conditioning 解决什么问题;
- 说明 base + refiner 的分工与代价;
- 解释 1024 分辨率/多宽高比训练;
- 用 90 秒回答 A10,并接住“SDXL 是不是只是更大”的追问。
2. 为什么 SDXL 重要¶
SD1.5 在 512 分辨率上很强,但有明显问题:
- 高分辨率构图不稳;
- 文本/指令跟随有限;
- 多宽高比容易崩;
- 细节/文字能力不足。
SDXL 的目标:
用更大的模型、更强的文本条件、更好的训练/条件设计,把质量推到 1024。
3. 核心改动一:双文本编码器¶
3.1 结构¶
- CLIP ViT-L/14;
- OpenCLIP ViT-bigG/14;
- 两个编码器的 token 特征拼接;
- OpenCLIP 的 pooled text embedding 加入时间步条件。
3.2 为什么有效¶
- 两个编码器的语义/训练数据不同;
- 拼接提供更丰富的文本表示;
- pooled embedding 提供全局风格/语义;
- 比 SD1.5 单一 CLIP-L 更强。
3.3 注意¶
- 仍然受 77 token 限制(每个编码器);
- 不是“无限长 prompt”;
- SD3 才引入 T5 进一步缓解长文本。
4. 核心改动二:更大的 UNet¶
- UNet 显著变大;
- transformer block 更多;
- 更高容量;
- 训练/推理成本更高;
- 细节、文字、构图能力提升。
面试时不要只说“更大”,要补:
更大模型 + 更强文本条件 + 更好训练,三者共同作用。
5. 核心改动三:Micro-conditioning¶
5.1 是什么¶
除了文本,还把以下信息作为条件:
- 原始图像尺寸(original size);
- 裁剪坐标(crop top-left);
- 目标尺寸/宽高比(target size)。
这些信息被嵌入后加到时间步条件中。
5.2 解决什么问题¶
训练时图像会被随机裁剪/缩放:
- 模型看到的是“裁剪后的图”;
- 但不知道原图多大、裁了多少;
- 容易学到裁剪偏差,构图不稳。
Micro-conditioning 告诉模型:
“这张图是从多大的图、哪个位置裁出来的,目标尺寸是多少。”
这样模型可以补偿裁剪/缩放,改善多宽高比构图。
5.3 面试要点¶
这是 SDXL 最容易被忽略、但很能体现“真懂”的设计。
6. 核心改动四:Base + Refiner¶
6.1 分工¶
- Base:生成主体结构、语义、构图;
- Refiner:对 base latent 做低强度 img2img,增强局部细节/纹理;
- Refiner 是可选的。
6.2 为什么两阶段¶
- 单个超大模型成本高;
- 两阶段可以分别优化“结构”和“细节”;
- 部署时可以只用 base,或 base + refiner。
6.3 代价¶
- 两阶段增加延迟/显存;
- refiner 不是万能,过度使用可能改变构图;
- 很多场景 base 已经够用。
7. 其他改动¶
- 原生 1024 训练;
- 多宽高比 bucketing;
- 更好的 VAE 重建;
- 更大/更干净的数据;
- aesthetic 过滤;
- 训练技巧(EMA、混合精度等)。
8. 对比 SD1.5¶
| 维度 | SD1.5 | SDXL |
|---|---|---|
| 文本编码器 | CLIP-L | CLIP-L + OpenCLIP bigG |
| 分辨率 | 512 | 1024 |
| 条件 | 文本 cross-attn | 双文本 + pooled + micro-conditioning |
| UNet | 较小 | 更大 |
| 生成流程 | 单模型 | base + refiner(可选) |
| 多宽高比 | 一般 | 原生支持更好 |
| 文字/构图 | 较弱 | 明显提升 |
9. 90 秒回答:SDXL 的核心优化¶
面试官问:SDXL 的核心优化是什么?
参考回答:
“SDXL 不是单点改动,核心是四块:第一,双文本编码器,CLIP-L + OpenCLIP bigG,token 特征拼接,pooled embedding 加到时间步条件;第二,更大的 UNet,提升容量;第三,micro-conditioning,把原图尺寸、裁剪坐标、目标尺寸作为条件,解决多宽高比/裁剪偏差;第四,base + refiner 两阶段,base 出结构,refiner 低强度精修细节。再加上 1024 原生训练、多宽高比 bucketing 和更好的 VAE/数据。它不是只变大,而是文本条件、条件设计和训练一起升级。”
10. 追问与回答¶
追问 1:micro-conditioning 具体解决什么?¶
训练时随机裁剪会让图像内容和构图偏移;告诉模型裁剪信息,它可以学会补偿,改善多宽高比生成。
追问 2:refiner 是必须的吗?¶
不是。base 单独能出图;refiner 主要提升局部细节,代价是延迟/显存。
追问 3:SDXL 解决 77 token 了吗?¶
没有完全解决;仍是 77 token,只是双编码器提供更丰富表示。长文本靠 SD3 的 T5。
追问 4:SDXL 还是 UNet 吗?¶
是。SDXL 仍是 LDM/UNet;SD3 才转向 MMDiT。
11. 常见误区¶
- “SDXL 只是更大的 UNet”:还有双文本、micro-conditioning、refiner。
- 忽略 micro-conditioning:这是关键设计。
- 认为 refiner 必须用:可选。
- 说 SDXL 解决了 77 token:没有。
- 把 SDXL 说成新架构:仍是 LDM/UNet。
12. 课堂练习¶
答案见 06 章节练习与答案。
- 列 SDXL 四项核心改动。
- 解释双文本编码器。
- 解释 micro-conditioning。
- 画 base + refiner 流程。
- 用 90 秒回答 A10。
13. 自测清单¶
- [ ] 能说四项改动;
- [ ] 能解释双文本;
- [ ] 能解释 micro-conditioning;
- [ ] 能解释 base/refiner;
- [ ] 能对比 SD1.5;
- [ ] 能 90 秒回答 A10。
14. 本节材料为什么这样设计¶
- 按“四项改动”组织:A10 需要结构化回答。
- micro-conditioning 单列:区分“真懂”和“只知更大”。
- refiner 讲取舍:避免说成必须。
- 不写代码:本节是架构演进。
详细设计理由见 08 材料设计理由。