UniTune: Text-Driven Image Editing by Fine Tuning a Diffusion Model on a Single Image
Google Research
一句话总结
UniTune 发现只要在单张图像上微调一个大规模文生图扩散模型(Imagen),就能把它变成一个无需 mask 的文本驱动图像编辑器,既保住原图的视觉与语义细节,又能完成过去难以实现的大幅度改动。
研究背景
- 领域现状:Dall-E、Imagen、Stable Diffusion 等文生图模型已能凭文本从零生成高质量图像,也能对手动抠掉的区域做上下文感知的填充。
- 核心痛点:把这些模型用于编辑已有图像却很困难——通常需要用户提供 mask,难以处理需要大幅像素改动的编辑,且很难保留被编辑区域内的特定细节。基于采样的保真方法(如 SDEdit)因为模型从没见过底图,既恢复不了精细细节,又过度受原图像素值束缚,不适合大改。Prompt-to-Prompt 依赖注意力权重,只对模型自己生成的图有效;DreamBooth/Textual Inversion 则刻意丢弃位置、背景等瞬时属性,目标与编辑相反。
- 本文 idea:作者观察到用恰当的参数在单个
(图像, 提示)对上微调大扩散模型不会导致灾难性遗忘。微调后的模型会强烈偏向复现底图,但其原始训练学到的视觉与语义知识仍然可用——只要配合 Classifier-Free Guidance 就能被”唤回”。对编辑任务而言,适度的过拟合恰恰有益,因为我们本就想保住对原图的高保真。
方法
整体框架分两阶段:先在底图 \(x^{(b)}\) 上微调模型,让它学会复现这张图;再用一套改造过的采样流程,在”忠于底图”和”符合编辑提示”之间取得平衡。
flowchart LR
A["底图 x_b + 3 个稀有词 token"] --> B["阶段一:单图微调 Imagen"]
B --> C["阶段二:拼接提示 稀有词 + 编辑描述"]
C --> D["从 t=0.8~0.98 起采样,用加噪底图初始化"]
D --> E["高权重 CFG(=32)+ 振荡引导 + 动态阈值"]
E --> F["按邻域相似度线性插值回原图像素"]
F --> G["编辑结果 x_0"]
关键设计:
-
单图微调,用稀有词绑定底图。沿用 DreamBooth 的做法,用 3 个在原始训练数据中不存在的稀有 token 组成的文本条件 \(c^{(b)}\) 去描述底图,以固定图像与条件做去噪训练,损失为 \[\mathbb{E}_{\boldsymbol{\epsilon},t}\left[w_t \lVert \boldsymbol{f}_\theta(\alpha_t \boldsymbol{x}^{(b)} + \sigma_t \boldsymbol{\epsilon},\, \boldsymbol{c}^{(b)}) - \boldsymbol{\epsilon}\rVert_2^2\right]\] 其中 \(t \sim \mathcal{U}([0,1])\),\(\boldsymbol{\epsilon} \sim \mathcal{N}(0, I)\)。微调步数极少(16~128 步),需要更强表现力就少训、需要更高保真就多训;约 64 步即可忠实复现底图。
-
靠 Classifier-Free Guidance 唤回原始知识。采样时把稀有词与编辑提示拼成
[稀有词] 编辑提示。朴素采样下模型对底图的偏好会压过提示,几乎原样复现;用较高权重(取 32 效果最好)的 CFG 把模型推向拼接提示,就能在保真的同时满足编辑要求。由于 CFG 权重高,额外引入了振荡引导(Oscillating Guidance)与动态阈值(Dynamic Thresholding)稳定生成。 -
加噪初始化提升视觉保真。不从纯高斯噪声、\(t=1\) 起采样,而是从较低的 \(0.8 \le t \le 0.98\) 起步,用前向过程对底图加噪作为初始值: \[\boldsymbol{z}_t = \alpha_t \boldsymbol{x}^{(b)} + \sigma_t \boldsymbol{\epsilon}\] 因为模型已偏向底图,即便从很嘈杂的版本起采样也能维持高视觉保真。
-
邻域相似度插值找回细节。最后把生成图与底图按像素做线性插值,插值权重由像素邻域相似度决定(对两图逐通道平方差之和施加高斯滤波得到),从而进一步保留原图的精细细节。有趣的是,尽管微调用的是像素级 MSE 损失,\(x_0\) 与 \(x^{(b)}\) 的相似往往是语义层面的、二者 MSE 可能差别很大,说明微调改变的是模型内部语义表示的偏置。
实现上以 Imagen(冻结 T5-XXL 文本编码器)为基座:微调其 64×64 生成模型与 64→256 超分模型,1024 超分模型保持默认;batch size 为 4,在 16/32/64/128 步各输出一份权重。同一张底图只微调一次即可做多种编辑(相比之下 Imagic 对每个编辑提示都要重新微调)。
实验结果
作者在动物、人物、物体、食物、风景等 93 组 (底图, 编辑文本) 上,与同样能处理任意图像、无需 mask 的 SDEdit 做人评对比(29 位评审)。其中 51% 的编辑需要显著的像素级改动(移动物体、缩放、大幅换风格等),称为”unaligned”。按多数投票选出更受偏好方法的结果如下:
| 场景 | UniTune 偏好率 | SDEdit 偏好率 |
|---|---|---|
| 总体 | 72% | 28% |
| Unaligned(需大幅改像素) | 83% | 17% |
| Aligned(改动较小) | 60% | 40% |
可见两者在无需大改像素的编辑上都不错,但一旦涉及复制、移动、缩放物体等大幅改动,UniTune 优势明显。另在质量 / 保真 / 文本对齐三项 1~5 打分上,UniTune 也全面优于 SDEdit(如总体质量 4.14 vs 3.90、保真 3.87 vs 3.54、文本对齐 4.21 vs 3.89)。定性上还与 Text2LIVE、多种 inpainting 方法及单域方法做了对比,展示了跨域、可组合、可局部/全局编辑的能力。
亮点与局限
- 亮点:
- 把”文生图模型”到”图像编辑器”的转换简化为单图微调,无需 mask、无需草图,方法极简却适用面广。
- 能自动挑选该保留的细节——可换衣服/姿态/动作而不换人物,或做保留姿势发型的漫画化,这是同类方法难做到的。
- 每张底图只微调一次即可复用做多种编辑,比逐提示微调的 Imagic 更省时。
- 通过微调步数、CFG 权重、起始加噪步数三个旋钮,可灵活调节”保真—表现力”的平衡。
- 局限:
- 能力被基座模型天花板锁死,Imagen 处理困难的罕见场景也是 UniTune 失败最多之处。
- 依赖多次随机种子挑选——论文多数图是从 8 次不同种子生成中择优,个别情形还需再试更多种子或做提示工程。
- 单图微调有一定计算/时间开销,且高 CFG 权重需配套振荡引导与动态阈值等稳定技巧。
延伸思考
- UniTune 与并行的 Imagic 共享”单图微调扩散模型做编辑”的核心思想,差别在于 UniTune 每图只微调一次、更利于同图多次编辑;而 InstructPix2Pix 走的是”造数据训练专用编辑模型”的另一条路,三者可对照理解”少样本微调 vs. 大规模指令训练”两种范式。
- “适度过拟合有益”的观察对少样本个性化任务是很好的反直觉启发:过拟合并非总是敌人,关键在于用 CFG 之类机制在推理期把原始知识重新调出来。
- 方法强依赖基座生成模型,随着更强底模(如后续 SD/SDXL/扩散 Transformer)出现,这套”微调+引导+插值”的思路是否仍是最优,值得与免微调的注意力操控类编辑方法持续比较。