Real-ESRGAN 深度学习 4× AI 超分
Real-ESRGAN 是什么
Real-ESRGAN(Real-World Enhanced Super-Resolution Generative Adversarial Networks)是腾讯 PCG 团队开源的图像超分辨率模型家族,在 Anime4K、waifu2x-Extension-GUI 等工具里广泛使用。它的特点是:
- 真实世界泛化好:不是只训练合成退化(bicubic + noise),而是训练真实摄影场景(相机传感器噪声、压缩伪影、传感器模糊);
- 通用性强:通用模型可以处理人像、风景、文档、艺术画等;动漫模型对卡通画风优化;
- 4× 放大:一次推理就从 256×256 变 1024×1024,边缘干净自然。
ZenConverter 的集成方式
| 组件 | 实现 |
|---|---|
| 推理框架 | Tencent NCNN |
| GPU 加速 | Vulkan |
| 模型 | Real-ESRGAN 4× 系列 |
| 分块策略 | 瓦片式(tile-based)分块推理 |
v0.1.9 引入 Real-ESRGAN(ONNX Runtime 推理),v0.2.2 换成了 NCNN Vulkan(速度更快、体积更小、移动端兼容性更好),v0.2.1 优化了瓦片式分块和 OOM 防护。
两个可选模型
| 模型 | 大小 | 适用场景 |
|---|---|---|
| realesr-general-x4v3(轻量极速) | 4.65 MB | 通用图片,速度优先,细节保留稍少 |
| RealESRGAN_x4plus(高画质) | 63.9 MB | 通用图片,画质优先,细节更丰富 |
两个模型都需要从 GitHub Releases 按需下载,下载后用 SHA-256 校验。校验不通过就不会加载——这是为了防止模型文件被替换或损坏。
除了这两个,仓库 README 还提到可能的动漫模型(anime model),但当前 v0.2.4 版本主要暴露这两个。
瓦片式分块推理
直接把一张大图(比如 4096×4096)喂给 Real-ESRGAN 会爆显存。ZenConverter 用瓦片式分块:
- 把原图按 tile size(比如 256×256)切成若干小块;
- 每块独立推理(推理时 tile 会自动放大 4×);
- 放大后的小块拼回完整的大图,tile 接缝处有 overlap 区域做平滑过渡,不会出现明显的"拼缝"。
这套机制在 v0.2.1 版本里做了优化:动态线程数、内存池、全图优化、tile 尺寸放大,大幅降低了大图 OOM 的风险。
UHD 自适应下采样
某些设备(比如骁龙 8 Gen 2、天玑 9200)的 GPU 推理 4K+ 图片的显存压力特别大。ZenConverter 在 RIFE 视频补帧上做了 UHD 自适应下采样——图片超分虽然不走同一条管线,但共享同一套"检测设备能力 + 动态调整 tile size"的策略。
GPU 优先,CPU fallback
NCNN 在 Android 上的优先级是:Vulkan GPU → OpenCL GPU(如果支持) → CPU。ZenConverter 优先走 Vulkan GPU 加速,但如果设备不支持 Vulkan 或驱动有问题,会自动 fallback 到 CPU 推理(速度慢很多,但功能可用)。
AI 超分不保留透明通道
Real-ESRGAN 模型只处理 RGB 三通道,不处理 alpha。所以:
- PNG 或 WEBP 输入如果有透明区域,AI 超分会把透明区域当作白色(或某种底色)来处理;
- AI 超分开启时,输出会强制 Original 100 质量(因为 AI 超分已经做了重建,再压就糊了);
- 透明区域会丢失——如果你需要透明通道,别用 AI 超分,用双线性插值路线。
使用流程
- 选图片 → 选超分选项 → 选 Real-ESRGAN 路线 → 选模型;
- 如果模型还没下载,点下载 → 等下载 + SHA-256 校验 → 加载;
- 选输出格式(JPG/PNG/WEBP/ICO);
- 开始 → 等推理(耗时取决于图片尺寸 + 模型选择 + 设备 GPU 性能)。
已知边界
- arm64 only:AI 超分路线依赖 NCNN Vulkan arm64 原生库,32 位 ARM 设备不走这条;
- GPU 驱动差异:某些老旧或小众的 Vulkan 驱动可能导致 NCNN 初始化失败(会明确报错);
- 超大图耗时长:4096×4096 的图 + 高画质模型 + CPU fallback → 可能跑几十分钟;
- 不是万能的:Real-ESRGAN 对真实摄影效果好,但对某些艺术风格(油画、像素画)可能过度锐化,效果反而不如双线性插值。
相关页面
- 双线性插值超分 —— 两条超分路线的对比
- 动态像素预算与 OOM 防护 —— AI 超分如何避免 OOM
- RIFE 2× 视频补帧 —— 同一条 NCNN Vulkan 管线在视频上的应用
