Upscayl 批处理实战:一次放大整个文件夹
【免费下载链接】upscayl🆙 Upscayl - #1 Free and Open Source AI Image Upscaler for Linux, MacOS and Windows.项目地址: https://gitcode.com/GitHub_Trending/up/upscayl
周五下午,运营丢给你一个装满 200 张产品图的文件夹,要求周一前全部交付 4 倍分辨率版本。Upscayl 的批处理(batch upscayl)模式就是为这种场景设计的:整个文件夹一次性丢进去,统一模型、统一参数,跑完直接拿结果。
跑通第一次批量放大
最小步骤,4 步出活:
- 打开 Upscayl,在 Upscayl 标签页顶部勾选Batch Mode。
- 点Select Folder,选一个只放待处理图片的输入文件夹。
- 模型保持默认的
upscayl-standard-4x,点Output Path选好输出位置。 - 点Start,等进度条走完。
几分钟后,输出路径下多出一个子文件夹,命名规则是upscayl_输出格式_模型名_放大倍数,例如upscayl_png_upscayl-standard-4x_4x,里面就是全部放大后的图片。命名逻辑在 electron/commands/batch-upscayl.ts 里,你无法在界面上改它,只能记住这个规律去找结果。
机制上很简单:界面把你的参数组装成一条命令行,启动 Real-ESRGAN 的 NCNN(Neural Network Compression,神经网络压缩)推理子进程,逐张处理文件夹里的图片;Electron 主进程监听子进程日志,把进度转发到界面。
参数逐项拆解
批处理用到的参数和单张模式基本一致,真正影响批处理的有 6 个:
| 参数 | 作用 | 推荐值 | 可调范围 | 什么时候需要动它 |
|---|---|---|---|---|
| Scale(放大倍数) | 输出尺寸 = 原图 × N | 4 | 1/2/3/4 | 交付方指定了固定倍数时 |
| Save Image As(输出格式) | 结果文件格式 | png | png/jpg/jpeg/webp | 结果只上网页、要省空间时换 jpg |
| Compression(压缩率) | jpg 编码质量 | 0(无损) | 0–100 | 换 jpg 后文件过大时 |
| Tile Size(分片大小) | 单次推理的显存占用 | 留空(自动) | 0 = 自动,或固定像素值 | 显存溢出崩溃时手动调小 |
| TTA Mode(测试时增强) | 多次推理取平均提升画质 | 关 | 开/关 | 交付前最后精修小批量时 |
| GPU ID | 指定 Vulkan 设备编号 | 留空 | 如 0、1,或 0,1 | 双显卡机器默认走了集显时 |
两个容易踩的参数:默认 7 个内置模型全部只原生支持 x4,选 x1/x2/x3 时其实是先 4 倍放大再降采样得到;TTA 模式处理时间接近翻三倍,200 张的批次开它之前先掂量一下时间预算。
异常与边界
批任务中途被整体杀掉
现象:日志出现一行错误,进度条回零,整批任务停止。 定位:翻设置页的Log Area,找第一个Error或failed关键词;源码里的判定逻辑是把每一行日志和这两个词做字符串匹配,命中就终止进程(见 electron/commands/batch-upscayl.ts 的onData)。 修复:常见诱因是文件夹里混了不支持的格式或损坏文件。把坏图挑出去(支持格式只有 png/jpg/jpeg/webp),重新提交整个文件夹。
GPU 不工作或速度极慢
现象:任务在跑但慢得像 CPU 模式,日志里 Vulkan 设备列表里独显排不到前面。 定位:跑一张单图任务,在 Log Area 里看设备列表,确认独显对应的编号。 修复:把该编号填进设置页的 GPU ID 输入框,Windows 上还要在系统图形设置里把 Upscayl 设为高性能模式,否则该设置可能被系统覆盖。多填一个编号(如0,1)并不能均匀分载,别指望它提速。
输出文件夹"消失"了
现象:跑完在输出路径下找不到结果。 定位:结果不在你选的路径根部,而是自动拼接的子文件夹,命名 =upscayl_+ 格式 +_+ 模型名 +_+ 倍数。 修复:到输出路径下找upscayl_*前缀的目录;如果开了自定义宽度,结尾会是宽度px而不是Nx。
大文件夹跑不完
现象:几百张的批次后段变慢,个别机器显存不足直接崩溃。 定位:Log Area 里搜Resizing与内存相关报错,确认崩溃发生在哪张图附近。 修复:把 Tile Size 从自动改成更小值降低显存峰值,或把文件夹拆成两三批分别跑,每批控制在几十张内。
扩展与串联
自定义模型 + 批处理:内置模型风格固定,换成社区 NCNN 模型就能改变放大风格。在设置页Select Custom Models Folder指向一个放.bin+.param文件的models目录,Upscayl 标签页的模型选择器会自动列出它们,直接用于批次。模型转换方法见 docs/Model-Conversion-Guide.md。
批处理 + 元数据回写:摄影素材放大后 EXIF 信息会丢。在设置页打开Copy Metadata开关,批任务完成后程序会把每个输出文件的元数据从原图复制回来,对应实现在 electron/utils/copy-metadata.ts,日志里会逐条打印Metadata copied to。
命令行层的完整参数拼装看 electron/utils/get-arguments.ts 里的getBatchArguments:
// -i 输入目录 -o 输出目录 -s 倍数 -m 模型路径 -n 模型名 // -g GPU ID -f 格式 -w 自定义宽度 -c 压缩率 -t tile -x TTA const args = getBatchArguments({ inputDir, outputDir, model, scale, compression, tileSize, ttaMode, });能力边界
批处理模式一次只吃一个文件夹,文件夹内所有图片共用同一套模型和参数,不支持按子目录区分设置;输入格式仅限 png/jpg/jpeg/webp;点 Stop 是直接 kill 子进程,已完成的图片保留在输出目录,但没有断点续传,失败后需要修正原因再整批重跑。参数默认值、自定义模型与 GPU ID 的持续维护文档见 docs/Guide.md 和 docs/troubleshooting/general-fixes.mdx。
【免费下载链接】upscayl🆙 Upscayl - #1 Free and Open Source AI Image Upscaler for Linux, MacOS and Windows.项目地址: https://gitcode.com/GitHub_Trending/up/upscayl
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考