GPEN推理结果保存在哪?默认输出路径说明
你刚跑完GPEN人像修复,图片修得挺满意,但一回头——咦?修好的图去哪儿了?找不到输出文件,心里直打鼓:是没生成成功?还是被自动删了?别急,这其实是新手最常遇到的“路径迷路”问题。今天我们就把GPEN镜像里推理结果到底存哪、怎么找、怎么改这件事,掰开揉碎讲清楚。不绕弯子,不堆术语,只说你真正需要知道的实操细节。
1. 默认输出路径:就在你眼皮底下
GPEN推理脚本inference_gpen.py的设计非常直接——它不会把结果藏到深层目录里,也不会自动建新文件夹。所有修复完成的图片,默认就生成在你当前运行命令所在的项目根目录下,也就是/root/GPEN/这个位置。
也就是说,只要你是在/root/GPEN目录下执行的命令,那输出图就一定在这里,一眼就能看到。
1.1 三种常见调用方式对应的输出位置与文件名
| 调用方式 | 命令示例 | 输出路径 | 输出文件名 | 说明 |
|---|---|---|---|---|
| 不带参数(默认测试) | python inference_gpen.py | /root/GPEN/ | output_Solvay_conference_1927.png | 使用内置测试图,固定命名,方便快速验证环境是否正常 |
| 指定输入图(无输出名) | python inference_gpen.py --input ./my_photo.jpg | /root/GPEN/ | output_my_photo.jpg | 自动在原图名前加output_,后缀保持不变,安全不覆盖原图 |
| 显式指定输出名 | python inference_gpen.py -i test.jpg -o custom_name.png | /root/GPEN/ | custom_name.png | 完全由你控制,路径和名字都按-o参数走,最灵活 |
关键提醒:这里的“路径”都是相对路径。
--input ./my_photo.jpg中的./表示“当前目录”,所以它实际读取的是/root/GPEN/my_photo.jpg;同理,-o custom_name.png也默认写入当前目录。如果你在别的路径下运行命令,比如/home/user/,那脚本会尝试从那里读图、往那里写图——但此时/root/GPEN下的模型权重和配置可能就加载失败了。所以务必先cd /root/GPEN再运行,这是稳定输出的前提。
1.2 为什么你可能“看不见”输出图?
不是没生成,而是你没看对地方。我们来排除几个高频盲区:
确认你确实在
/root/GPEN目录下
运行pwd看一眼,输出必须是/root/GPEN。如果不是,请先执行cd /root/GPEN。检查文件是否真的生成了
别光靠眼睛扫,用命令确认:
ls -lh output_*.png output_*.jpg或者列出所有新生成的图片(按修改时间倒序):
ls -lt *.png *.jpg | head -5注意文件后缀是否匹配
GPEN默认输出 PNG 格式(无损、保细节),即使你输入的是 JPG,输出也通常是 PNG。别只搜.jpg。终端没报错 ≠ 图片已生成
如果命令执行很快、一闪而过,但ls没看到图,大概率是路径或权限问题。这时看终端最后一行输出——正常流程末尾会打印类似:Saved result to: output_my_photo.jpg
如果没这句,说明中途出错了(比如找不到输入图、CUDA内存不足等)。
2. 如何自定义输出位置?两种可靠方法
默认路径够用,但实际工作中你往往需要把结果存到指定文件夹,比如/data/results/或/workspace/output/。GPEN本身不提供--output-dir这种高级参数,但我们有更稳妥的两种方案:
2.1 方法一:用-o参数直接写绝对路径(推荐)
这是最简单、最不容易出错的方式。你不需要改代码,只要在命令里把-o后面的文件名写成完整路径就行。
# 把结果存到 /data/results/ 文件夹下(需提前创建) mkdir -p /data/results python inference_gpen.py -i ./my_photo.jpg -o /data/results/enhanced_portrait.png优点:一行命令搞定,不依赖当前工作目录,路径清晰可追溯。
注意:确保目标目录有写入权限(/data/results通常没问题,但/root/xxx可能受限)。
2.2 方法二:临时切换工作目录(适合批量处理)
如果你要一次修复几十张图,并统一存到某个文件夹,可以先cd进去,再运行脚本:
# 创建并进入输出目录 mkdir -p /workspace/batch_output cd /workspace/batch_output # 此时当前目录是 /workspace/batch_output # 但GPEN代码还在 /root/GPEN,所以要用绝对路径调用 /root/GPEN/inference_gpen.py -i /workspace/input/photo1.jpg -o photo1_enhanced.png /root/GPEN/inference_gpen.py -i /workspace/input/photo2.jpg -o photo2_enhanced.png优点:输出文件集中管理,适合脚本化批量处理。
注意:-i输入路径必须写全(因为脚本不在当前目录),否则会报“找不到输入图”。
3. 输出文件长什么样?质量与格式说明
GPEN修复后的图片不是简单“磨皮”,而是基于GAN先验的端到端重建,因此输出效果有明确特征,帮你一眼识别是否成功:
3.1 格式与分辨率
- 默认格式:PNG(支持透明通道,无压缩失真)
- 分辨率:与输入图完全一致。例如输入是
800x600,输出也是800x600;输入是4K,输出就是4K。GPEN本身不做超分,它专注“修复”而非“放大”。 - 色彩空间:RGB,sRGB标准,可直接用于网页、PPT、印刷初稿。
3.2 视觉质量判断要点(小白也能看懂)
别被“AI修复”吓住,用这三点快速验货:
皮肤质感是否自然?
成功修复:毛孔、细纹、光影过渡柔和,没有塑料感或蜡像感。
失败表现:整块皮肤发亮、模糊一片、或出现奇怪色斑(通常是人脸对齐失败导致)。五官结构是否准确?
成功修复:眼睛大小比例协调、鼻梁线条连贯、嘴唇边缘清晰不毛边。
失败表现:一只眼大一只眼小、鼻子歪斜、嘴角扭曲(多因输入图侧脸角度过大或遮挡严重)。背景是否被误伤?
GPEN是人像专用模型,理想情况下只处理人脸区域。
成功修复:背景原样保留,无涂抹、无模糊、无颜色偏移。
失败表现:背景出现水波纹、局部变色、或人物边缘有白边(说明人脸分割mask不够准)。
小技巧:把原图和输出图并排打开,用系统自带的“画图”或“预览”软件,按住
Alt键快速切换两张图,差异一目了然。
4. 高级问题:如何让每次输出都自动进指定文件夹?
如果你每天都要跑十几轮测试,反复敲-o /data/results/xxx.png很麻烦。这时候,我们可以给脚本加点“小聪明”,不用改核心代码,只需一个轻量封装:
4.1 创建自己的快捷脚本(30秒搞定)
在/root/GPEN/下新建一个文件run_gpen.sh:
#!/bin/bash # run_gpen.sh —— 你的GPEN一键修复脚本 OUTPUT_DIR="/data/results" mkdir -p "$OUTPUT_DIR" if [ $# -eq 0 ]; then echo "用法: $0 <输入图片路径>" exit 1 fi INPUT_FILE="$1" BASENAME=$(basename "$INPUT_FILE") EXTENSION="${BASENAME##*.}" FILENAME="${BASENAME%.*}" # 自动生成输出名:原文件名 + _enhanced + 原后缀 OUTPUT_FILE="$OUTPUT_DIR/${FILENAME}_enhanced.$EXTENSION" echo "正在修复: $INPUT_FILE" echo "输出到: $OUTPUT_FILE" python inference_gpen.py -i "$INPUT_FILE" -o "$OUTPUT_FILE"赋予执行权限并使用:
chmod +x run_gpen.sh ./run_gpen.sh ./my_photo.jpg效果:输入my_photo.jpg,自动输出到/data/results/my_photo_enhanced.jpg。
扩展性:想改路径?只改脚本里OUTPUT_DIR=这一行就行。
安全性:不碰原始inference_gpen.py,升级模型时零冲突。
5. 常见误区与避坑指南
最后,把大家踩过的典型坑列出来,帮你省下两小时调试时间:
❌误区1:“输出路径在代码里写死了,必须改源码”
→ 错。GPEN主脚本inference_gpen.py里所有路径都是动态拼接的,-o参数就是为此设计。改源码是下策,用参数是正解。❌误区2:“我用Jupyter Notebook运行,结果图在Notebook里显示了,但硬盘上找不到”
→ 对!Notebook里的plt.imshow()是内存渲染,不是保存。你必须显式调用cv2.imwrite()或PIL.Image.save(),或者——更简单——坚持用命令行跑inference_gpen.py,它自带保存逻辑。❌误区3:“输出图是黑的/全是噪点,是不是模型坏了?”
→ 先别急着重装。90%是输入图问题:① 图片损坏(用file my_photo.jpg检查);② 分辨率太小(<256px,GPEN对小图支持弱);③ 人脸占比太小(占画面<1/4,检测器容易漏掉)。换一张清晰正面照试试。❌误区4:“我想把输出图直接传到微信/钉钉,得先下载到本地再上传?”
→ 不用。镜像里预装了curl和jq,你可以用一行命令把图传到图床(如SM.MS):curl -F "smfile=@/data/results/enhanced_portrait.png" https://sm.ms/api/v2/upload | jq -r '.data.url'输出就是可直接分享的外链。
6. 总结:记住这三句话,再不丢图
- 第一句:GPEN的输出图默认就在
/root/GPEN/目录下,名字以output_开头,格式是 PNG。 - 第二句:想存别处?用
-o /your/path/name.png,绝对路径最稳,不用记规则。 - 第三句:找不到图?先
pwd看位置,再ls -lt *.png看文件,最后看终端最后一行有没有Saved result to:提示。
现在你已经彻底搞清了GPEN的“文件归宿地”。下次修复完,不用再满系统翻找,cd /root/GPEN && ls output_*,一秒定位。真正的效率,就藏在这些看似微小、却天天要用的确定性里。
获取更多AI镜像
想探索更多AI镜像和应用场景?访问 CSDN星图镜像广场,提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域,支持一键部署。