
前言扩散模型已经具备很强的通用图像生成能力。以 Stable Diffusion 这类文生图模型为例基础模型通常已经知道“猫”“狗”“人像”“建筑”“风景”“油画风格”等通用概念。但在实际应用中我们往往不只想生成一个普通概念而是希望模型掌握更具体的内容例如某只特定宠物、某个固定角色、某种产品外观、一种新的插画风格或者某个专业领域的图像分布。这就是扩散模型微调要解决的问题在保留基础模型通用生成能力的同时让模型获得新的概念、风格或领域能力。本文并不试图穷尽扩散模型微调领域的全部方法。近年来围绕个性化生成、参数高效适配和条件控制已经出现了大量方法和变体例如 Adapter-based tuning、Pivotal Tuning、HyperDreamBooth、LoRA 变体、reference-based personalization以及 ControlNet、T2I-Adapter、IP-Adapter 等条件适配模块。为建立一个清晰的基本框架本文只聚焦几类最常见、最具代表性、也最容易混淆的方法Textual Inversion、DreamBooth、LoRA、Custom Diffusion 和全量微调。理解这些方法后再阅读其他变体会容易很多因为许多新方法都可以看作是在“学习文本向量、更新局部参数、训练轻量补丁、保持类别先验、继续训练整体模型”这些基本思路上的扩展或组合。目录扩散模型微调的基本逻辑1. Textual Inversion学习一个新的文本向量2. DreamBooth把具体实例写进模型权重3. LoRA训练一个可插拔的轻量补丁4. Custom Diffusion局部精修文本与图像的连接5. 全量微调继续训练整个模型其他相关方法与本文范围主流方法对比微调方法的选择逻辑总结扩散模型微调的基本逻辑一个典型的文生图扩散模型大致包含三部分文本编码器、U-Net 去噪网络和 VAE/Decoder。文本编码器把输入文本转换成模型能理解的条件特征。U-Net 是生成过程的核心它在扩散过程中逐步去噪把随机噪声变成符合文本描述的图像。VAE/Decoder 负责在 latent space 和最终图像之间转换。可以把文生图过程简化理解为Image f(Model Parameters, Text Condition)也就是说生成结果主要取决于两个因素模型参数和文本条件。扩散模型训练时通常不是直接预测最终图像而是学习如何去噪。训练过程会先把图像编码到 latent space再加入随机噪声然后让 U-Net 根据当前噪声强度和文本条件预测噪声。预测越准确说明模型越知道“在这个文本条件下图像应该往哪个方向去噪”。微调方法的差别就在于为了让模型学会一个新概念究竟要改文本侧、改 U-Net 的一小部分给模型加一个轻量补丁还是继续训练整个模型。可以用一个简单类比理解基础模型像一本已经学过大量图像知识的大词典微调就是往这本词典里加入新知识。Textual Inversion 是增加一个新词DreamBooth 是让词典记住一个具体对象LoRA 是安装一个轻量插件Custom Diffusion 是局部修改与概念关联最紧密的页面全量微调则是重写词典的一大部分内容。1. Textual Inversion学习一个新的文本向量Textual Inversion 是最轻量的概念注入方法。它的核心思想是冻结扩散模型主体只学习一个新的 token embedding。假设我们希望模型学会一只特定的狗。Textual Inversion 会引入一个新的伪 token例如mydog。这个 token 一开始没有明确含义只是一个可以被优化的向量。训练时U-Net、VAE 以及大部分文本编码器参数都保持冻结真正被学习的只有mydog对应的 embedding。训练过程可以这样理解给模型看几张这只狗的图片同时在文本描述中放入mydog。图像被编码到 latent space 并加入噪声U-Net 根据文本条件预测噪声。由于 U-Net 被冻结模型不能通过修改 U-Net 来记住这只狗只能不断调整mydog这个文本向量让它逐渐成为一个能够唤起目标视觉概念的入口。因此Textual Inversion 学到的新知识主要存储在 token embedding 中。推理时必须使用这个 token模型才会调用对应概念。如果不使用它模型只会按照基础模型原本对普通类别的理解进行生成。Textual Inversion 的优势是训练快、文件小、易分享对基础模型破坏很小适合低成本加入一个新概念或风格。它的局限也很明确它没有真正改写模型内部的视觉生成机制而是在基础模型已有能力中寻找一个合适的文本入口。因此如果目标概念很复杂或者需要很强的身份一致性单靠一个 embedding 往往不够稳定。2. DreamBooth把具体实例写进模型权重DreamBooth 也是个性化生成中的经典方法。它解决的问题比 Textual Inversion 更进一步不仅要让模型知道一个新词还要让模型稳定记住一个具体实例。例如我们不只是希望模型知道“狗”而是希望它记住“这只特定的狗”。DreamBooth 通常会给这个实例设置一个唯一标识符并把它和类别词绑定起来。类别词的作用是告诉模型这个新实例仍然属于某个已有类别例如 dog、person、toy 或 backpack。训练时DreamBooth 会使用少量目标图像并对模型权重进行微调。它通常会更新 U-Net有时也会更新文本编码器的一部分。这样实例信息不再只是存在于一个 token embedding 里而是被写进了模型权重中。DreamBooth 的关键不只是“记住目标对象”还包括“不要忘记原来的类别知识”。如果只用几张目标图片训练模型很容易过拟合。例如训练一只狗之后模型可能把所有狗都生成得像这只狗或者总是复制训练图中的姿态、背景和光照。为缓解这个问题DreamBooth 通常会使用 prior preservation也就是“先验保持”。训练中会同时考虑目标实例图像和类别图像让模型既记住特定实例又保留对该类别的一般理解。这样模型才能在不同场景、姿态和风格下生成同一个对象而不是简单复刻训练图。DreamBooth 的优势是实例一致性强适合人物、宠物、产品、角色等高一致性需求。代价是训练成本更高、模型权重改动更明显也更容易过拟合。与 Textual Inversion 相比它不是只学习一个文本向量而是直接修改模型参数让模型内部真正适应这个实例。3. LoRA训练一个可插拔的轻量补丁LoRA全称 Low-Rank Adaptation是目前扩散模型社区最常见的轻量微调方法之一。它流行的原因很直接效果通常不错训练成本较低文件也比较小。神经网络中有大量权重矩阵。全量微调会直接更新这些大矩阵参数量大、成本高也不方便管理。LoRA 的思路是不直接改原始权重而是在原始权重旁边学习一个低秩增量。更直观地说基础模型保持不动LoRA 只训练一个小型“旁路模块”。推理时把这个旁路模块接到基础模型上模型行为就会发生变化。需要时加载不需要时卸载。因此LoRA 常被看作一种可插拔的模型补丁。在扩散模型中LoRA 通常被加到 U-Net 的注意力层或相关线性层上。注意力层负责处理文本条件和图像特征之间的关系会影响模型如何理解风格、角色、物体和构图。通过在这些位置加入低秩增量LoRA 可以用较少参数改变模型生成行为。LoRA 的能力比 Textual Inversion 更强因为它不只是改变文本输入向量而是影响了模型内部计算。它又比 DreamBooth 和全量微调更轻因为它不需要大范围更新原始模型参数。LoRA 可以用于多种目标学习一种画风、一个角色、一个对象、一类服装、一种摄影风格甚至某个领域的图像分布。不同 LoRA 的使用方式并不完全统一。有些 LoRA 需要特定触发词才能稳定生效有些即使没有明确触发词也会改变模型整体生成倾向。这取决于训练数据和训练文本如何组织。LoRA 的主要优势是灵活。它可以单独训练、单独分享也可以和基础模型分开管理。用户可以快速切换不同 LoRA也可以尝试组合多个 LoRA。主要局限是质量差异较大不同 LoRA 之间可能相互干扰多个 LoRA 叠加时也未必稳定。4. Custom Diffusion局部精修文本与图像的连接Custom Diffusion 也是一种参数高效微调方法。它和 DreamBooth 一样关注个性化概念但不希望大范围修改模型而是只修改与概念绑定最相关的少量参数。在文生图扩散模型中文本和图像之间的关系主要通过 cross-attention 建立。cross-attention 可以理解为模型在生成图像时决定“文本中的哪些词应该影响图像中的哪些视觉特征”。如果只是希望模型学会一个新概念不一定需要改完整个 U-Net而可以重点修改这些文本-图像连接。Custom Diffusion 的做法是选择性微调 cross-attention 中的一部分参数尤其是与 key 和 value 投影相关的参数。这样模型可以在较小参数改动下把某个文本概念和对应视觉特征绑定起来。和 Textual Inversion 相比Custom Diffusion 不只是学习一个文本向量而是直接调整模型内部的文本-图像对齐机制。和 DreamBooth 相比它修改的参数更少对基础模型的扰动更小。和 LoRA 相比它不是通过低秩旁路来适配而是更直接地编辑少量关键参数。Custom Diffusion 的思想很清晰只改最相关的部分不动不必要的部分。它的局限是生态和工具链不如 LoRA 成熟因此在社区中没有 LoRA 那么普遍。5. 全量微调继续训练整个模型全量微调是最直接、也最重的方式。它不只是加一个新词也不只是挂一个补丁而是继续训练模型本身更新大量参数甚至更新全部参数。训练流程仍然遵循扩散模型的去噪学习图像被编码到 latent space加噪后交给 U-Net 预测噪声模型根据预测误差更新参数。区别在于全量微调允许大量权重一起变化因此模型可以更充分地适应新数据分布。这种方法适合目标变化较大的场景。例如如果希望模型适应医学影像、卫星图像、工业设计图、特定艺术风格或某个专业领域单靠一个 token 或一个轻量补丁可能不够。全量微调可以把模型整体推向新的分布。但它的代价也最高。全量微调需要更多数据、更多算力和更谨慎的训练设置。生成的 checkpoint 文件通常较大训练不当时容易过拟合也可能破坏基础模型原有的通用生成能力。因此全量微调并不一定是最优选择。它只是最彻底的选择。只有当目标任务确实需要整体能力迁移时全量微调才更有必要。其他相关方法与本文范围除了本文重点介绍的几类方法扩散模型微调和适配还有很多相关路线。Adapter-based tuning 会在模型中插入小型 adapter 模块只训练这些新增模块而不是更新完整模型。Pivotal Tuning 或 Pivotal Tuning Inversion 常用于进一步提升个性化保真度有时会和 Textual Inversion 或其他方法结合。HyperDreamBooth 一类方法则希望通过 hypernetwork 快速生成个性化权重从而降低 DreamBooth 式个性化的训练和存储成本。LoRA 本身也有许多变体例如 LyCORIS、LoHa、LoKr、OFT 等。它们通常仍属于更广义的参数高效适配路线只是在矩阵分解方式、参数约束或适配结构上有所不同。另外ControlNet、T2I-Adapter、IP-Adapter 等方法也经常和微调方法一起被讨论。严格来说它们更多属于条件控制或外部适配模块不完全等同于本文讨论的“把新概念写进模型或参数补丁”的微调方法。它们的目标通常不是让模型永久记住某个新对象而是让生成过程受到边缘图、姿态、深度图、参考图像或图像特征的控制。因此本文关注的不是全部方法而是几个基础且高频的代表类型。掌握这些方法后再理解其他变体会更容易。主流方法对比方法主要改动位置参数规模核心机制典型优势主要局限Textual Inversion新 token embedding极少在文本空间学习一个新概念入口轻量、易分享、成本低表达能力有限依赖 tokenDreamBoothU-Net部分情况下包括文本编码器中到大通过权重更新绑定具体实例和类别先验实例一致性强成本较高易过拟合LoRA注意力层或线性层的低秩增量少冻结原权重学习可插拔参数补丁高效、灵活、易组合使用方式不统一组合时可能干扰Custom Diffusion少量 cross-attention 相关参数少到中等精修文本概念与视觉特征的绑定关系参数较少扰动有限生态不如 LoRA 成熟全量微调大部分或全部模型参数最大继续训练整个模型以适应新分布表达能力强适合领域迁移成本高文件大易损伤通用能力如果只看改动幅度可以粗略理解为Textual Inversion LoRA / Custom Diffusion DreamBooth Full Fine-tuning但这不是绝对排名。它们的目标并不完全相同。Textual Inversion 强调极轻量的概念入口LoRA 强调参数高效和灵活组合DreamBooth 强调实例级个性化Custom Diffusion 强调局部参数编辑全量微调强调整体分布迁移。微调方法的选择逻辑选择哪种方法取决于目标、数据量、算力成本和对生成一致性的要求。如果目标是低成本加入一个新概念或风格Textual Inversion 是最轻量的选择。它适合快速实验和小规模概念注入但不适合复杂、高一致性的实例建模。如果目标是稳定复现某个人、宠物、产品或角色DreamBooth 通常更合适。它能把实例信息写进模型权重生成一致性更强但训练成本和过拟合风险也更高。如果希望在效果、成本、存储和灵活性之间取得平衡LoRA 往往是最实用的方案。它可以用较少参数显著改变模型行为适合风格、角色、对象和领域适配等多种任务。如果希望只修改与概念绑定最相关的部分可以考虑 Custom Diffusion。它的思想清晰但实际生态不如 LoRA 成熟。如果目标是让模型整体适应一个新领域全量微调更彻底。它适合较大规模分布迁移但需要更多数据、算力和训练经验。微调方法没有绝对优劣只有目标、成本和稳定性之间的取舍。总结扩散模型微调方法的名称很多但理解它们并不需要死记硬背。关键是看三件事新知识写进哪里训练时更新哪些参数推理时如何调用。Textual Inversion 把新概念写进一个 token embedding因此非常轻量但表达能力有限。DreamBooth 通过微调模型权重记住具体实例因此实例一致性更强但训练成本更高。LoRA 学习轻量低秩参数补丁在效果、成本和灵活性之间取得了很好的平衡。Custom Diffusion 选择性修改 cross-attention 等关键参数代表了局部参数编辑路线。全量微调则直接把模型整体推向新的分布能力最强代价也最高。这些方法都能让基础模型更适合特定任务但它们改变模型的方式、训练成本、使用接口和适用场景并不相同。真正理解这些差异才能正确选择、训练和使用扩散模型微调方法。