一句话总结#
InstantRetouch 把语言引导的照片修图从“直接编辑像素/latent”换成“在紧凑、内容解耦的双边空间里只预测一套仿射变换网格”,再用变分分数蒸馏把多步扩散教师蒸馏成单步生成器,从而在 4K 上做到 68ms 出图、比扩散基线快 70-900 倍,同时几乎不改动原图内容。
研究背景与动机#
领域现状:语言引导修图相比传统图像增强算法能给出更细粒度、更有表现力的控制。近来 Step1X-Edit、FLUX.1-Kontext、Qwen-Image、Gemini-2.5-Flash 等大扩散编辑模型做通用编辑(加/删物体)效果惊艳。
现有痛点:把这些通用编辑模型用到修图上有两个硬伤:1.保真度(fidelity)修图本应只做光度调整(亮度、色彩、色调),不能动几何与纹理,但生成式编辑模型无法很好解耦这些编辑,常出现 content drift——把内容、纹理甚至人脸都改了。2.效率:它们是基于迭代扩散的,计算昂贵、推理慢,高分辨率修图尤其吃不消,很多模型甚至原生处理不了 1K 以上。
核心矛盾:根因在于生成式编辑直接修改输入图的变分 latent,而 latent 同时编码了“实际内容”和“光度信息”。修图只需要后者,前者既冗余(拖慢速度)又危险(一动就可能改内容/纹理/几何)。修图本应旨在一个只关乎视觉外观、不含内容信息的更小表示上操作。
本文目标:找一个紧凑且内容解耦的表示来承载修图,并且仍能借助扩散模型的强语义先验来“听懂指令出好看的结果”,同时把多步扩散的慢推理压成单步。
切入角度:用 Bilateral Space(双边空间)——一张低分辨率的 3D 双边网格来存局部放射变换,再用一张学习到的引导图把网格切片、应用到全分辨率原图上。这套表示在 4K 下也极其高效,且因设计而保真(只做放射调色,不碰内容)。但双边空间本身不会“听指令”,所以还要把扩散先验蒸馏进来。
核心 idea:用“双边网格表示 + 双分支单步生成器 + 一步双边蒸馏 (VSD + 提示对齐损失 + 渐进式两阶段训练)”,把多步扩散教师压成一个直接预测双边网格的单步学生,鱼与熊掌兼得。
方法详解#
模型可以分为“低分辨率单步扩散”和“全分辨率双边处理”两个协同分支。让扩散模型负责“理解用户想怎么修”,让双边网格负责“在不重绘图像内容的情况下执行修图”。

整体框架#
方法把一个多步扩散教师整流程一个直接预测双边网格的快速单步生成器。
整条管线分两大阶段:先构造一个月 20 万三元组(输入图、修好的目标图、文字指令)的大规模高质量修图数据集,并用它微调一个多步扩散教师;再把教师知识蒸馏进单步双边网格生成器。生成器由两条协同分支组成:1.低分辨率单步扩散分支,负责语义理解、保留扩散先验;2.全分辨率双边处理分支,用轻量 bilateral adapter 预测出双边网格,再“切片并应用”到高分辨率原图上输出最终结果。
训练采用渐进式策略:先单独训低分支(VSD + 数据损失 + 提示对齐损失),再联合训两条分支并加上双边损失。
关键设计#
1. 双边空间表示:把修图压紧一张低分辨率放射网格,按设计就保真又高效#
修图不该去动整张图的内容,于是模型不直接编辑像素或 latent,而是预测一张低分辨率的 3D 双边网格,每个格子存一套局部放射变换参数。应用时用一个全可微的“切片并应用”算子:对全分辨率的输入的每个像素、颜色,先用学习到的查找表算出灰度引导值,再用空间坐标与引导值对网格做三线性插值取出仿射矩阵,最后得到输出色。因为只做放射调色、不重绘内容,几何与纹理天然被保住;又因为重活都在低分辨率网格上、全分辨率算子开销可忽略,低分支延迟还与分辨率无关,于是 4K 出图仅 68ms,而扩散方法处理 720p 都要 10s 以上。
2. 双分支单步生成器:低分扩散管语义、全分双边管保真,二者协同#
光有双边空间不会“听指令”,所以生成器 设计成两条协同分支。
低分辨率分支包含一个冻结的 VAE 编码器 和一个单步 U-Net 去噪器 ,负责语义理解并保留扩散先验。该分支直接对白噪声 进行单步去噪,条件输入包括输入图像 latent 和文本指令 ,得到预测的干净 latent:
训练阶段中,临时使用 VAE 解码器生成低分辨率图像 进行稳定蒸馏;推理阶段则不需要使用解码器。
全分辨率分支采用轻量级 bilateral adapter,通过一次前向传播直接预测双边网格 ,再用上面的切片-应用算子作用到高分原图。
这条双分支把"扩散的语义强项"和"双边的结构保真强项"合在一起——消融显示纯双边网格预测保真极高(SSIM 0.996)但不会听指令(O 仅 6.09),纯扩散听指令好但保真差,唯有双分支同时拿下两者。
3. 一步双边蒸馏:用 VSD + 提示对齐损失把多步教师压成单步,并采用渐进式两阶段训练稳住#
学生(单步双边)与教师(多步扩散)结构差异大,蒸馏不稳,论文提出渐进式蒸馏。核心目标是潜空间变分分数蒸馏(VSD)(沿用 DMD):引入一个在学生生成分布上微调的可训练正则器 ,对学生输出 加噪得 ,VSD 梯度为:
把学生推向教师;同时 用学生自身样本并行更新以保持是忠实代理。
但把多步编辑器压成单步会削弱指令耦合——在“更梦幻”“更温暖”这类弱、风格化指令下易产出“看似合理但跑偏”的结果。为此加提示对齐损失 :用规则匹配器把指令拆成若干原子修图属性(如 brightness:up、temperature:warm、style:vintage),每个属性配一对正负文本提示,用冻结 CLIP 算图文余弦相似度并以 InfoNCE 形式:
提供方向性监督,恢复被步数压缩丢掉的指令对齐。
此外有数据损失:
稳住低分输出,以及双边损失 (/LPIPS 对齐 GT、与低分预测一致项、网格 3D 拉普拉斯平滑、防 RGB 溢出软惩罚)训全分分支。
训练分两阶段渐进:
阶段一只训低分分支:
阶段二解冻 bilateral adapter 端到端联合训并加双边损失:
VSD 还配一个从高噪到低噪的渐进时间步课程,先学色调/曝光等粗属性再蒸馏细色彩。
4.受控退化构造修图数据集:用“先有好图、再造退化输入”反推 20 万三元组#
现有指令编辑数据多是物体级/几何编辑,缺高保真修图样本。本文反向狗造月20 万三元组:先用无参考质量指标 MUSIQ 与 LAION 美学分以保守阈值从公开数据/网络筛出高质量目标 ,再对每个目标用 photo-finishing 流水线做随机光度退化 (曝光、gamma、白平衡、对比度、色调曲线、饱和度、阴影/高光、HSL)合成退化输入 ,并用 Grounding-SAM 生成区域掩码,在不同掩码内施加不同退化参数以模拟局部修图;最后用多模态 LLM (Qwen2.5-VL-72B)以角色扮演模板对 生成简洁多样的修图质量 ,再用规则检查器保证多样性并过滤“该内容”的动词。
这套"先好后坏再生成指令"的可控管线,保证了三元组里输入到目标只差光度、不差内容,正契合修图"非破坏性"的本质。
亮点与洞察#
1."修图只需调色、不需重绘"被落到表示层:用低分双边仿射网格代替像素/latent 编辑,把"内容保真"从靠损失约束变成"按设计就成立",这是又快又不漂移的根因。
2.把扩散先验"蒸"进非扩散表示:教师是多步扩散、学生是双边网格,结构截然不同却用 VSD + 渐进两阶段成功蒸馏,提供了"扩散先验可迁移到任意高效表示"的范例。
3.提示对齐损失把弱指令拆成原子属性:用规则匹配 + CLIP InfoNCE 给"更梦幻/更温暖"这类方向性指令提供稳定可加的监督,是对"步数压缩丢失指令耦合"的精准补救,可迁移到其它一步蒸馏编辑任务。
4.数据集"先好后坏"反向构造:用受控光度退化造输入,天然保证三元组只差光度,比正向编辑数据更契合非破坏性修图。
局限与展望#
1.本质只做光度/调色类编辑,仿射双边网格无法表达需要改结构/几何/重绘的编辑,超出修图范畴的指令做不了。
2.强依赖外部大模型构造数据(Qwen2.5-VL-72B 出指令、Grounding-SAM 出掩码)与评测(SC/PQ 由 GPT-4o 给分),存在数据偏置与评估器偏差。
3.教师质量上限受所用预训练 Stable Diffusion 编辑器约束;对极强语义/局部精细编辑,单步学生与多步教师仍有差距(O 8.54 vs 8.74)。
4.训练流程较复杂(两阶段 + VSD 时间步课程 + 多项损失加权),超参与稳定性调试成本不低。