一句话定义
DreamBooth 是一种给扩散模型(diffusion model)做个性化的微调方法:你提供某个特定主体(你的猫、你的产品、你的脸)的少量照片,模型便把它绑定到一个罕见词上,之后你用这个词就能生成它出现在任意场景里的新图。
它到底做了什么
打个比方:你拉着一位画师看了你家猫的三张照片,说「以后我说『sks 猫』,就是指这一只」。但 DreamBooth 更彻底,它把这个约定直接写进模型的参数里,而不是记在草稿纸上。
具体流程大致是:准备 3~5 张主体的多角度、多背景照片;指定一个类别词(比如「一只狗」);再挑一个模型几乎没见过的稀有标识符(如 sks 或随机字母串)作为这个主体的专属名字。训练时,用「一张 sks 狗的照片」这类提示让模型重建你的照片。之所以用稀有词,是因为常见词早就被模型赋予了固定含义,占用它会互相干扰。
为什么还需要「先验保持」
如果只让它背熟「sks 狗」,模型很容易把「狗」这个通用概念的原有认知也覆盖掉——以后你让它生成「一只普通的狗」,出来的全是你的狗。所以 DreamBooth 会让模型同时生成大量该类别的一般样本,用损失把通用知识拉住。这个思路叫先验保持损失(prior preservation loss)。
和文本反转的区别在哪
文本反转(textual inversion)冻结整个模型,只学一个新的词向量。相当于给模型词典里插一个新词条,模型本身没动。它轻量、通用,但表现力有限,做风格迁移往往比做主体还原更拿手。
DreamBooth 则是真的去改模型权重,所以主体保真度更高,代价是产出一个完整的模型文件,每换一个主体就得重训一次。
| 训练对象 | 产物大小 | 主体还原 | 常见用途 | |
|---|---|---|---|---|
| 文本反转 | 只学一个新词向量 | 很小 | 中等 | 风格、抽象概念 |
| DreamBooth | 微调模型权重 | 完整模型 | 高 | 特定人物、宠物、产品 |
| LoRA | 少量低秩权重 | 小适配器 | 较高 | 轻量个性化的常见选择 |
实践中,LoRA 常与 DreamBooth 式的训练流程搭配使用,在效果和体积之间取平衡。
对从业者和普通人的意义
对从业者,DreamBooth 是个性化生成的重要基线:它验证了「少量样本 + 稀有标识符」这条路可行,但训练成本、存储开销、每个主体一份权重的管理,以及照片里人的隐私与授权,都是要提前想清楚的。
对普通职场人,你见到的「上传几张自拍,生成你的专属头像/写真」大多属于这一类技术。它有明确的实用价值,也伴随肖像权、版权和深度伪造的滥用风险——训练前确认素材授权,是使用者该守的底线。至于各平台具体支持哪种方式、如何计费,以官方页面为准。
