Real-ESRGAN:真实世界盲超分辨率增强
Real-ESRGAN:真实世界盲超分辨率增强实战
Real-ESRGAN 是一款开源的人工智能图像增强工具,专门针对真实世界中各类退化图像进行超分辨率重建。与仅处理简单双三次下采样的传统模型不同,它会模拟拍摄噪声、模糊、压缩伪影等多种退化,因此能显著提升老旧照片、网络图片、动漫画面的清晰度和细节。
本教程面向零基础用户,将手把手带你完成环境配置、模型下载、图片/视频增强及常见问题解决。
快速上手:Windows 一键整合包
如果你追求开箱即用,推荐使用社区整合的可执行版本,无需配置 Python 环境。
下载与安装
- 访问 Real-ESRGAN 官方 GitHub ,在 Releases 页面找到最新的
Real-ESRGAN-GUI或便携版压缩包。 - 下载带
realesrgan-ncnn-vulkan字样的 7z 文件,解压到无中文路径的文件夹。 - 双击
realesrgan-ncnn-vulkan.exe即可启动图形界面。
界面操作流程
- 输入路径:选择单张图片或包含多张图片的文件夹。
- 输出路径:指定增强后图像的保存位置。
- 模型选择:
realesrgan-x4plus:通用照片放大 4 倍。realesrgan-x4plus-anime:专为动漫/二次元图像优化。realesrgan-x4plus-animevideo:动画视频增强模型。realesr-animevideov3:最新动画视频模型,去噪和细节更好。
- 设置 TTA 模式:勾选后可略微提升画面稳定度,但处理时间加倍,建议酌情开启。
- 点击 开始处理,等待进度条完成即可。
硬件与环境配置进阶:Python 命令行方式
对于需要批量化、自定义模型或更高灵活性的用户,可使用 Python 环境直接调用。
安装 Python 与 PyTorch
- 确保系统已安装 Python 3.8 及以上版本。
- 打开终端(CMD / PowerShell),安装 PyTorch。根据你的显卡情况选择:
- NVIDIA 显卡(CUDA 支持):
pip install torch torchvision --index-url https://download.pytorch.org/whl/cu121 - 仅 CPU / AMD 显卡(Mac 也适用):
pip install torch torchvision
- NVIDIA 显卡(CUDA 支持):
克隆仓库并安装依赖
git clone https://github.com/xinntao/Real-ESRGAN.git
cd Real-ESRGAN
pip install basicsr
pip install facexlib
pip install gfpgan
pip install -r requirements.txt
python setup.py develop
下载预训练模型
官方模型会自动下载,但部分网络环境可能失败。可手动下载 .pth 文件放入 experiments/pretrained_models 文件夹。
- 通用模型
RealESRGAN_x4plus.pth - 动漫模型
RealESRGAN_x4plus_anime_6B.pth从 GitHub Releases 页面 获取。
单张图像增强命令实战
打开终端,切换到 Real-ESRGAN 目录。
基础 4 倍放大
python inference_realesrgan.py -n RealESRGAN_x4plus -i 输入图片.jpg -o 输出.png
-n指定模型名(不含.pth后缀)-i输入路径,支持相对/绝对路径-o输出路径,可指定.png或.jpg
自定义放大倍数
模型默认放大 4 倍,可通过 --outscale 调整,但需注意:
python inference_realesrgan.py -n RealESRGAN_x4plus -i input.jpg -o output.png --outscale 2
输出尺寸 = 原图尺寸 × 4 ÷ 2,即仅缩小不重新超分,推荐保持 4 倍输出后再用图像处理软件缩放到所需尺寸。
面部增强(配合 GFPGAN)
Real-ESRGAN 可与人脸复原模型 GFPGAN 联合使用:
python inference_realesrgan.py -n RealESRGAN_x4plus -i photo.jpg --face_enhance
确保已安装 gfpgan 包,模型会自动下载。面部增强会先用 GFPGAN 修复脸部,再用 Real-ESRGAN 整体超分,非常适合人物照片。
处理网络压缩图片(去 JPEG 伪影)
添加 --denoise_strength 参数:
python inference_realesrgan.py -n RealESRGAN_x4plus -i compressed.jpg --denoise_strength 0.5
数值范围 0~1,越高去噪越强,但可能丢失细节,默认 0.5 比较平衡。
视频增强:逐帧处理与合成
视频增强本质是对每一帧图像进行超分,然后重新合成视频。推荐使用 FFmpeg 辅助。
准备 FFmpeg
- Windows 从 gyan.dev 下载 full 版本,将
ffmpeg.exe所在目录加入环境变量。 - Linux/macOS 使用包管理器安装:
sudo apt install ffmpeg或brew install ffmpeg。
处理流程
- 用 FFmpeg 将视频拆分为帧:
ffmpeg -i input.mp4 -q:v 1 output_frames/frame_%05d.png - 使用 Real-ESRGAN 批量处理:
python inference_realesrgan.py -n realesr-animevideov3 -i output_frames -o enhanced_frames --outscale 4 - 将增强后的帧合成为视频:
ffmpeg -r 30 -i enhanced_frames/frame_%05d.png -i input.mp4 -map 0:v -map 1:a -c:v libx264 -pix_fmt yuv420p final_output.mp4-r 30需与原始视频帧率一致。-map 1:a保留原始音频轨道。
注意事项
- 视频处理非常消耗计算资源,推荐使用 NVIDIA 显卡并确保安装了 CUDA 版本 PyTorch。
- 处理长视频时,帧图像会占用大量磁盘空间,请确保有充足空间。
模型选型与效果调优
模型场景对应表
| 模型名称 | 适用场景 | 特点 |
|---|---|---|
| RealESRGAN_x4plus | 真实照片、风景、数码摄影 | 通用性最强,平衡细节与降噪 |
| RealESRGAN_x4plus_anime_6B | 动漫插画、漫画、二次元壁纸 | 线条锐利,颜色纯净 |
| realesr-animevideov3 | 动画视频(非真实场景) | 去闪烁,保持帧间一致性 |
| RealESRGAN_x4plus_animevideo | 旧版动画视频增强 | 速度快但细节略逊于 v3 |
| realesr-general-x4v3 | 轻度压缩的通用图像 | 体积小,兼顾速度和质量 |
TTA(测试时增强)
开启 TTA 会在推理时对图像进行多种翻转组合并取平均,能减少噪点和锯齿,代价是时间翻倍。适合重要图片处理,执行时加 --tta 即可。
显存不足解决方案
- 将超分任务切割为小块(tile):默认自动启用,可通过
--tile参数调整块大小,例如--tile 256。值越小显存占用越低,但速度变慢。 - 关闭面部增强功能以降低计算需求。
- 使用半精度推理(FP16)可在支持设备上节省显存,命令中添加
--fp16。
常见问题排查
1. CUDA out of memory
解决方法:减小 tile 尺寸(如 128),关闭 TTA,或者使用 CPU 模式(添加 --device cpu,速度极慢)。
2. 输出图片出现网格状或奇怪纹理
可能原因:模型与图像类型不匹配。例如用通用模型处理二次元图片;或去噪强度设置不当。尝试更换专用模型,并检查 denoise_strength 参数。
3. 面部增强后人脸变形
GFPGAN 的权重可能过于激进,可尝试单独使用 Real-ESRGAN,或使用 --bg_upsampler 参数指定背景放大模型。
4. 命令行提示 ModuleNotFoundError: No module named 'basicsr'
确保已正确执行 python setup.py develop,该步骤会将 Real-ESRGAN 安装为可编辑包。
总结
Real-ESRGAN 为真实世界图像增强提供了极为实用的解决方案。对于新手,一键 GUI 包即可满足日常需求;而 Python 命令行则赋予你完全的控制力,适用于批处理、视频增强等进阶场景。掌握模型选择与参数调节,你便能轻松让模糊老照片、低分辨率动漫重新焕发生机。