Real-ESRGAN:用于图像放大 本地
Real-ESRGAN是一个开源模型(BSD-3-Clause许可),可将图像放大至4倍,并重建看似合理的细节。最简单的方案是无需CUDA或PyTorch的便携式可执行文件ncnn-vulkan,适用于Intel、AMD或NVIDIA显卡。根据图像类型选择模型:realesrgan-x4plus适用于照片,anime变体适用于插画。该项目自2022年9月以来未再发布新版本,且添加的细节是虚构的:绝不要用于文字图像或证据。
Real-ESRGAN 通过重建看似合理的细节来放大图像,而不是拉伸像素。它是一个开源、小巧且快速的模型,已成为本地图像生成流程末端常用的模块,也可用于修复老照片。本指南更新至 2026 年 9 月 28 日,说明应选择哪个模型、如何在不安装 PyTorch 的情况下运行、它会凭空生成哪些内容、可能出现哪些错误,以及面对近期替代方案时该项目目前处于什么状态。
#AI图像放大工具的功能
传统的图像放大采用插值:根据相邻像素计算中间像素,得到更大、也更模糊的图像。基于机器学习的图像放大工具则采用另一种方法。它经过训练,能够从质量退化的版本中恢复清晰图像,并重建最像原图的纹理、边缘和颗粒感。两者的区别可以用一句话概括:插值不会创造信息,而模型会编造信息。这正是我们要求它做的事,因此必须知道哪些场合不该使用它。
Real-ESRGAN 源自 Xintao Wang、Liangbin Xie、Chao Dong 和 Ying Shan(腾讯 ARC 实验室)的一篇论文,该论文于 2021 年 7 月提交至 arXiv,并在 ICCV Workshops 上介绍,标题为《Training Real-World Blind Super-Resolution with Pure Synthetic Data》。论文摘要描述了其思路:模型仅使用合成数据训练,通过“高阶”退化建模更好地模拟真实缺陷(模糊、噪声、压缩),并使用 U-Net 判别器。“Blind”表示模型无需知道图像经历了哪种退化。该代码仓库获得了超过 36,000 个星标。
#有哪些模型,该选哪一个
在本地无限制地生成 AI 图像与视频:在你的 GPU 或 Mac 上使用 ComfyUI、Flux、Z-Image、Wan 2.2——提供可直接加载的工作流,并介绍相关法律框架。
- 在线空间,终身可用
- PDF + 文件
- 终身更新
| 模型 | 放大倍数 | 项目描述 | 适用于 |
|---|---|---|---|
| RealESRGAN_x4plus | ×4 | 用于通用图像的 4 倍放大模型 | 照片、生成图像:默认选择 |
| RealESRGAN_x2plus | ×2 | 用于一般图像的 2 倍放大模型 | 当 ×4 放大倍数过高时使用,无需再调整图像尺寸 |
| RealESRNet_x4plus | ×4 | 模型 ×4,带 MSE 损失和过度平滑效应 | 很少使用:效果过于平滑、显得平淡 |
| realesr-general-x4v3 | ×4,支持 ×1、×2、×3 模式 | 小模型,占用的 GPU 显存和耗时都少得多,去噪能力较弱 | 配置较低的设备、批量图像处理;-dn 选项用于调节去噪 |
| RealESRGAN_x4plus_anime_6B | ×4 | 针对动漫图像优化,网络规模更小(6 个 RRDB 块) | 插图、图纸、2D 绘画 |
| realesr-animevideov3 | ×4,支持 ×1、×2、×3 模式 | 用于动画视频的 XS 小型模型 | 动画序列 |
该项目的模型目录将照片模型与插画模型分开,而这一选择对结果的影响最大。项目介绍称,anime 变体针对这类图像进行了优化,采用更小的网络,并将其与 waifu2x 作比较。处理绘画图像时,请优先尝试这一变体:照片模型可能会给本应保持平滑的纯色区域添加纹理,需要在您的图像上检查实际效果。
#三种启动方式
README 介绍了三种方式:在线演示、便携式 ncnn 可执行文件和 Python 脚本。对于日常本地使用,只有后两种方式值得考虑。
| 路径 | 所需条件 | 优势 | 限制 |
|---|---|---|---|
| 便携式可执行文件(ncnn-vulkan) | 需要一块兼容 Vulkan 的 Intel、AMD 或 NVIDIA GPU。提供适用于 Windows、Linux 和 macOS 的压缩包。无需 CUDA,也无需 PyTorch。 | 无需安装,模型已内置 | 不支持 Python 脚本中的所有功能,如 --outscale,可能导致不同区块之间出现不一致 |
| Python 脚本 (inference_realesrgan.py) | Python 3.7或更高版本,PyTorch 1.7或更高版本,basicsr,facexlib和gfpgan(用于人脸处理) | 任意缩放比例、人脸处理、分块处理,以及带 alpha 通道的图像、灰度图像或 16 位图像 | 依赖项容易出问题,参见故障排除 |
#具体命令
便携版可执行文件通过命令行使用。帮助文本列出了各项选项:-i 指定输入(文件或文件夹),-o 指定输出,-s 指定缩放倍数(2、3 或 4),-n 指定模型,-t 指定图块大小,-g 选择 GPU,-f 指定输出格式。
Python 脚本提供了 --outscale 选项:模型始终进行 ×4 的放大,然后程序以低成本的重采样方式将结果缩放到所需尺寸。此外还有 --tile 选项用于分割图像以节省内存,以及 --fp32 选项用于全精度,该选项在处理器上成为必需(详见下文)
在 ComfyUI 中,放大模型存放于 ComfyUI/models/upscale_models 目录下,通过加载节点,再接基于模型的放大节点来应用。如果需要桌面界面,README 列出了多个集成 Real-ESRGAN 的项目,其中包括 Upscayl:这是一款适用于 Linux、macOS 和 Windows 的自由软件,拥有约 50,000 颗星,并在最近几天进行了更新。
#正确使用
- 01根据图像类型选择模型照片还是插图:这一设置对结果的影响最大,远大于放大倍数。请始终在命令中添加 -n。
- 02不要连续进行多次放大处理连续进行两次 ×4 放大会产生塑料感,而不会增加细节。用合适的倍率处理一次即可;如果 ×4 太大,请选择 ×2 模型或使用缩放选项。
- 03放大前先清理轻量级预处理去噪可避免模型将噪声误认为需要重建的细节。使用 realesr-general-x4v3 时,-dn 参数可调节去噪强度,以防止输出过于平滑。
- 04仅对真实人脸使用face_enhanceface_enhance选项基于GFPGAN,仅适用于真实人脸:项目FAQ建议不要将其用于动画,否则会浪费GPU内存。
- 05在 100% 缩放比例下比较放大效果应逐像素查看,不能只看缩略图。许多在小尺寸下看起来很出色的结果,近看却显得平滑而不自然。
#目标图像尺寸怎么选:运行前先算一算
放大 ×4 仅在最终尺寸用于特定用途时才有意义。根据简单计算,所需倍率如下:像素 = 厘米 ÷ 2.54 × 每英寸点数,然后倍率 = 目标长边 ÷ 原始长边。
| 用途 | 目标长边长度 | 所需放大倍数 |
|---|---|---|
| 4K全屏显示 | 3840 像素 | ×3.75:进行一次 ×4 放大即可 |
| 300 ppi A4 打印 | 3508像素 | ×3.4:一次运行×4,或使用--outscale 3.4 |
| A3幅面,300 dpi打印 | 4961 像素 | ×4.8:超过单次 ×4 放大的范围;宁可接受稍小一些的印刷尺寸,也不要连续放大两次 |
| 网页或缩略图 | 1600至2000像素 | ×1.6 至 ×2:使用 ×2 模型或 --outscale 即可 |
记住这个原则:选择实际需要的尺寸,而不是最大尺寸。一张 1 024 × 1 024 的图像放大 4 倍后会变成 4 096 × 4 096,约有 1 680 万像素,是原来像素数量的十六倍:需要存储、加载和修图的文件也随之变大,但在屏幕上往往看不出效果提升。使用 Python 脚本的 --outscale 选项,可以选择确切的缩放比例,而无需先过度放大再缩小。
#在图像生成流程中
在本地生成图像时,图像放大工具用于最后一步:先以显卡支持的分辨率生成,再进行放大,这比直接生成大尺寸图像消耗的内存更少。图像模型的原生尺寸,例如 SD 1.5 的 512 × 512 或 SDXL 的 1024 × 1024,在 Stable Diffusion 指南中有详细介绍。随后,将一张 1024 × 1024 的 SDXL 图像放大 ×2,即可得到 2048 × 2048 的图像,无需再次经过扩散模型。
#它凭空补出的内容
- 文本
- 放大后的小字体会变成看似合理却错误的字符。对于文档而言,应使用光学字符识别(OCR),而非放大功能。
- 人脸
- 模糊的人脸放大后会变得清晰,但与原本那个人的面貌并不完全一致。任何身份识别用途都不可接受。
- 精细细节
- 布料图案、枝叶、头发:模型生成的是看起来可信的纹理,而不是原始纹理。
- 缺陷
- 明显的压缩伪影有时反而会被一丝不苟地放大,而不是被消除。
#故障排除:常见错误
| 问题表现 | 原因 | 修复措施 |
|---|---|---|
| 错误“slow_conv2d_cpu not implemented for Half” | Real-ESRGAN 默认使用半精度(fp16),但某些算子在 CPU 上不支持这种精度 | 在命令行中添加 --fp32 选项 |
| ModuleNotFoundError : torchvision.transforms.functional_tensor | basicsr 导入了一个自 torchvision 0.17 版本起被移除的模块(2024 年 8 月 28 日的报告;BasicSR 仓库的一项合并请求提出了修复方案) | 安装兼容的torchvision版本,或使用不依赖torchvision的便携式ncnn可执行文件 |
| 图像中出现明显的块状区域或拼接痕迹 | 可执行文件将图像分割为图像块再进行拼接,README中已指出这可能引发不一致性 | 通过 -t 参数设置瓦片大小(0 表示自动):在内存允许的情况下,较大的瓦片会减少接缝 |
| 输出为黑色图像 | ncnn仓库的待办事项指出,部分PC会生成黑色图像 | 尝试另一种方案(Python 或 ncnn),或用 -g 参数指定另一张显卡进行测试 |
| 插图中人物面部变形 | 非照片类内容启用了 face_enhance 选项 | 移除它:它是为真实人脸设计的 |
#2026年项目进展如何?
必须如实说明它已有些年头。最新发布的版本 v0.3.0 发布于 2022 年 9 月 20 日;主仓库的最后一次提交是在 2024 年 4 月 2 日,内容是删除一个持续集成配置文件。ncnn 实现的 README 注明采用 MIT 许可证,该实现自 2024 年 5 月以来没有更新。这并不意味着模型不好:它能完成自己的任务,体积小,也能在配置不高的显卡上运行。但不能指望会有补丁来修复近期出现的兼容性问题,例如与 torchvision 的不兼容。
至于替代方案,ComfyUI 的 README 将 SeedVR2 和 SUPIR 列为受支持的模型。SeedVR2 将自身定位为通过扩散模型的对抗式后训练实现的一步视频修复方案,而 SUPIR 则面向真实场景图像的照片级逼真修复。这些方法都基于扩散模型:我们没有它们与 Real-ESRGAN 之间可靠的量化对比,而且它们产生虚构细节的风险至少同样高。在商业使用前,请阅读 SUPIR 的许可证,GitHub 将其归类为“Other”。对于大多数日常照片和插图,Real-ESRGAN 仍能在易用性、速度和硬件需求之间提供良好的平衡。
#FAQ
Real-ESRGAN免费吗?+
需要显卡吗?+
可以放大扫描的文本吗?+
为什么我的插画放大后会出现颗粒感?+
能否用于视频处理?+
Real-ESRGAN 还在维护吗?+
有反馈、发现了错误,或想补充说明?请告诉我们,让这份指南对每个人都更有帮助。