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