港科大SoftPaint:用软蒙版让AI改图只动你划的那块
你有没有遇到过这种情况:用AI改图,明明只想让照片里那个人的笑容再灿烂一点点,结果AI给你整个脸都换了个人。或者你想让天空多一点晚霞的味道,结果云的形状、山的轮廓全跟着变了。这不是你用得不对。这是现在大部分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上仍然占优。这说明优势来自方法设计本身,不是靠多算几遍换来的。
视频编辑的案例里,“模型火车”变“木制火车”这个例子很能说明问题。在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都更好。FID衡量生成图像整体分布的真实感,越低越好。这说明采样器本身的改进,就算脱离软蒙版单独看,也是有效的。
代价:速度换来的自由
SoftPaint的长处很明确:不用训练,不用给每个模型单独适配,也不靠梯度反传。梯度反传是很多训练免费方法绕不开的负担,显存占用会被大幅拉高。SoftPaint对显存的要求和标准前向推理一样,不会额外加码。
不过它有一个很实在的代价:速度。
每多做一次内部朗之万迭代,就要多跑一次完整的神经网络前向计算,总耗时自然被拉长。论文给出的数据是,整体生成速度大约比普通采样慢2到5倍。在Qwen-Image模型上的实测中,DD平均每张图10.2秒,SoftPaint把内部迭代次数设为2,平均要29.4秒。
这个取舍有点像在导航软件里选路线:收费高速快,但要花钱;普通国道免费,却绕远、耗时间。SoftPaint走的是后一种逻辑,不用额外投入训练成本,相当于不交“过路费”,代价是等得更久。需要实时交互、快速反馈的场景,这个延迟是实打实的障碍;不赶时间、效果优先的离线创作场景,这笔时间成本则可以接受。
论文作者在结尾也直说了这一点,把它列进未来需要优化的方向,没有回避这个短板。
从研究脉络看,这篇论文站在两条路径的交叉口。一边是以RePaint(2022年)为代表的朗之万迭代类方法,擅长处理二元蒙版下的硬约束修复,但连续软蒙版的问题一直没真正解决;另一边是Differential Diffusion(2025年),它第一次把“每个像素自己的强度”带进训练免费的编辑流程,可底层仍是硬替换逻辑,软蒙版下的表现力有限。SoftPaint把这两条线索接在一起:既保住了朗之万采样不依赖梯度、显存友好的优点,又通过重新设计目标分布,把“连续强度可控”这块一直没啃动的硬骨头啃了下来。
再往前看,这类思路自然延伸出去,可能是把软蒙版的“强度”和更复杂的语义层面结合,比如让用户不只画一张强度渐变图,还能指定“这个区域重做时保留原来的光照方向”,或者“那个区域重画时保持同样的材质质感”。这已经超出这篇论文的范围,但顺着它开的路走,似乎是个值得期待的方向。
Q&A
Q1:SoftPaint是什么?
SoftPaint 这套 AI 图像与视频编辑方法不需要额外训练,也不挑模型,换哪个都能用。它最核心的一点,是支持连续渐变的软蒙版:每个像素要重画到什么程度,用户都能精细调节,不必再在“完全保留”和“完全重画”这两个极端里二选一。
Q2:SoftPaint和Differential Diffusion相比有什么优势?
问:同样编辑强度下,SoftPaint 与 Differential Diffusion 相比优势在哪?答:SoftPaint 的 LPIPS 更低、PSNR 更高,画质更细腻,细节保留也更完整。蒙版强度变化时,它的编辑强度接近线性增长,可控性更好;DD 在低强度区间更迟钝。朴素混合那条“按兵不动、突然爆发”的失控曲线,SoftPaint 也避开了。
问:用 SoftPaint 要付出什么代价?
答:速度会慢下来。每一步都要多做几次内部朗之万迭代,整体生成时间约是普通采样的 2 到 5 倍。换来的是不用额外训练,也不依赖梯度反传,显存占用与普通推理持平,部署起来省事。