
SUPIR:面向真实场景的照片级图像修复与放大模型|部署与使用全指南
项目仓库: https://github.com/Fanghua-Yu/SUPIR
论文:CVPR 2024,arXiv:2401.13627 · 维护方:深圳先进院 / 上海 AI Lab 等 · 语言:Python · 框架:PyTorch · 形态:命令行 + Gradio · 在线产品:SupPixel AI
1 项目简介
SUPIR 是 CVPR 2024 论文《Scaling Up to Excellence: Practicing Model Scaling for Photo-Realistic Image Restoration In the Wild》的官方实现。它把 SDXL 扩散模型与 LLaVA 多模态大模型结合,做照片级真实感的图像修复与放大,对真实世界的模糊、压缩、退化照片有较强修复能力。
提供两种权重:SUPIR-v0Q(默认,高泛化、高质量)与
SUPIR-v0F(轻退化场景,保留更多细节)。
1.1 核心信息一览
| 项目项 | 内容 |
|---|---|
| 项目名称 | SUPIR |
| 仓库地址 | github.com/Fanghua-Yu/SUPIR |
| 项目定位 | 照片级真实感图像修复与放大 |
| 论文 | arXiv:2401.13627(CVPR 2024) |
| 项目主页 | supir.xpixel.group |
| 在线产品 | SupPixel AI |
| 依赖模型 | SDXL base 1.0、LLaVA v1.5 13B、CLIP 编码器 |
| 形态 | 命令行 + Gradio Web |
1.2 适用场景
- 老照片、低清照片做高质量放大与修复。
- 摄影后期、数字艺术的高细节还原。
- 研究扩散模型在图像修复上的 scaling 效果。
1.3 能力边界(官方口径)
- 依赖 SDXL + LLaVA 13B,显存需求高(官方给 12G Diffusion + 16G LLaVA 的低配版)。
- 提供低显存模式:
--loading_half_params --use_tile_vae --load_8bit_llava。
2 功能特性
- 两种权重:v0Q(默认高泛化)、v0F(轻退化高保真)。
- Gradio Web:可视化交互,支持图片滑块对比。
- 可调超参:
s_stage2、s_cfg、s_noise、edm_steps等控制保真度与视觉质量。 - 配色修复:Wavelet / AdaIn / None 三种颜色校正。
- 低显存模式:半精度参数、tile VAE、8-bit LLaVA。
- 加速采样:Juggernaut Lightning 4 步蒸馏模型可选。
3 官方界面预览
在线产品:SupPixel AI。
4 官方跳转链接汇总
| 类别 | 链接 | 说明 |
|---|---|---|
| 仓库 | github.com/Fanghua-Yu/SUPIR | 源码 |
| 项目主页 | supir.xpixel.group | 论文与示例 |
| 在线产品 | SupPixel AI | 官方商业产品 |
| 论文 | arXiv:2401.13627 | CVPR 2024 |
5 前置要求与服务器配置
5.1 软件前提
- Python 3.8(conda 环境)。
- PyTorch(CUDA)。
- 下载多个依赖模型:SDXL base、LLaVA 1.5 13B、CLIP 编码器。
5.2 硬件建议
| 模式 | 显存 |
|---|---|
| 标准 | 24 GB 以上(双 80G 官方示例) |
| 低显存 | 12G Diffusion + 16G LLaVA(开启
--loading_half_params --use_tile_vae --load_8bit_llava) |
6 方式一:源码安装与命令行推理
git clone https://github.com/Fanghua-Yu/SUPIR.git
cd SUPIR
conda create -n SUPIR python=3.8 -y
conda activate SUPIR
pip install --upgrade pip
pip install -r requirements.txt下载权重(官方提供百度网盘 / Google Drive):
SUPIR-v0Q:默认高泛化高质量。SUPIR-v0F:轻退化场景保留更多细节。
在 CKPT_PTH.py 与 options/SUPIR_v0.yaml
中配置各模型路径;能连 Hugging Face 时可将 CLIP 路径设为
None,自动下载。
6.1 命令行推理
# 高质量默认(v0Q)
CUDA_VISIBLE_DEVICES=0,1 python test.py \
--img_dir /path/to/LQ \
--save_dir ./results-Q \
--SUPIR_sign Q --upscale 2
# 轻退化高保真(v0F)
CUDA_VISIBLE_DEVICES=0,1 python test.py \
--img_dir /path/to/LQ \
--save_dir ./results-F \
--SUPIR_sign F --upscale 26.2 Gradio Web
CUDA_VISIBLE_DEVICES=0,1 python gradio_demo.py \
--ip 0.0.0.0 --port 6688 --use_image_slider --log_history
# 加速采样(Juggernaut 4 步蒸馏)
CUDA_VISIBLE_DEVICES=0,1 python gradio_demo.py \
--ip 0.0.0.0 --port 6688 --use_image_slider --log_history \
--opt options/SUPIR_v0_Juggernautv9_lightning.yaml
# 低显存
CUDA_VISIBLE_DEVICES=0,1 python gradio_demo.py \
--ip 0.0.0.0 --port 6688 --use_image_slider --log_history \
--loading_half_params --use_tile_vae --load_8bit_llava7 关键参数
| 参数 | 默认 | 说明 |
|---|---|---|
--upscale |
1 | 上采样倍数 |
--SUPIR_sign |
Q | Q / F |
--edm_steps |
50 | EDM 采样步数 |
--s_stage1 |
-1 | Stage1 控制强度(负=无效) |
--s_cfg |
4.0 | CFG 系数 |
--s_stage2 |
1.0 | Stage2 强度(1.0 高保真;0.93 高视觉质量) |
--color_fix_type |
Wavelet | 颜色校正:None / AdaIn / Wavelet |
--ae_dtype |
bf16 | AutoEncoder 精度 |
--diff_dtype |
fp16 | Diffusion 精度 |
8 常用运维命令
nvidia-smi
ls -lh results-Q/9 常见故障排查
- 显存不足:加
--loading_half_params --use_tile_vae --load_8bit_llava。 - 过度"美化"丢细节:用 v0F 或降低
s_stage2。 - 颜色偏色:切换
--color_fix_type AdaIn或None。
10 风险与合规说明
- 模型权重遵循仓库 LICENSE;商用前需核对 SDXL 与 LLaVA 各自许可。
- 照片修复涉及肖像权,只能处理本人或已授权素材。
- SupPixel AI 是官方商业产品,开源自部署不提供 SLA。
本文基于官方 README 整理,仅供学习与部署参考;以仓库最新说明为准。