你有没有遇到过这种情况:用AI改图,明明只想让照片里那个人的笑容再灿烂一点点,结果AI给你整个脸都换了个人。或者你想让天空多一点晚霞的味道,结果云的形状、山的轮廓全跟着变了。
这不是你用得不对。这是现在大部分AI图像编辑工具的通病。
它们给你的选择只有两种:要么完全不动,要么彻底重画。中间地带几乎是空白的。
这篇来自香港科技大学数学系的论文,想解决的就是这个"中间地带"的问题。论文叫《Diffusion Editing with Soft Mask》,提出了一个叫SoftPaint的方法,核心卖点一句话概括:让你用一个有深浅渐变的蒙版,精确控制画面里每一个像素"该保留多少、该重画多少"。
这事听起来简单,做起来却出乎意料地难。接下来我们就一点点拆开看。
二选一的世界,是怎么形成的
现在主流的AI修图,靠的是扩散模型。
扩散模型*:一种通过不断给图片"去噪"来生成图像的AI技术,训练时先把清晰图片一步步加噪声直到变成纯噪声,生成时再反过来一步步去噪,最终还原出一张新图。
这类模型在图像修补(inpainting)领域有个经典玩法:你画一个黑白蒙版,黑的部分表示"保留原图",白的部分表示"随便重画"。这个二元蒙版简单粗暴,但也正是问题所在。
想象你在装修房子,设计师问你:"这面墙,是完全不动,还是整面墙砸掉重做?"你心想,我明明只是想把墙面的颜色调浅一点,保留原来的纹理和质感啊。可设计师的工具箱里压根没有"调浅"这个选项,只有"保留"和"砸掉"两个开关。你要么忍着住旧墙,要么接受一面完全陌生的新墙,中间那种"在原来基础上轻轻改一改"的需求,根本没地方安放。
如果没有软蒙版这种机制,结果会怎样?现实中的AI编辑工具只能靠文字提示去"暗示"模型改动幅度,但文字描述永远没法精确到每个像素该改多少。要么你的提示词太温和,AI几乎不改;要么你多加几个强调词,AI直接大刀阔斧重画一片区域,原来的细节荡然无存。这就是为什么现在很多AI修图,改完之后用户经常觉得"不是我想要的那种改法"。
论文作者把这种全有全无的二元蒙版编辑方式,称为二元修复(binary inpainting)。而他们想做的,是把它升级成连续可调的软修复(soft inpainting):用一个取值在0到1之间的强度值,去描述每个像素到底该在多大程度上"重做"。0表示完全照抄原图,1表示完全自由重画,0.5可能就是介于两者之间的某种混合效果。
这个想法听起来理所应当,但真正做起来,会撞上一堵意想不到的墙。
最直接的办法,为什么行不通
如果你是工程师,第一反应大概率是:直接把两张图按比例混合不就行了?
比如原图是x_ref,AI重画的结果是x_model,设定一个混合系数r,最终结果就是(1-r)乘原图加r乘重画结果。r等于0就是纯原图,r等于1就是纯重画,中间取0.5就各占一半。
这个思路听起来天衣无缝,论文里管它叫"朴素混合"(Naive Mixing)。但实际测试下来,效果非常差。
问题出在哪?你拿两张内容截然不同的清晰图片,按比例像素级叠加,得到的不是一张"半新半旧"的清晰图片,而是一张重影模糊的废片。
这就好比你把两张完全不同的照片用PS叠加图层并调低不透明度,想做出一种"过渡感",结果往往是两张照片的内容互相穿帮,边缘重影,看起来一团糟,而不是你期待的那种自然渐变。
更麻烦的是,扩散模型本身是"追求清晰合理画面"的生成器。当它发现自己被要求输出一张模糊叠影的图时,为了让画面看起来更"正常",它会悄悄把自己生成的内容朝着原图的方向拉过去,试图让两者趋同,减少模糊感。结果就是,即使你把混合系数r调到很高,模型实际呈现出来的改动幅度也远远达不到预期,整张图看起来还是死死粘着原图不放。这就是论文里实验数据所验证的现象:朴素混合法在r从0一路调到0.8之前几乎没什么变化,编辑强度的曲线完全是"死的"。
这个发现其实很有意思。它说明了一个道理:在像素空间里做简单的数值插值,看起来很直观,但对于一个依赖概率分布做生成的模型来说,这种插值根本不构成一个合法的概率分布。模型不知道该怎么从这种"四不像"的目标里学到东西,它只能本能地往"更合理"的方向去修正,而那个方向往往就是原图。
给每个像素一个"引力强度":统一重做分数
既然简单混合行不通,作者们换了个思路。他们不再直接在像素空间里做插值,而是回到扩散模型最底层的数学语言:分数函数(score function)。
分数函数*:扩散模型在采样过程中用来指引"去噪方向"的梯度信号,可以理解成模型在告诉当前这个带噪声的图,"往哪个方向走会更接近真实图片"。
论文的核心创新,叫做统一重做分数(Unified Redo Score,简称UR Score)。它的思路是:把"要不要保留原图"这件事,变成两股力量的拉扯。
一股力量来自参考图像本身,它像一根无形的绳子,把生成过程往原图的方向拽。另一股力量来自扩散模型自身训练出来的先验知识,它代表模型"自由发挥"的倾向。这两股力量的相对强弱,由一个叫γ(gamma)的参数控制,而γ又会随着时间步t和用户画的软蒙版r的值发生变化。
这里有个很巧妙的设计细节,值得多说两句。作者没有直接把γ设成固定值"1减去r",这正是前面提到的朴素混合会失败的根源。他们改用一个数学技巧:假设参考图像的每个像素,并不是一个精确固定的点,而是围绕这个点存在一团"高斯噪声云",云的方差用Σ(西格玛)表示。方差越大,说明允许这个像素偏离原图的空间越大,也就是"重做自由度"越高;方差趋近于0,就意味着像素被死死摁在原图的位置上不能动。
这个设计换个角度讲,其实很像是给每个像素系了一根弹簧,而不是一根铁链。
铁链只有两种状态,拴住或者松开,没有中间态,一旦拴住就完全动弹不得。而弹簧不一样,你可以调节弹簧的松紧程度(也就是方差Σ的大小),弹簧紧的时候,像素几乎被锁定在原位;弹簧松的时候,像素可以在一定范围内自由摆动,摆动幅度随机但有迹可循。如果继续用铁链的思路去设计软蒙版,你会发现铁链本身的物理属性决定了它要么拴死,要么彻底松脱,根本造不出"半拴着"的状态,这正是朴素混合卡死在二元逻辑里出不来的根本原因。而弹簧的张力是一个连续变量,这才让"半保留半重画"从数学上变得站得住脚。
论文还加入了一个超参数λ(拉姆达),类似于另一个著名技术无分类器引导(Classifier-Free Guidance)里的引导强度概念,用来让参考图像的"绳子"甚至可以拉得比正常情况更紧,从而在编辑强度较弱时进一步增强画面的连贯性和稳定性。
把这整套逻辑写成公式,最终得到的UR Score,就是把参考图像的分数和模型自身的分数,按γ和1-γ的权重做了个加权组合。这个组合不是简单的像素混合,而是发生在"分数"这个更底层、更抽象的空间里,所以它天然就是一个合法的概率密度梯度,不会出现朴素混合那种模糊重影的问题。
光有好的目标还不够:稳定的采样算法
有了UR Score,相当于告诉了模型"该往哪个方向走",但怎么走、走多快、会不会走飞,是另一个独立的问题。
论文里把这个采样过程类比成朗之万动力学(Langevin Dynamics)——一种在带噪声的环境里逐步靠近目标分布的随机游走方法。但直接照搬标准的欧拉离散化(一种最基础的数值积分方式)来模拟这个随机游走过程,会出现数值不稳定的问题,尤其是在引导强度较大的时候,容易"步子迈太大"而直接发散崩掉。
这就好比你开车时方向盘打得太猛,车身会发生剧烈摆动甚至失控打转。朗之万采样里的"步长"就相当于方向盘打的角度,如果每一步都按最朴素的方式去计算修正量,在信号很"陡"的地方(比如引导力特别强的时候),稍微走大一点步子,整个轨迹就可能剧烈震荡,根本收敛不到想要的目标分布上。如果不做任何阻尼处理,直接用大步长硬闯,实验里观察到的现象就是生成结果充满噪点和伪影,完全不可用。
为了解决这个问题,论文设计了一个叫扩散阻尼朗之万(Diffusion-Damped Langevin,简称DDL)的采样器。
它的做法是把原本可能"发飘"的漂移力拆成两部分:一部分是线性的阻尼项,专门用来"压住"容易失控的那部分力;剩下的残差部分再用一种叫指数积分器(exponential integrator)的数值方法来处理,这种方法有解析解,稳定性远胜普通的欧拉法。打个比方,这就像是给方向盘加装了电子辅助转向,在车速快、路况复杂的时候自动收着点力道,防止你一把打死方向盘导致侧翻,但正常情况下依然让你随心所欲地转向。
这套DDL机制还带来一个额外的好处:论文证明了即便步长调得很大,这个采样器依然能收敛到一个有界的稳态分布,不会无限发散。这意味着用户不需要为了稳妥起见,把每一步的调整幅度切得特别碎,从而大幅减少了需要的迭代次数。
除此之外,论文还设计了一个叫重做感知初始化(Redo-aware Initialization)的小技巧。简单说,对于那些γ值大于1、也就是被参考图像"绳子"拉得特别紧的像素,采样一开始就直接从加了噪声的原图版本出发,而不是从模型随机生成的起点出发。这不会改变最终收敛到的目标分布,纯粹是为了让收敛更快,少走弯路。这就好比你知道目的地大概在哪个方向,与其从随机位置出发慢慢摸索,不如先往那个大致方向迈出第一步,省掉不必要的来回折返。
跑分说话:和谁比,比出了什么
光讲原理不够,这篇论文做了相当扎实的实验对比。
对比的对象主要有两个。一个叫Differential Diffusion(简称DD),这是目前最接近的、同样支持训练免费(zero-shot)连续软蒙版的方法,但它在处理二元蒙版的极端情况下,本质上退化成了最原始的"硬替换"逻辑,这也限制了它在软蒙版场景下的表现上限。另一个是前面提到的朴素混合,用来验证"如果没有精心设计的分数融合机制,直接混合会多糟糕"。
图像编辑实验用的是FlowEdit基准数据集,底层模型用的是通义千问团队的Qwen-Image。视频编辑实验用的是DAVIS-Edit数据集,底层模型分别用了CogVideoX-5B和Wan2.2两款视频生成模型。
评测的关键指标里有个叫CLIP-Text的分数,用来衡量生成结果和目标文字描述的匹配程度,数值越高说明编辑意图实现得越彻底;还有LPIPS和PSNR,这两个是衡量图像质量和与原图相似度的常见指标,LPIPS越低、PSNR越高,代表画面质量越好、细节保留越完整。
实验结果显示,在图像编辑任务里,软蒙版强度r从0.1一路调到1.0时,SoftPaint对应的CLIP-Text分数呈现出近乎线性的平滑增长,这说明用户调整蒙版强度,确实能获得与之成比例的编辑效果。反观DD方法,在r较小的时候CLIP-Text几乎不怎么变化,变化迟钝;朴素混合更夸张,一直到r超过0.8才开始有明显反应,然后突然在r等于1时大幅跳变到35.4,这种"按兵不动突然爆发"的曲线形态,说明它根本没法提供真正意义上的平滑可控编辑。
在相同CLIP-Text分数(也就是编辑强度相同)的前提下对比画质,SoftPaint的LPIPS更低、PSNR更高,说明它在实现同等编辑效果的同时,对原图其他部分的破坏更小,细节保留更完整。
论文还做了个很公平的对照实验,叫等计算量对比(Equal-NFE comparison)。因为SoftPaint每一步要多跑几次内部朗之万迭代,整体计算量比DD要大。为了排除是单纯因为算力堆得多才赢的质疑,作者把DD的外层采样步数从20步拉到60步,让两者消耗的计算资源相当,结果SoftPaint依然在LPIPS和PSNR上占优。这个细节说明SoftPaint的优势确实来自方法本身的设计,而不是靠多算几遍蒙混过关。
在视频编辑的案例展示里,有一个"模型火车"变"木制火车"的例子特别直观。CogVideoX模型上,当r等于0.4时,SoftPaint只是悄悄改变了车头的材质纹理,整体轮廓结构纹丝不动;r等于0.8时,车身形状基本保留,但车厢已经明显呈现木质效果;r等于1.0才完全转变成一列全新的木头火车。这种循序渐进、由表及里的变化过程,正是软蒙版这个概念最初想要实现的东西。而DD方法在r等于0.8时火车头的结构就已经开始残缺不全,到r等于1.0时和周围背景区域出现了明显的拼接痕迹,看起来很不自然。
| 对比维度 | 朴素混合 | Differential Diffusion | SoftPaint |
|---|---|---|---|
| 编辑强度可控性 | 极差,r<0.8时几乎无变化 | 一般,低强度区间迟钝 | **最优,近乎线性平滑** |
| 等计算量下的画质(LPIPS) | 未参与有效对比 | 较高 | **更低** |
| 等计算量下的保真度(PSNR) | 未参与有效对比 | 较低 | **更高** |
| 是否需要训练/微调 | 否 | 否 | 否 |
| 是否需要梯度反传 | 否 | 否 | **否(显存更省)** |
值得一提的是,论文还专门做了一个二元蒙版下的消融实验,单独验证DDL采样器本身的贡献,而不涉及软蒙版的部分。在ImageNet数据集的标准图像修复任务上,对比了经典的RePaint方法(同样是一种迭代去噪重噪方案),结果DDL在方框遮挡和棋盘格遮挡两种场景下,LPIPS和FID(一种衡量生成图像整体分布真实感的指标,越低越好)都优于RePaint,证明这个采样器本身的改进,即便脱离软蒙版场景单独拿出来看,依然是有效的。
代价:速度换来的自由
SoftPaint的优点很明显,不需要训练、不需要为每个模型单独做适配、也不需要用梯度反传(这是很多训练免费方法的常见负担,会大幅拉高显存占用)。它对显存的需求和标准的前向推理一样,不会额外增加负担。
但它也有一个很实在的代价,速度。
因为每多做一次内部朗之万迭代,就要多跑一次完整的神经网络前向计算,这直接拉长了总体耗时。论文里给出的数据是,整体生成速度大约是普通采样的2到5倍慢。在Qwen-Image模型上的实测里,DD平均每张图10.2秒,而SoftPaint(内部迭代次数设为2)平均要29.4秒。
这个取舍某种程度上有点像你在导航软件里选择路线:一条是收费高速,快但要花钱;一条是普通国道,免费但绕远路、耗时更久。SoftPaint选择的是后一种逻辑,它不需要你额外投入训练成本(相当于不用交"过路费"),但要忍受更长的等待时间。对于需要实时交互、快速反馈的场景,这个延迟可能是个实打实的障碍;但对于不急于一时、追求效果优先的离线创作场景,这笔时间成本是可以接受的。
论文作者在结尾也坦诚承认了这一点,把它列为未来需要优化的方向,没有回避这个短板。
从研究脉络上看,这篇论文站在了两条路径的十字路口。一边是以RePaint(2022年)为代表的朗之万迭代类方法,它们擅长处理二元蒙版下的硬约束修复,但从没真正解决过连续软蒙版的问题;另一边是Differential Diffusion(2025年),它第一次把"每个像素自己的强度"这个概念引入训练免费的编辑流程,但受限于底层仍是硬替换逻辑,软蒙版下的表现力有限。SoftPaint相当于把这两条线索焊接到了一起:既保留了朗之万采样这种不依赖梯度、显存友好的优点,又通过重新设计目标分布,真正啃下了"连续强度可控"这块此前一直没能啃动的硬骨头。
再往后看,这类思路的自然延伸方向,可能是把软蒙版的"强度"概念,和更复杂的语义层面结合起来,比如让用户不只是画一个强度渐变图,还能指定"这个区域重做时要保留原来的光照方向"或者"那个区域重画时要保持同样的材质质感"。这已经超出了这篇论文本身的范畴,但顺着它开辟的这条路往前走,似乎是个值得期待的方向。
Q&A
Q1:SoftPaint是什么?
A:SoftPaint是一种训练免费、模型通用的AI图像和视频编辑方法,核心能力是支持连续渐变的软蒙版,让用户可以精确控制图片每个像素的重画强度,而不是只能选"完全保留"或"完全重画"两种极端。
Q2:SoftPaint和Differential Diffusion相比有什么优势?
A:在相同编辑强度下,SoftPaint的LPIPS更低、PSNR更高,说明画质更好、细节保留更完整;而且在编辑强度可控性上,SoftPaint随蒙版强度变化呈近乎线性增长,比DD在低强度区间更灵敏,也避免了朴素混合那种"按兵不动突然爆发"的失控曲线。
Q3:使用SoftPaint有什么代价?
A:主要代价是速度变慢,因为每一步要多做几次内部朗之万迭代,整体生成时间大约是普通采样的2到5倍,但好处是不需要额外训练、不依赖梯度反传,显存占用和普通推理一样,部署友好。






