ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

QualityScaler:3 步在本地完成图像视频 AI 画质增强

QualityScaler:3 步在本地完成图像视频 AI 画质增强

QualityScaler:3 步在本地完成图像视频 AI 画质增强

【免费下载链接】QualityScalerQualityScaler - image/video AI upscaler app项目地址: https://gitcode.com/GitHub_Trending/qu/QualityScaler

抽屉里翻出一张 2003 年的合影,人脸已经糊成一团。QualityScaler 是一款本地 AI 画质增强工具,它在你自己的电脑上把图像和视频做超分辨率重建和降噪,全程不经过网络。

能力速览:它吃什么、不做什么

它支持的输入类型比较宽,界面是 Windows 桌面 GUI:

  • 图像:jpg、jpeg、png、webp、bmp、tif、tiff、heic
  • 视频:mp4、webm、mkv、flv、gif、m4v、avi、mov、qt、3gp、mpg、vob
  • 输出:图像可选 .png / .jpg / .bmp / .tiff,视频可选 .mp4 / .mkv / .avi / .mov
  • 不做的事:不做音频重采样(音轨原样搬运),不做直播实时推流增强,也不是跨平台应用——它是 Windows 程序

AI 模型分两组。放大类:LVAx2、RealESR_Gx4、RealESR_Ax4、BSRGANx2、BSRGANx4、RealESRGANx4、MSharpx4;降噪类:IRCNN_Mx1、IRCNN_Lx1(1 倍输出,只做去噪)。每个模型在代码里都标了显存占用,从 0.75GB 到 4GB 不等。

跑起来:三个命令

环境要求一行说清:Windows 10/11,8GB 内存以上,4GB 显存的 DirectX 12 显卡。

git clone https://gitcode.com/GitHub_Trending/qu/QualityScaler

装依赖:

pip install -r requirements.txt

启动(完整部署步骤见 README):

python QualityScaler.py

启动前有两件事必须做:把 AI 模型文件解到 AI-onnx/ 目录(仓库里目前只有一个占位说明文件,模型本身要自行下载,链接在 README 里);把 ffmpeg.exe 放进 Assets/,视频抽帧和合成就靠它。exiftool.exe 仓库里已自带,负责把原文件的 EXIF 元数据搬到成品上。

老照片修复:选文件、点 UPSCALE

你要解决什么:一张 480p 的扫描老照片,人脸模糊、有色斑。

你点哪里:主界面左侧点 SELECT FILES,把照片拖进来。右侧选项里挑模型——照片这种要"脑补细节"的场景,RealESRGANx4 或 BSRGANx4 更合适;输入分辨率留 100%,让 AI 吃到最多信息。然后点 UPSCALE。

你会看到什么:程序把图切块、逐块推理、再拼回整图,成品落在与源文件相同的目录下,文件名里带上模型名和后缀。放大看人脸区域,皱纹和发丝这类细部比原片清晰,色斑被压下去了。如果结果看起来"过塑化",把 AI blending 从 OFF 调到 Low 或 Medium,它会把原图和增强图按比例混合,细节和真实感之间找平衡。

视频提清晰度:模型、编码、断点续跑

你要解决什么:一段 720p 的手机录像,想提到 4K 归档。

你调什么参数:模型选 LVAx2 或 RealESR_Gx4 这类偏视频的权重;输出分辨率留 100% 就是 AI 原生输出,想控制体积就调低;编码按需选,有 NVIDIA 卡就挑 h264_nvenc / hevc_nvenc,硬件编码比 x264 快不少。显存富裕的话,把 AI multithreading 从 OFF 提到 4 threads,同时推多帧。

你会看到什么:进度条上显示剩余时间,成品 .mp4 保留原音轨,元数据从源文件复制过来。长视频跑到一半有事要关机?界面上有 STOP 和 RESUME,任务可以暂停再续,不必从头再来。

显存不够:切片机制和输入缩放

你要解决什么:4GB 显存的核显本,要处理一张 5000 万像素的照片,直接推理会爆显存。

你调什么:输入分辨率填 50% 甚至 25%,AI 在低分辨率上工作后再放大回去,速度成倍提升;GPU 选 Auto 让它自己找 DirectML 可用设备。

你会看到什么:代码会自动按显存大小算出 tile 边长,把图切成小块逐块过模型再拼回。配合 AI blending 用,低输入分辨率下的拼接痕迹会被原图"兜住",观感比硬切干净得多。这也是为什么界面把 blending 说明和 tiling 绑在一起讲。

它凭什么快:ONNX 直连显卡

把整个流程想成裱画:AI 模型不是逐个像素硬算,而是看你在 AI-onnx/ 目录里放好的"裱框样板"(fp16 的 .onnx 文件),照着整块整块地"裱"出高清版;onnxruntime-directml 则像一台贴着显卡的裱画台,推理结果直接落在显存里,不走 CPU 绕路。这也是它只认 DirectX 12 显卡的原因——AMD、Intel、NVIDIA 的核显独显都能接这台裱画台,多显卡机器里还能手动指认 GPU 1 到 GPU 4。

技术栈就这几样(按 requirements.txt 列的):

  • onnxruntime-directml:模型推理,DirectX 12 加速
  • OpenCV(opencv-python-headless):图像视频读写、缩放、tile 拼接
  • Pillow:图像编解码
  • customtkinter:整个图形界面
  • natsort / psutil:文件排序、进程降优先级(FFMPEG 抽帧时压到 idle,避免卡系统)

整个后端前端就是一个 QualityScaler.py,三千多行 Python,没有隐藏的编译依赖。

踩坑与排错

症状:视频处理失败或报错,抽帧一步就挂。 最可能原因:Assets/ 里没有 ffmpeg.exe,程序按固定路径找它。 解法:拿一个 release 版 ffmpeg,把 ffmpeg.exe 放进 Assets/ 目录,路径就是Assets/ffmpeg.exe,别放子目录。

症状:启动即报模型加载错误。 最可能原因:AI-onnx/ 目录是空的,仓库只放了个下载说明,模型要自己下。 解法:按 README 里的模型链接下载 fp16 版 .onnx 文件,解到 AI-onnx/,文件名要像RealESRGANx4_fp16.onnx这样带后缀,程序按模型名拼路径。

症状:大图处理极慢,或中途卡死。 最可能原因:模型和图都大,单块推理超过显存余量。 解法:输入分辨率降到 50% 以下,或换显存占用小的 BSRGANx4(约 0.75GB);程序会自动按显存调 tile 大小,不用手动切图。

症状:增强结果"假",皮肤发蜡、纹理发糊。 最可能原因:blending 处于 OFF,成品 100% 来自模型输出。 解法:AI blending 调 Low 或 Medium,和原图混合;低输入分辨率(<50%)时这个选项收益最大。

去哪找更多

  • README.md:部署步骤、模型下载、版本路线图
  • AI-onnx/:模型文件放置目录
  • Assets/:ffmpeg.exe 与 exiftool.exe 所在目录
  • QualityScaler.py:全部源码,GUI、推理、视频流水线都在这一个文件里
  • LICENSE:开源许可

【免费下载链接】QualityScalerQualityScaler - image/video AI upscaler app项目地址: https://gitcode.com/GitHub_Trending/qu/QualityScaler

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进