图像生成微调
本节定位
当基础 Stable Diffusion 已经很强之后,新的问题就变成:
怎样让它更懂某个特定主体、特定风格或特定品牌视觉?
这就是图像生成微调真正要回答的问题。
学习目标
- 理解为什么图像生成模型也需要微调
- 分清 DreamBooth、LoRA、Textual Inversion 的差别
- 理解这些方法分别更像在“改什么”
- 建立一个非常实用的选型直觉
先建立一张地图
图像生成微调更适合按“你到底想改概念、风格,还是专属主体”来理解:
所以这节真正想解决的是:
- 不是哪条路线最火
- 而是你到底在微调什么目标
一、为什么基础模型还不够?
基础模型当然已经会生成很多东西。
但真实需求通常会更具体:
- 生成某个专属角色
- 生成某种固定品牌风格
- 让某个产品在不同场景里保持一致
这时只靠 prompt 往往不够稳定。
所以微调的本质可以先记成:
让模型在原有能力上,往某个更具体的视觉目标收敛。
1.1 一个更适合新人的总类比
你可以把图像生成微调理解成:
- 给一个已经会画很多东西的画师做“定向风格训练”
基础模型像一个会画很多题材的通才,
但你真正想要的可能是:
- 某个固定 IP 角色
- 某种品牌视觉
- 某种专属风格
这时你不是要他从零学画画,
而是要他在某个方向上画得更稳定。
二、图像生成微调最核心的三种路线
2.1 Textual Inversion
最轻的一种思路。
它更像:
给模型学一个新的触发词 / 概念词。
2.2 LoRA
更像:
给基础模型挂一个小型可插拔适配器。
2.3 DreamBooth
更像:
强化模型对某个专属主体的记忆。
如果你先把这三个直觉区分开,后面很多术语就不会混。
三、Textual Inversion:为什么说它最轻?
3.1 它本质上在学什么?
不是大规模改整个模型,而是更像:
- 学一个新的 token 表示
你可以把它理解成:
教模型认识一个新的“词”。
3.2 一个极简示意
textual_inversion = {
"new_token": "<my_style>",
"meaning": "一种特定视觉风格",
"learned_object": "token embedding"
}
print(textual_inversion)
3.3 它适合什么?
- 风格 trigger word
- 某些轻量概念注入
它的优点是:
- 轻
- 快
- 改动范围小
但能力通常不如更重的方案强。
四、LoRA:为什么它会成为工程上最常见的一条路?
4.1 它最核心的思想
LoRA 不是把原模型整份都改掉,而是:
学一个低成本的增量适配器。
这让它非常适合:
- 在一个大基础模型上挂多个风格
- 切换不同适配器
- 降低训练和存储成本
4.2 一个简单示意
base_model = "stable_diffusion_base"
lora_adapter = {
"target": "attention blocks / U-Net blocks",
"size": "small",
"effect": "附加风格或主体控制能力"
}
print(base_model)
print(lora_adapter)
4.3 为什么它工程上特别实用?
因为它特别适合:
- 一个基础模型
- 多个不同风格或角色适配器
也就是说:
不需要每个定制版本都保存一整份完整模型。
这就是 LoRA 特别流行的重要原因。
五、DreamBooth:为什么它更常用于“专属主体”?
5.1 它在解决什么问题?
DreamBooth 很常见的目标是:
- 让模型学会某一个具体人物
- 某一个具体物体
- 某一个专属 IP 形象
5.2 为什么它比 Textual Inversion 更“强”?
因为它通常不是只学一个词,而是更深地让模型适应这个主体在图像空间中的表现。
5.3 代价是什么?
- 更重
- 更容易过拟合
- 更依赖数据质量
所以你可以先粗略记成:
- Textual Inversion:轻
- LoRA:平衡
- DreamBooth:更强但更重