跳到主要内容

图像生成微调

本节定位

当基础 Stable Diffusion 已经很强之后,新的问题就变成:

怎样让它更懂某个特定主体、特定风格或特定品牌视觉?

这就是图像生成微调真正要回答的问题。

学习目标

  • 理解为什么图像生成模型也需要微调
  • 分清 DreamBooth、LoRA、Textual Inversion 的差别
  • 理解这些方法分别更像在“改什么”
  • 建立一个非常实用的选型直觉

一、为什么基础模型还不够?

基础模型当然已经会生成很多东西。
但真实需求通常会更具体:

  • 生成某个专属角色
  • 生成某种固定品牌风格
  • 让某个产品在不同场景里保持一致

这时只靠 prompt 往往不够稳定。

所以微调的本质可以先记成:

让模型在原有能力上,往某个更具体的视觉目标收敛。


二、图像生成微调最核心的三种路线

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:更强但更重

六、怎么选?一个非常实用的判断

6.1 如果你想要一个轻量风格触发词

优先考虑:

  • Textual Inversion

6.2 如果你想要低成本、可插拔、可维护

优先考虑:

  • LoRA

6.3 如果你想强力绑定某个专属主体

优先考虑:

  • DreamBooth

所以真正好用的问题不是:

“哪个方法最强?”

而是:

“我到底在微调词、风格、还是主体?”


七、为什么图像生成微调的评估特别难?

因为这里不像分类任务,不能只看一个准确率。

你通常还要看:

  • 生成结果像不像目标风格
  • 主体是否稳定一致
  • 有没有过拟合训练图
  • 不同 prompt 下表现是否仍然稳

也就是说:

评估更像视觉与创意质量判断,而不是单指标判断。


八、一个很实用的经验总结表

方法更像什么优点代价
Textual Inversion学一个新词轻量、快控制能力有限
LoRA装一个小适配器成本低、可切换仍需理解目标模块
DreamBooth学专属主体主体控制更强更重、更容易过拟合

这张表不是让你死记,而是让你形成判断习惯。


九、最常见的误区

9.1 一上来就想全量微调

很多时候完全没必要。

9.2 不清楚自己到底要微调“什么”

是风格?主体?触发词?
这个问题不清楚,方法就很容易选错。

9.3 只看几张成功图

真正重要的是:

  • 多 prompt 下稳不稳
  • 多次采样下像不像

十、小结

这一节最重要的不是背 DreamBooth、LoRA、Textual Inversion 这些名字,而是理解:

图像生成微调的核心,是用不同代价去换取对风格、主体或概念更稳定的控制。

一旦这个判断建立起来,后面看具体训练工作流时就会轻松很多。


练习

  1. 用自己的话解释 Textual Inversion、LoRA、DreamBooth 分别更像在“改什么”。
  2. 想一想:如果你只想给模型加一个风格 trigger word,为什么不一定需要 DreamBooth?
  3. 如果你要长期维护很多风格版本,为什么 LoRA 特别有工程价值?
  4. 为什么说图像生成微调的评估,比文本分类更依赖人工感知判断?