PiSA-SR:单步Diff超分新突破,即快又好,还能在线调参(2025,CVPR)
本文将对《Pixel-level and Semantic-level Adjustable Super-resolution: A Dual-LoRA Approach》这篇文章进行解读,这是一篇关于SR领域内的单步Diff技术方案,简称PiSA🍕,跟OSEDiff是同一个研究团队,性能和功能都会优于OSEDiff。参考资料如下:
参考资料如下:
[1]. PiSA论文地址
[2]. PiSA代码地址
专题介绍
现在是数字化时代,图像与视频早已成为信息传递的关键载体。超分辨率(super resolution,SR)技术能够突破数据源的信息瓶颈,挖掘并增强低分辨率图像与视频的潜能,重塑更高品质的视觉内容,是底层视觉的核心研究方向之一。并且SR技术已有几十年的发展历程,方案也从最早的邻域插值迭代至现今的深度学习SR,但无论是经典算法还是AI算法,都在视觉应用领域内发挥着重要作用。
本专题旨在跟进和解读超分辨率技术的发展趋势,为读者分享有价值的超分辨率方法,欢迎一起探讨交流。
系列文章如下:
【1】SR+Codec Benchmark
【2】OSEDiff
一、研究背景
在图像复原任务中,像素级保真度和语义级感知在一定程度上是相互矛盾的,很多研究致力于解决这种矛盾,但难度很大。有一种解决方式是提供可灵活调整效果的方案,即无需训练,动态调整模型推理结果,以适应不同应用和个人喜好。
前几年有人提出交互式的SR方法来控制恢复强度,通过制作不同程度的退化数据对(如噪声和模糊),配合控制向量(作为输入),从而训练出可调模型。修改控制向量,使得模型给出不同程度平滑或增强的输出,这类方案比较依赖于数据退化策略。
如今有一些基于stable diffusion(SD)的多步SR方法,在每个采样步骤使用特定的引导策略(如CFG,Classifier-free guidance)来调整不同级别的语义丰富度,但精确控制和效率方面有所不足。
该论文则提出了一种名为PiSA-SR的新型超分辨率框架,通过基于预训练SD模型的双LoRA设计,将像素级保真度与语义级增强目标解耦。具体而言:
双LoRA架构:分别使用L2损失优化像素级LoRA(消除噪声/模糊),结合LPIPS损失和分类器分数蒸馏(classifier score distillation,CSD)损失优化语义级LoRA(生成丰富细节)。
灵活调控:推理阶段通过调整像素级( λ p i x \lambda_{pix} λpix)和语义级( λ s e m \lambda_{sem} λsem)引导因子,用户可自定义输出风格(如保真优先或细节增强)。
高效性能:实验表明,PiSA-SR在合成与真实数据集上均优于现有方法(如StableSR、OSEDiff),且仅需单步扩散即可实现最优效果,参数量和推理时间显著降低。
先上效果,爱因斯坦靓照。直观看,的确实现了效果控制。
像素级增强:从下至上( λ p i x \lambda_{pix} λpix↑)逐步去噪,但顶部区域可能丢失细节。
语义级增强:从左至右( λ s e m \lambda_{sem} λsem↑)细节更丰富,但最右侧可能出现过增强(如爱因斯坦的面部纹理变得不太自然,皱纹、胡子等)。
这种灵活的调整能力也是该方案的最大亮点之一。对于主观评价来说,参数可调在实际应用中可太重要了!毕竟萝卜青菜各有所爱,重训或微调模型的成本太高。
该方案也是直接以LQ为输入的单步Diff SR,可以先了解一下OSEDiff,这篇可以算是OSEDiff的升级版,均由同一个研究团队发表。多步Diff、OSEDiff和PiSA-SR的框架区别如下。
二、方法细节
具体方案主要分为两个部分
- 建立SR的残差学习模型,引入双LoRA解耦像素级回归和语义级增强的学习目标
- 提出像素和语义引导,实现灵活的SR结果生成。
在图像复原领域内,很早就有人提出过残差学习的方案,用于降噪和超分。但Diffusion Model需要多步迭代,直接应用残差学习有难度。然而,单步Diff的提出,又使残差学习策略具有了可行性。残差学习的优势在于,
- 有助于模型从HQ特征中学习所需的高频信息。
- 加速模型训练过程的收敛,且学残差可降低优化复杂度。
论文中在潜空间做残差学习,其主要公式如下
z H = z L − λ ϵ θ ( z L ) z_H = z_L - \lambda \epsilon_{\theta}(z_L) zH=zL−λϵθ(zL)
训练时λ固定为1。推理阶段则可以基于用户喜好进行调整。下面讨论该如何围绕这个关键公式来实现最终目标。
2.1 目标解耦小妙招:双LoRA训练策略
上面提过,要保证像素级和语义级的双重复原是比较困难的(具有一定矛盾性)。有用双阶段训练方式,但会导致误差传递;也有用双独立模型训练,会增加计算负担。而作者提出了有别于这两种方式的新思路,用LoRA微调技术来实现像素目标和语义目标的解耦。
训练框架如上图,先训练上半部分,后训练下半部分(蓝框,PiSA LoRA)。
- 首先,构建一个VAE encoder + SD + VAE decoder的主网络架构,参数均冻结。
- 其次,在SD中引入两个可训练的LoRA模块。
- 接着,由于LQ图像受到噪声、模糊和下采样等退化的破坏,因此先训练**像素级LoRA(Pixel-level LoRA,红框部分) ** 以减少损坏的影响,其参数记为 Δ θ pix \Delta \theta_{\text{pix}} Δθpix,这部分输出则可表示为 z H pix = z L − ϵ θ pix ( z L ) z_H^{\text{pix}} = z_L - \epsilon_{\theta_{\text{pix}}}(z_L) zHpix=zL−ϵθpix(zL)。
- 然后,为了增强语义效果,进一步训练语义级LoRA(SemAntic-level LoRA,蓝框部分)。这里会将训练好的 Δ θ pix \Delta \theta_{\text{pix}} Δθpix先冻结,然后与SemAntic-level LoRA( Δ θ sem \Delta \theta_{\text{sem}} Δθsem)组合,成为PiSA LoRA,重点训练 Δ θ sem \Delta \theta_{\text{sem}} Δθsem,这确保了优化过程专注于语义细节,而不会受到 Δ θ pix \Delta \theta_{\text{pix}} Δθpix的太多干扰。其输出则表示为 z H sem = z L − ϵ θ PiSA ( z L ) z_H^{\text{sem}} = z_L - \epsilon_{\theta_{\text{PiSA}}}(z_L) zHsem=zL−ϵθPiSA(zL)。
所以,PiSA LoRA模块即具备像素级复原能力,又有语义级增强能力。推理阶段跑它就够了,那单独的Pixel-level LoRA有何用?后续再说。先来看下关键的损失函数。
2.2 像素和语义的双损失约束
其实从上面的流程图就可以看出,训练Pixel-level LoRA采用了L2 Loss(像素级约束),训练SemAntic-level LoRA采用LPIPS Loss + CSD Loss(语义级约束)。
作者展示了不同损失约束下的残差输出,如下图。可以看到L2损失的结果以降噪和边缘增强为主,但缺少语义基本的细节,看不出“鸟头”结构。
而LPIPS虽说可以将深层特征与预训练分类器VGG对齐来激活语义细节,但VGG能力也有限。于是采用了能力更强的SD模型,CSD损失约束,并构建隐分类器(也就是CFG的思路),CSD的梯度公式表征为
∇ ℓ C S D λ dfg = E t , ϵ , z t , c [ w t ( f ( z t , ϵ real ) − f ( z t , ϵ real λ cfg ) ) ∂ z H sem ∂ θ PiSA ] \nabla \ell_{CSD}^{\lambda_{\text{dfg}}} = \mathbb{E}_{t, \epsilon, z_t, c} \left[ w_t \left( f(z_t, \epsilon_{\text{real}}) - f(z_t, \epsilon_{\text{real}}^{\lambda_{\text{cfg}}}) \right) \frac{\partial z_H^{\text{sem}}}{\partial \theta_{\text{PiSA}}} \right] ∇ℓCSDλdfg=Et,ϵ,zt,c[wt(f(zt,ϵreal)−f(zt,ϵrealλcfg))∂θPiSA∂zHsem]
其中 ϵ real \epsilon_{\text{real}} ϵreal是预训练SD的预测结果, z t z_t zt是某一采样时间步长 t t t的的 z H z_H zH加噪结果, c c c是从 z H sem z_H^{\text{sem}} zHsem提取的本文prompt,作用于CFG中,而 f ( ) f() f()则是Diffusion去噪过程的函数表征, z ^ 0 = f ( z t , ϵ θ ) = z t − 1 − α ˉ t ϵ θ ( z t , x L , t ) α ˉ t \hat{z}_0 = f(z_t, \epsilon_{\theta}) = \frac{z_t - \sqrt{1 - \bar{\alpha}_t} \epsilon_{\theta}(z_t, x_L, t)}{\sqrt{\bar{\alpha}_t}} z^0=f(zt,ϵθ)=αˉtzt−1−αˉtϵθ(zt,xL,t)。 w t w_t wt是与时间步长相关的标量权重, ϵ real λ cfg \epsilon_{\text{real}}^{\lambda_{\text{cfg}}} ϵrealλcfg是带有CFG的预训练SD输出结果,其具体表征如下
ϵ real λ cfg = ϵ real ( z t , t ) + λ cfg ( ϵ real ( z t , t , c ) − ϵ real ( z t , t ) ) ⏟ ϵ real cls ( z t , t , c ) \epsilon_{\text{real}}^{\lambda_{\text{cfg}}} = \epsilon_{\text{real}}(z_t, t) + \underbrace{\lambda_{\text{cfg}} \left( \epsilon_{\text{real}}(z_t, t, c) - \epsilon_{\text{real}}(z_t, t) \right)}_{\epsilon_{\text{real}}^{\text{cls}}(z_t, t, c)} ϵrealλcfg=ϵreal(zt,t)+ϵrealcls(zt,t,c) λcfg(ϵreal(zt,t,c)−ϵreal(zt,t))
其实模型是与与 ϵ real \epsilon_{\text{real}} ϵreal一样,只不过一个不带分类分数,一个带。如果把其中一个模型设置成可调, λ cfg \lambda_{\text{cfg}} λcfg参数设置成0,就成了OSEDIff中的VSD。与OSEDiff中的VSD一样,作用在潜空间中。但不同的是,CSD不需要双模型约束,减少了训练资源和迭代时间。上图对比中也可以看出,VSD损失弱化了语义细节,CSD Loss对语义增强的贡献更为显著。因此该论文最终采用了CSD损失。
2.3 可调参的推理方案
损失介绍完了,继续回到上一个问题,单独的Pixel-level LoRA有何用?这就牵引了出该论文另一个特色,可调参的设计,其实也不复杂, 看图便可明了。
PiSA的推理过程分为两个模式,Default和Adjustable。
Default模式——
数据流为实线+绿色虚线组合。LQ经VAE编码器后,仅用PiSA-LoRA+预训练SD一起处理,通过单步Diff预测残差。并与输入相减,再经解码器得到SR结果。
Adjustable模式——
数据流为实线+黑色虚线组合。LQ经VAE编码器后,分别做两次推理,1)Pixel-level LoRA+SD;2)PiSA-LoRA+SD。然后设定两个控制系数, λ p i x λ_{pix} λpix和 λ s e m λ_{sem} λsem,将两次推理的结果加权相加。后续处理与Default一致。当然,由于θPiSA同时包含语义细节和像素退化,为了更精确的控制,需要对推理结果先做差 ϵ θ PiSA − ϵ θ pix \epsilon_{\theta_{\text{PiSA}}} - \epsilon_{\theta_{\text{pix}}} ϵθPiSA−ϵθpix,分离出像素退化。至此,使用者就可以通过控制这两个参数来灵活调整最终的SR效果了。代价嘛就是多一次生成模型的推理耗时。
三、实验论证
实验设置基本与OSEDiff一致。
3.1 🔬可调效果的实验分析
固定一个引导因子(λpix或λsem=1),调整另一个因子,观察输出变化。
评估指标:
像素级因子( λ p i x λ_{pix} λpix)影响:
- 增大 λ p i x λ_{pix} λpix可有效消除噪声和压缩伪影,但过度增强(如 λ p i x λ_{pix} λpix>0.8)会导致细节过度平滑(PSNR先升后降,峰值为0.5,LPIPS最佳值在 λ p i x λ_{pix} λpix=0.8)。
- 无参考指标(CLIPIQA/MUSIQ)持续提升,因边缘增强更符合人类视觉偏好。
语义级因子( λ s e m λ_{sem} λsem)影响:
- 增大 λ s e m λ_{sem} λsem显著丰富语义细节(如皱纹、毛发),但过高(如 λ s e m λ_{sem} λsem>1.2)会引入伪影(PSNR持续下降,LPIPS峰值在 λ s e m λ_{sem} λsem=0.8)。
- 无参考指标上限高于像素级调整,但需平衡保真度与细节真实性。
用户评价
- 用户研究显示,98%参与者认可增大 λ s e m λ_{sem} λsem(1.2 vs 0.6)能提升语义细节,验证了调控机制的有效性。
3.2 🔬与其他方法对比实验
在多项指标上全面领先,视觉效果上也具备了更丰富自然的细节纹理。
单步推理时间仅0.09秒(A100 GPU),总参数为1.3B。推理速度上,PiSA-SR-def会比OSEDiff还要快,主要是因为没有了text prompt提取过程。不过PiSA-SR-adj模式需要两个扩散步骤来分别计算像素级输出和语义级输出,因此推理耗时会有所增加。
补充材料中与GAN-based方法对比,也展现出了效果优势。以及相比于OSEDiff在纹理结构方面的效果提升,还是比较明显的。
3.3 🔬消融实验
双LoRA有效性——
仅用像素级LoRA(V1)导致感知细节不足;仅用语义级LoRA(V2)降低保真度。双LoRA联合优化能够较好地平衡两者。但从指标上看整体仍更偏向语义级增强多一些。
LoRA秩大小的影响——
通过对两个LoRA的秩大小的测试,发现这俩训练任务确实存在矛盾,单一提高某LoRA任务的秩,会对该项任务有提升,但会损害另一个LoRA任务的效果。
CFG跟语义引导策略的差异——
单步方案里增加CFG大小,无法改善无参考指标,甚至会降低全参考指标。论文所提出的语义引导则可以有效控制复原图像的语义信息强弱。
输入时间步分析——
时间步越大,模型降噪能力越强,生成效果更明显,因此语义相关指标会有提升,但保真度降低。为了尽量保留LQ的原始特征,因此时间步选择了1。
四、总结和思考
PiSA-SR通过双LoRA模块和残差学习的创新思路实现了高质量且可控效果的单步Diff超分,有效平衡了像素级回归和感知质量。可根据用户喜好进行能力调整,具有不错的实用价值。后续可能会探索针对不同图像退化的细化LoRA空间和图像自适应尺度因子的可能性。也就是未来模型能在可调的范围内,默认先出个效果最佳的。
其实该方案的残差设计和可调参设计的并不复杂,很多地方能看到类似思路,关键还是在于如何解耦并权衡像素特征和语义特征的复原。
感谢阅读,欢迎留言或私信,一起探讨和交流。
如果对你有帮助的话,也希望可以给博主点一个关注,感谢。