Skip to content

Repository files navigation

RealESRGAN-Enhanced

基于 Real-ESRGAN 的纯 PyTorch 图像/视频超分辨率增强工具。
支持多种格式、GPU 加速、多线程流水线、色彩优化,一键输出 Windows 兼容的 H.264 视频。

Python 3.8+ PyTorch License Python 3.8+ PyTorch License

CUDA OpenCV FFmpeg HEIC RAW HDR

功能亮点

  • 纯 PyTorch 推理 – 无需 basicsr,兼容 Python 3.13
  • 多格式支持 – 图像:HEIC / RAW (CR2, NEF, ARW 等) / JPG / PNG
    视频:MP4 / AVI / MOV / MKV 等
  • 视频 HDR/Log 处理 – 内置 PQ/Log 色调映射,避免发灰
  • GPU 加速与多线程流水线 – 半精度 (FP16) 推理 + CPU 读/写线程,GPU 利用率 >95%
  • 画质增强 – 锐化、CLAHE 色彩优化,提升暗部细节与对比度
  • 实时进度条 – 分块处理与视频均带 ETA 进度
  • 自动编码修复 – 内置 FFmpeg 转码,输出标准 H.264 MP4,Windows 直接播放
  • 模型自动下载 – 首次使用自动获取预训练权重
  • 跨平台 – Windows / Linux / macOS 均可运行

环境要求

  • Python 3.8 或更高版本
  • NVIDIA GPU(推荐,CPU 也可运行)
  • CUDA Toolkit(若使用 GPU,驱动版本需 ≥ 11.8)

安装

1. 克隆项目

git clone https://github.com/yourusername/RealESRGAN-Enhanced.git
cd RealESRGAN-Enhanced
# 基础库
pip install opencv-python pillow numpy

# GPU 版 PyTorch(CUDA 12.4 示例)
pip uninstall torch torchvision torchaudio -y
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu124

# 可选格式支持
pip install pillow-heif rawpy
3. 安装 FFmpeg(推荐)
下载 FFmpeg Windows 版

解压后将 bin 文件夹路径加入系统环境变量 PATH

4. (可选)下载 OpenH264 DLL
若希望使用 avc1 编码器,下载 openh264-2.5.0-win64.dll.bz2,解压后放入项目根目录。

 快速上手
图像超分辨率
bash
# 默认使用通用照片模型 (photo)
python enhance.py -i input.jpg -o result.png

# 处理 iPhone 照片 (HEIC)
python enhance.py -i photo.HEIC -o result.jpg --model photo

# 相机 RAW 文件
python enhance.py -i DSC001.ARW -o result.png --model photo

# 启用锐化与色彩增强
python enhance.py -i input.jpg -o result.png --sharpen 1.5 --clahe

# 半精度加速 (GPU)
python enhance.py -i input.jpg -o result.png --half
视频超分辨率
bash
# 基础视频处理
python enhance.py -i input.mp4 -o output.mp4 --mode video

# 完整加速 + 画质优化 (推荐)
python enhance.py -i input.mp4 -o output.mp4 --mode video --half --clahe --sharpen 1.5

# HDR/Log 视频(自动拉伸暗部)
python enhance.py -i log_video.mov -o output.mp4 --mode video --hdr_mode auto

# 指定帧率
python enhance.py -i input.mp4 -o output.mp4 --mode video --fps 30
 参数说明
参数	说明	默认值
-i, --input	输入文件路径(图像或视频)	必填
-o, --output	输出文件路径	output.png
--mode	image 或 video	image
--model	模型选择:photo / anime / general	photo
--tile	分块大小(0=不分块)	400
--sharpen	锐化强度(推荐 1.5~2.0)	0.0
--half	启用 FP16 半精度推理	关闭
--clahe	启用 CLAHE 色彩增强	关闭
--codec	视频编码器:mp4v / avc1 / XVID 等	mp4v
--fps	输出视频帧率	原始帧率
--hdr_mode	视频 HDR/Log 处理:off / auto / pq / log	off
若未安装 FFmpeg,脚本会尝试直接输出,但推荐配合 FFmpeg 获得最佳兼容性。

 迭代历程
本项目从最初简单的图像超分脚本,逐步演变为全功能多媒体增强工具,主要里程碑:

纯 PyTorch 重写:摆脱 basicsr 依赖,自实现 RRDB 网络

多格式支持:集成 HEIC、RAW 读取,添加视频处理

加速进化:CPU → GPU → 多线程 CPU/GPU 流水线,GPU 利用率从 70% 提升至 95%+

画质优化:锐化、CLAHE、FP16 推理

兼容性攻坚:解决 Windows 播放问题,引入 FFmpeg 自动转码

体验升级:ETA 进度条、彩色终端提示、自动模型下载

 性能对比
方法	720p 单帧耗时 (GPU)	视频帧率 (fps)	GPU 利用率
原始 CPU 推理	~120s	0.008	0%
GPU 推理 (单线程)	~0.8s	1.2	~70%
GPU + 多线程流水线	~0.7s	1.4	~95%
测试环境:NVIDIA RTX 5070Ti 12GB,PyTorch 2.5.1,CUDA 12.4,720p 视频

 常见问题
Q: 视频输出无法在 Windows 播放?
A: 安装 FFmpeg 并加入 PATH,脚本会自动生成 H.264 编码的 MP4。或使用 VLC 播放器。

Q: 提示 Missing key(s) in state_dict?
A: 本项目已使用 ModuleList 适配官方权重,请确保使用最新版 enhance.py。

Q: 如何处理 4K 或更高分辨率视频?
A: 减小 --tile 值(如 256)或使用 --half 降低显存占用。

Q: 可以使用 general 模型吗?
A: 当前 general 模型权重结构略有差异,推荐使用 photo 或 anime 模型,效果同样出色。

Q: 下载gpu加速的pytorch过慢怎么办?
A: 可以尝试在清华源或者用迅雷加速器重新下载。

Q: 想直接查看输出的视频但又不想下载FFmpeg怎么办?
A: 实测可以在用微信传输助手再编码(有压缩画质的风险)。

🙏 致谢
Real-ESRGAN – 本项目核心模型

OpenCV – 图像/视频处理

FFmpeg – 视频编码

pillow-heif – HEIC 支持

rawpy – RAW 支持

⭐ 如果本项目对您有帮助,欢迎 Star!

About

A pure PyTorch super‑resolution tool using Real‑ESRGAN. Supports images (HEIC/RAW) and videos (HDR/Log), with real‑time progress, multi‑threaded GPU acceleration, and auto H.264 output for Windows.全能超分工具:支持多种格式(HEIC/RAW/JPG/PNG)、视频(HDR/Log), 具备进度条、ETA、色彩优化,已实现 CPU→GPU→多线程流水线加速迭代, 彻底解决 Windows 播放兼容问题,一键生成 H.264 视频。

Resources

Stars

6 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages