Skip to content

Textual Inversion 与超网络

Textual Inversion 和 Hypernetwork 是图像生成领域中两种轻量级的模型定制技术——用极少的训练数据和参数,教会模型理解新概念(新角色、新风格、新物体)。它们是 LoRA 出现之前最主流的定制方案,至今仍有独特价值。本页梳理两者的原理、训练流程与适用场景。前置阅读:扩散模型、图像 LoRA 训练。

想象你的模型是一本画册词典——每个词对应一个画面概念。现在你想让它学会画你的原创角色「小明」——

  • Textual Inversion(文本反转)= 不改画册,只在词典里新增一个词条。用 3-5 张小明的照片,模型自己琢磨出一个名为”小明”的词条。以后 prompt 里写 <xiaoming> 就能召唤出小明。词条极小(几十 KB),但表达能力有限——细节多的人物学不好,简单的画风/物体效果不错。
  • Hypernetwork(超网络)= 不改画册,也不改词典,而是给画师戴一副「智能眼镜」。眼镜是一个小网络,插在 U-Net 的 Cross-Attention(交叉注意力)层之间,实时调制注意力权重。眼镜学会后,画师看到的画面自动带上目标风格。
  • LoRA(对比参照)= 直接在画册里夹笔记修改权重。表达能力远超前两者,是当前主流方案——详见图像 LoRA 训练。

什么是 Cross-Attention? Transformer 架构中的一种注意力机制——在扩散模型的 U-Net 里,它把文本 prompt 的语义信息「注入」到视觉特征图中,决定画面中每个区域应该生成什么内容。文本向量通过键值对(Key-Value)的方式与图像特征交互,是文本到图像生成的核心桥梁。

核心区分:训练什么。 Textual Inversion 训练一个「词向量」;Hypernetwork 训练一个「中间层调制网络」;LoRA 训练「低秩权重增量」。三者都不动基础模型,但定制深度递增。参数量对比:Textual Inversion 约 3 KB(单个 token),Hypernetwork 约 10-80 MB,LoRA 约 50-500 MB,全量微调则需数 GB。

CLIP 文本编码器:嵌入空间的基础

Section titled “CLIP 文本编码器:嵌入空间的基础”

要理解 Textual Inversion,首先需要理解扩散模型的文本处理流程。以 Stable Diffusion 1.5 为例:

  1. Tokenizer 分词:prompt 文本首先被 CLIP 的 tokenizer(基于 Byte-Pair Encoding,BPE)切分为离散 token。例如 “a cat sitting” → [a, cat, sitting] → token ID 序列 [320, 2368, 3285]。
  2. Embedding 查表:每个 token ID 通过一个嵌入矩阵(embedding matrix)查表,映射为一个 768 维向量。这个矩阵大小为 vocab_size×768\text{vocab\_size} \times 768(CLIP 的词表约 49408 词,故矩阵约 49408 × 768 ≈ 3800 万参数)。
  3. Transformer 编码:token 向量序列经过 CLIP 的文本 Transformer 编码器(SD 1.5 中是 12 层、12 个注意力头),每层通过自注意力(Self-Attention)和前馈网络(FFN)处理,输出最终的文本特征序列。
  4. 注入 U-Net:编码后的文本特征通过 Cross-Attention 层注入到 U-Net 的各分辨率层级中,指导去噪过程。

什么是 Embedding(嵌入)? 把离散的 token ID 映射为连续的高维向量(如 768 维),使得语义相近的词在向量空间中距离也近。这个映射是通过训练学到的——CLIP 在 4 亿图文对上做了对比学习训练,使得”猫”和”狗”的向量距离近,而”猫”和”汽车”相远。Embedding 是连接语言与视觉的桥梁。

Textual Inversion:学习一个新嵌入向量

Section titled “Textual Inversion:学习一个新嵌入向量”

扩散模型使用 CLIP 文本编码器将 prompt 中每个 token 映射为一个向量(SD 1.5 中是 768 维;SDXL 中因同时使用两个 CLIP 编码器 CLIP-ViT-L 和 CLIP-ViT-G,拼接后为 2048 维;FLUX.1 使用 T5-XXL 编码器,嵌入维度高达 4096 维)。这些向量是训练好的、固定不变的字典。Textual Inversion 的思路是:

  1. 选 token:选一个未使用的占位 token(如 <my-style>)。该 token 对应 embedding 矩阵中的一个新行——一个全新的 768 维向量。

  2. 初始化:将该 token 对应的向量初始化为随机值,或更常用的是从语义相近词的向量拷贝(如从 “art”、“painting” 的均值初始化风格 token,加速收敛)。

  3. 冻结模型:冻结模型所有参数——U-Net、CLIP 编码器、VAE 全部固定不更新。唯一可训练的是这一个 768 维向量。

  4. 训练:用 3-5 张目标图片做训练。训练流程为:将图片用 VAE 编码到潜空间(latent space)→ 添加噪声 → 让 U-Net 预测噪声(即标准的去噪训练),但 prompt 中目标概念被替换为 <my-style> token。损失函数就是标准的扩散模型去噪损失(MSE):

    L=Ex,t,ε[∥ε−εθ(xt,t,ctext)∥2]L = \mathbb{E}_{x, t, \varepsilon} \left[ \|\varepsilon - \varepsilon_\theta(x_t, t, c_\text{text})\|^2 \right]

    其中 ε\varepsilon 是添加的真实噪声,εθ\varepsilon_\theta 是 U-Net 预测的噪声,ctextc_\text{text} 是文本条件(包含我们正在优化的 <my-style> 向量),tt 是时间步。梯度只回传到 <my-style> 的 embedding 向量,其他参数的梯度被截断。

什么是潜空间(Latent Space)? Stable Diffusion 不在像素空间直接操作,而是在一个压缩的潜空间(如 512×512 图像压缩为 64×64×4 的潜变量)中做去噪。这样大幅降低了计算量(从约 78 万维降到 1.6 万维),是 SD 系列相比早期扩散模型的核心效率优势。VAE(变分自编码器)负责在像素空间与潜空间之间转换。

训练完成后,保存的就是一个 768 维向量(约 3 KB)。使用时把这个 embedding 文件加载进模型,prompt 中写 <my-style> 即可。

CLIP 的嵌入空间是连续且有结构的——这是 Textual Inversion 成立的根本原因。CLIP 在 4 亿图文对上做了对比学习(Contrastive Language-Image Pre-training),训练目标是把匹配的图文对在向量空间中拉近,不匹配的推远。结果是:

  • “猫”和”狗”的向量相近(都是动物、有毛、四足)
  • “猫”和”汽车”相远(视觉特征几乎无重叠)
  • “油画”和”水彩”相近(都是绘画),但与”照片”相远

这个嵌入空间可以看作一个高维的语义坐标系——每一维隐含编码了某种视觉语义(色彩、纹理、形状、构图等)。Textual Inversion 的优化过程,本质是在这个预训练好的语义空间中搜索一个最佳坐标点,使得该坐标对应的视觉特征与训练图片匹配。因为 CLIP 空间已经学好了丰富的语义结构(经过 4 亿对图文对的大规模预训练),只需找到正确的坐标点就能激活对应视觉特征——无需重新训练整个模型。

从优化视角看,这是一个低维参数空间上的梯度下降问题。768 维向量只有一个全局极小值的概率极低,但因为 CLIP 空间的语义平滑性,损失曲面相对光滑,小数据集(3-5 张图)下也能找到合理的局部最优解。这也是为什么 Textual Inversion 收敛快、训练稳定——参数空间极小,过拟合风险也相对可控(但不是没有,见下文)。

只有一个 768 维向量(SD 1.5)的表达空间太小——768 个浮点数不足以编码高度复杂的视觉细节(如特定角色的瞳孔花纹、发饰结构、面部特征比例)。信息论角度:3 KB 的信息量 ≈ 一张低分辨率缩略图的像素信息量。因此 Textual Inversion 擅长学风格(纹理类、色彩类特征——这些本质是统计规律,低维就能编码),不擅长学复杂角色(需要精确的结构信息)。

此外,单 token 还有一个语义歧义问题:训练图片通常包含多个概念(人物 + 背景 + 光照),但只有一个向量去表达,模型容易把背景或光照等非目标特征也编码进 embedding,导致生成时产生不想要的偏见。DreamBooth 通过全量微调缓解了这个问题,LoRA 通过低秩矩阵分解在参数量和效果间取得了更好的平衡。

SDXL 及后续模型中的 Textual Inversion

Section titled “SDXL 及后续模型中的 Textual Inversion”

随着模型架构升级,Textual Inversion 的形态也在演变:

  • SDXL(2023):使用双 CLIP 编码器(CLIP-ViT-L + CLIP-ViT-G),文本嵌入维度从 768 升至 2048。Textual Inversion 的 embedding 也相应增大到约 8 KB,表达力略有提升,但核心局限(单 token 容量有限)未根本改变。SDXL 社区仍有一定数量的 embedding 资源,但数量远少于 SD 1.5 时代。
  • Stable Diffusion 3 / FLUX.1(2024-2025):改用 T5-XXL(文本编码维度 4096)作为主要文本编码器。Textual Inversion 在这些新架构上的适配更为复杂——T5 的 token embedding 机制与 CLIP 不同,社区工具链尚未完全跟上。到 2025 年,Textual Inversion 在 SD3/FLUX 生态中几乎被 LoRA 和 Reference 方案取代。
  • 多 token Textual Inversion:一个变体是学习多个 token(如 <my-concept> token1 token2 token3)来增加表达容量。这可以把参数量提升到几 KB-几十 KB,改善复杂概念的学习效果,但训练难度也上升(多 token 之间存在相互依赖)。

Hypernetwork 不改词向量,而是插入一个小型神经网络到 U-Net 的 Cross-Attention 模块中。要理解它的工作方式,需要先看 Cross-Attention 层的内部结构:

Cross-Attention 的计算流程(以 U-Net 中的一层为例):

Q=WQ⋅image_featuresK=WK⋅text_featuresV=WV⋅text_featuresattn=softmax ⁣(Q⋅KTd)output=attn⋅V\begin{aligned} Q &= W_Q \cdot \text{image\_features} \\ K &= W_K \cdot \text{text\_features} \\ V &= W_V \cdot \text{text\_features} \\ \text{attn} &= \text{softmax}\!\left(\frac{Q \cdot K^T}{\sqrt{d}}\right) \\ \text{output} &= \text{attn} \cdot V \end{aligned}

其中文本特征作为 Key 和 Value,图像特征作为 Query;QQ、KK、VV 分别是图像/文本特征投影后的 Query、Key、Value,attn 是注意力权重,output 是加权聚合后的文本信息。

Hypernetwork 的做法是在 Key/Value 的投影权重(WKW_K、WVW_V)上加一个可学习的调制量。具体来说,Cross-Attention 层的权重矩阵 WW 被替换为 W+ΔWW + \Delta W,其中 ΔW\Delta W 由 Hypernetwork 生成:

ΔW=Hypernetwork(conditioning_vector)\Delta W = \text{Hypernetwork}(\text{conditioning\_vector})

Hypernetwork 本身是一个小型 MLP(多层感知机),通常包含 2-4 个全连接层,输入一个条件向量,输出与注意力权重矩阵同形状的调制量。输入条件向量通常是随机初始化的可学习参数(无外部条件输入),也可以是 CLIP 图像编码器的输出。训练时冻结 U-Net 的全部原始参数,只优化 Hypernetwork 的参数(约 10-80 MB)。

什么是 MLP(多层感知机)? 最基础的前馈神经网络结构——多个全连接层(Linear)叠加,层间插入非线性激活函数(如 ReLU、GELU)。一个 3 层 MLP 可以写为 y=W3⋅activation(W2⋅activation(W1⋅x+b1)+b2)+b3y = W_3 \cdot \text{activation}(W_2 \cdot \text{activation}(W_1 \cdot x + b_1) + b_2) + b_3。MLP 的优势是简单、通用,但参数效率不如 Transformer 等现代架构——这也是 Hypernetwork 参数量偏大的原因之一。

一个 Hypernetwork 文件通常 10-80 MB——比 Textual Inversion 大得多(约 3 万倍),但仍远小于全量微调(SD 1.5 全量约 4 GB)。它的参数主要花在生成注意力权重调制量上——每个 Cross-Attention 层的 WKW_K、WVW_V 矩阵都需要一个对应尺寸的输出,层数越多参数越大。

Hypernetwork 在 2022 年 SD 1.5 早期是主流定制方案(NovelAI 社区贡献了大量动漫风格超网络)。HyperNetwork 的原始概念来自 Ha et al. (2017)——用一个网络生成另一个网络的权重。但在图像生成领域的应用中,它的优势在 LoRA 出现后迅速消失:

  • 表达力不足:Hypernetwork 只调制 Cross-Attention 层,无法影响 U-Net 中的 Self-Attention 和卷积层;LoRA 则可以贴在任意层的权重矩阵上。
  • 训练不稳定:MLP 生成的权重调制量容易过大或过小,需要精细的 学习率调节和梯度裁剪;LoRA 的低秩分解天然有正则化效果,训练更稳定。
  • 参数效率差:同样 80 MB 参数,LoRA 能学到更丰富、更精确的概念。

到 2023 年下半年,Hypernetwork 在社区中的使用率已降到个位数百分比。如今 Hypernetwork 主要用于特定场景(如控制 U-Net 的风格倾向),不再是定制首选。

2025 年视角:轻量定制的演进格局

Section titled “2025 年视角:轻量定制的演进格局”

进入 2025 年,Textual Inversion 和 Hypernetwork 在生产环境中基本退居二线,但它们的思想仍在延续:

技术兴盛期2025 年状态典型用途
Textual Inversion2022 下半年社区遗产(SD 1.5 生态为主)负向 embedding、快速风格试验
Hypernetwork2022 年基本退场极少数特殊调制场景
LoRA2023 至今绝对主流角色、风格、概念定制
DreamBooth2022-2023与 LoRA 结合使用高保真度角色定制
Reference / IP-Adapter2024-2025快速增长免训练图像引导生成
Flow Matching 微调2025新兴(FLUX 生态)针对 Rectified Flow 架构的定制

值得注意的是,Textual Inversion 的精神——用极小参数量编码一个概念——在 2024-2025 年以新的形式延续。例如 IP-Adapter 的 “Plus” 变体中,图像特征被编码为一个紧凑的 embedding 注入 Cross-Attention,思路与 Textual Inversion 一脉相承(只是输入从文本变成了图像)。此外,2025 年 FLUX 生态中出现的 lightweight textual embedding 微调实验表明,在更大的 T5 文本编码器上,单 token 的表达瓶颈有所缓解,但社区整体仍倾向于使用 LoRA。

Textual Inversion 的数据流与梯度回传

Section titled “Textual Inversion 的数据流与梯度回传”
from diffusers import StableDiffusionPipeline
from PIL import Image
import torch, os
# 加载 SD 1.5 模型
pipe = StableDiffusionPipeline.from_pretrained(
"runwayml/stable-diffusion-v1-5", torch_dtype=torch.float16
).to("cuda")
# ---- 以下为概念示意,实际训练用 train_textual_inversion.py 脚本 ----
# 准备数据:3-5 张目标图片放在 dataset/ 目录
# 初始化新 token 的 embedding(随机或从相近词拷贝)
# 冻结所有参数,只优化该 embedding 向量
# 训练约 3000-5000 步,保存为 embedding.pt
# ---- 训练完成后加载使用 ----
# learned_embeds = torch.load("embedding.pt") # 加载学到的词向量
# pipe.load_textual_inversion("embedding.pt", token="<my-style>")
# 在 prompt 中使用新概念
# image = pipe("a cat in <my-style> style", num_inference_steps=20).images[0]
# image.save("result.png")
print("Textual Inversion: 训练后用 <my-style> 召唤目标概念")

以下是 SD 1.5 上训练 Textual Inversion 的典型配置(基于 HuggingFace 官方 train_textual_inversion.py 脚本),理解这些参数有助于判断训练效果:

# 典型训练配置(SD 1.5)
train_config = {
"pretrained_model": "runwayml/stable-diffusion-v1-5",
"placeholder_token": "<my-style>", # 占位 token,用尖括号包裹避免与已有词冲突
"initializer_token": "art", # 初始化用词,从该词的 embedding 拷贝起点
"learnable_property": "style", # "style" 或 "object",影响数据增强策略
"learning_rate": 1e-4, # 较高学习率(只训练一个向量,可以激进些)
"max_train_steps": 3000, # 通常 2000-5000 步即可收敛
"train_batch_size": 1, # 小数据集用 batch size 1
"gradient_accumulation_steps": 4, # 等效 batch size 4
"num_vectors": 1, # 学习几个 token(1=标准 TI,>1=多 token 变体)
"lr_scheduler": "constant", # 恒定学习率,因为参数少不需要 warmup
"gradient_clipping": 1.0, # 梯度裁剪,防止偶发的大梯度破坏 embedding
"resolution": 512, # 训练图像分辨率(匹配 SD 1.5)
}

关键点解读:

  • 学习率较高(1e-4):因为只有几百到几千个参数需要训练(远少于模型参数),可以用比全量微调(通常 1e-6)高得多的学习率。
  • initializer_token:选择语义相近的词作为初始化可以大幅加速收敛。学风格从 “art”/“painting” 初始化,学物体从类别词(如 “dog”)初始化。
  • learnable_property:"style" 会启用更强的数据增强(裁剪、翻转),适合纹理类概念;"object" 增强较弱,保留物体的空间结构信息。

标准 Textual Inversion 只学习 1 个 token。一个增强变体是学习多个 token(如 3-5 个),拼在一起表示一个概念:

# 多 token 变体:用 num_vectors=3 学习更复杂的概念
# 代价是参数量增大 3 倍(仍只有约 9 KB),但表达容量显著提升
# 实测对中等复杂度的角色/物体效果优于单 token
train_config_multi = {
"placeholder_token": "<my-character>",
"num_vectors": 3, # 学习 3 个 token
"learning_rate": 5e-5, # 参数更多,学习率适当降低
"max_train_steps": 5000, # 多 token 需要更多步数才能协调好各 token 间的关系
}

多 token 之间的协同是一个难点——每个 token 负责编码概念的不同方面(如 token1 编码色彩、token2 编码形状、token3 编码纹理),但优化器并不自动保证这种分工,需要通过训练自然涌现。

  • 数据少用 Textual Inversion:只有 3-5 张图、目标是简单风格或物体时,Textual Inversion 是最高性价比方案——文件极小(3 KB)、训练快(10-20 分钟,单 GPU)。
  • 角色/复杂概念用 LoRA:15-30 张图、目标是特定角色或复杂风格时,LoRA 效果远超 Textual Inversion。详见图像 LoRA 训练。
  • Token 命名用罕见词:占位 token 用 <sks>、<xyz-style> 这类不在常用词典中的字符串,避免与已有词的语义冲突。尖括号 <...> 是社区惯例,部分 tokenizer 会将尖括号内容视为整体。
  • 训练步数 3000-5000 足够:Textual Inversion 收敛很快,过多步数会过拟合——embedding 只记住了训练图片本身而非泛化概念。过拟合的表现是:训练图片能精确复现,但换 prompt 组合时生成结果僵化、缺乏变化。
  • 学习率是关键超参数:Textual Inversion 的参数极少,可以用较高学习率(1e-4 到 5e-4)。太低(如 1e-6)则训练极慢、甚至不收敛;太高(如 1e-2)则 embedding 在空间中剧烈跳动,无法稳定到有意义的坐标。
  • Hypernetwork 基本被 LoRA 取代:除非你有特殊原因(如需要极轻量调制),否则直接用 LoRA。Hypernetwork 的训练不稳定、效果差,且在 SDXL/SD3/FLUX 上的社区支持几乎为零。
  • Textual Inversion 可叠加使用:同一个 prompt 中可以同时加载多个 embedding——“a cat in <style1> <style2>”,风格可以混合。不同 embedding 的向量在 Cross-Attention 中独立工作,效果近似线性叠加。
  • Negative Embedding:可以训练负向 embedding(如 EasyNegative)作为通用负向提示词,自动压制低质量特征——社区大量免费下载。负向 embedding 的训练方式与正向相同,区别是训练目标图片是”不想要的”低质量样本。
  • 在 ComfyUI 中即插即用:embedding 文件放入 models/embeddings 目录,prompt 中直接写 token 即可自动识别。详见ComfyUI 与节点式生成。
  • 新模型(SDXL/SD3/FLUX)上的选择:在这些新架构上,Textual Inversion 的社区工具链不完善,推荐直接用 LoRA 或 Reference 方案。Textual Inversion 的最佳实践仍集中在 SD 1.5 生态。
  • CivitAI Embedding 社区:大量免费 Textual Inversion 模型下载,涵盖风格(油画、水墨)、负向优化(EasyNegative)、质量增强等多种用途。截至 2025 年,CivitAI 上 SD 1.5 的 embedding 资源仍超过数千个,但 SDXL/SD3 的 embedding 极少——印证了 Textual Inversion 在新架构上式微的趋势。
  • Stable Diffusion WebUI:原生支持 embedding 加载——文件放入 embeddings/ 目录,prompt 中写 token 即自动识别。Automatic1111 WebUI 和 Forge 均保持了完整兼容。
  • 角色风格快速定制:画师用 Textual Inversion 将自己的画风编码为一个 token,之后所有 prompt 加上这个 token 就自动套用个人风格。适合画风特征明确、不需要精确角色还原的场景。
  • Negative Prompt 增强:社区训练的 EasyNegative、bad_prompt、badhandv4 等 embedding 放入负向 prompt,自动压制手部畸形、低质量等常见缺陷。这是 Textual Inversion 在 2025 年最活跃的应用场景——即使 LoRA 大行其道,负向 embedding 因其极致轻量和通用性仍被广泛使用。
  • Hypernetwork(历史):NovelAI 时代(2022)动漫风格定制的标准方案,如今主要作为历史参考保留。CivitAI 上仍能下载到大量历史 Hypernetwork 文件,但新发布的基本为零。
类库/工具语言说明
diffusers train_textual_inversionPythonHuggingFace 官方训练脚本,支持 SD 1.5/SDXL
sd-scriptsPythonKohya 的训练套件,支持 TI/Hypernetwork/LoRA
Automatic1111 WebUIPython原生支持 embedding 和 hypernetwork 的加载与训练
ComfyUIPython节点式界面,embedding 自动识别、即插即用
CivitAIWeb最大模型社区,含大量 Textual Inversion 模型(以 SD 1.5 为主)
Embedding Editor (WebUI 插件)Python可视化编辑 embedding 向量
术语英文解释
文本反转Textual Inversion学习一个新 token 的 CLIP 嵌入向量来定制模型
嵌入Embeddingtoken 经过文本编码器后的高维向量表示,将离散符号映射为连续空间中的坐标
超网络Hypernetwork插入 U-Net 的小型网络,调制 Cross-Attention 权重
占位 TokenPlaceholder Token为新概念定义的罕见字符串(如 sks、xyz)
低秩适配LoRA低秩权重增量定制,Textual Inversion 的继任者
Cross-AttentionCross-AttentionU-Net 中将文本向量注入视觉特征的机制,文本特征作为 Key/Value 与图像特征交互
自注意力Self-Attention序列内部各位置之间互相”关注”的机制,Transformer 的核心组件
负向嵌入Negative Embedding编码”不想要”特征的 embedding,用作通用负向提示词
冻结参数Freezing训练时固定模型权重不更新,只优化目标参数
潜空间Latent SpaceVAE 压缩后的低维表示空间,扩散模型在此空间进行去噪
对比学习Contrastive LearningCLIP 的训练方法,拉近匹配图文对、推远不匹配对,构建语义结构化的嵌入空间
去噪损失Denoising Loss扩散模型的核心训练目标:预测添加到潜变量中的噪声,用 MSE 衡量预测误差
多 token TIMulti-token TI学习多个 token 表示一个概念,增加表达容量的 Textual Inversion 变体
  • Gal et al.,「An Image is Worth One Word: Personalizing Text-to-Image Generation using Textual Inversion」(ICLR 2023):Textual Inversion 原始论文(即 DreamBooth 团队的前序工作),提出用 3-5 张图学习新概念嵌入。论文的核心贡献是证明了 CLIP 嵌入空间中存在未被使用的”空白区域”,可以用来编码任意新概念。
  • Ha et al.,「HyperNetworks」(ICLR 2017):Hypernetwork 概念的原始论文,提出用一个网络生成另一个网络的权重。这一思想后来在图像生成定制中被 NovelAI 社区发扬光大,但最终被 LoRA 取代。
  • Ruiz et al.,「DreamBooth: Fine Tuning Text-to-Image Diffusion Models for Subject-Driven Generation」(CVPR 2023):DreamBooth 论文,与 Textual Inversion 互补的全量微调方案。DreamBooth 微调 U-Net 全部权重,效果远超 Textual Inversion,但需要更大显存和更精细的正则化(先验保持损失)。
  • Hu et al.,「LoRA: Low-Rank Adaptation of Large Language Models」(ICLR 2022):LoRA 论文,后来成为图像定制的主流方案——详见图像 LoRA 训练。LoRA 的低秩分解思想解决了全量微调的参数效率问题,同时避免了 Textual Inversion 的表达瓶颈。
  • Gal et al.,「Encoder-Based Domain Tuning for Fine-tuning Text-to-Image Models」(2023):Custom Diffusion 论文,提出在 Textual Inversion 基础上微调少量 Cross-Attention 层,在参数效率和效果之间取得新的平衡点。
  • Ye et al.,「IP-Adapter: Text Compatible Image Prompt Adapter for Text-to-Image Diffusion Models」(2023):IP-Adapter 论文,将图像特征编码为 embedding 注入 Cross-Attention——思路与 Textual Inversion 一脉相承,但输入从文本变为图像,2024-2025 年成为免训练定制的热门方案。
  • CivitAI Embedding Guide:社区维护的 embedding 使用教程和模型评测,涵盖风格/负向/质量各类型。SD 1.5 的 embedding 资源最为丰富。