RepLDM
无需训练的SDXL扩散模型重编程,实现8K级超分辨率图像生成
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
无需训练的SDXL扩散模型重编程,实现8K级超分辨率图像生成
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
你是否曾为这样的场景头疼过——好不容易用 Stable Diffusion XL 生成了满意的构图,却发现图片分辨率只有 512×512,放大后糊成一片?传统的超分辨率放大方法往往会在放大后的图像中引入明显的伪影和模糊,尤其是 AI 生成图像本身就带有独特的"AI 味"噪声,放大后更加明显。而市面上的 SDXL 超分辨率模型要么需要额外训练、要么需要专门的硬件支持。
来自复旦大学的研究团队带来了一个优雅的解决方案——RepLDM(Reprogramming Latent Diffusion Models),一种无需任何额外训练的预训练模型重编程方法,能够直接利用 SDXL 的生成能力实现高质量、高效率的超分辨率图像生成,在 NeurIPS 2025 中斩获 Spotlight 论文。
图1:RepLDM 生成的 8K 超分辨率图像示例,支持前所未有的图像尺寸
RepLDM 的核心思想是将预训练的 SDXL 视为一个"知识库",通过两阶段机制在不改变模型权重的前提下,让模型"适应"高分辨率输出:
第一阶段:训练分辨率下的质量控制
在标准生成分辨率(1024×1024)下,RepLDM 引入了核心创新——注意力引导机制(Attention Guidance)。传统的扩散模型在生成高分辨率图像时,不同分辨率下的注意力图会出现不一致,导致细节丢失。RepLDM 通过引导注意力图保持一致性,确保在标准分辨率下生成高质量图像。
图2:RepLDM 两阶段处理流程
第二阶段:像素空间超分辨率
第一阶段生成的高质量图像通过像素上采样(如 BICUBIC)放大到目标分辨率,然后送入一个特殊的"去噪循环"——这个循环利用 SDXL 的去噪能力,对上采样后的图像进行细节修复和纹理增强,最终得到自然的高分辨率图像。
注意力引导是 RepLDM 的灵魂所在。它通过操控扩散模型的 Query-Key 注意力矩阵,实现对生成图像的精细控制:
attn = softmax(Q @ K.T / sqrt(d)) # 标准注意力计算
latents_ = attn @ V # 重构的 latents
关键参数包括:
图3:注意力引导消融实验,展示不同引导强度对生成质量的影响
RepLDM 的一大亮点是与 ControlNet 的完美兼容性。ControlNet 通过额外条件控制图像生成结构,RepLDM 可以直接作用于 ControlNet 的输出,实现结构引导下的超分辨率生成。例如在深度图引导下,模型可以保持原始结构同时提升分辨率。
图4:RepLDM 与 ControlNet 结合,保持深度图结构的同时提升分辨率
项目代码组织清晰,核心模块为 AttentionGuidance/:
attention_guidance.py(272行):实现了 AttnGuidance 类,包含完整的注意力引导逻辑、频域滤波、功率校准等功能InferencePipelines/RepLDM/SDXL/:基于 diffusers 库封装了完整的 SDXL RepLDM pipelineInferencePipelines/FreeScale/:同时支持 FreeScale 方法(另一无训练超分辨率方法)依赖生态方面,代码基于 diffusers~=0.21.4 和 torch~=2.1.0,同时引入 einops、omegaconf、accelerate 等工具库,体现了现代深度学习项目的标准工程实践。代码中多处使用 @torch.no_grad() 装饰器确保推理效率,参数设计灵活可扩展。
环境要求:Python 3.9+,推荐使用 conda 创建独立环境,依赖包括 PyTorch、diffusers、transformers、accelerate 等核心库。Gradio 界面已规划但尚未完成(TODO状态),目前需通过 Python 脚本调用 pipeline。
GPU 需求:生成 2048×2048 级别图像建议 16GB+ 显存(RTX 3090/4090),SDXL 基础模型本身就对显存要求较高。
安装方式:conda create -n repldm python=3.9 && conda activate repldm && pip install -e .
整体而言,RepLDM 作为 NeurIPS 2025 Spotlight 论文的开源实现,在无需训练的条件下达到了令人印象深刻的高分辨率生成效果,值得 AI 研究者和开发者深入关注。
图5:不同引导强度对图像细节丰富度的影响分析