GPEN输出文件命名规则自定义:脚本修改详细教程

GPEN输出文件命名规则自定义:脚本修改详细教程

GPEN人像修复增强模型镜像

本镜像基于GPEN人像修复增强模型构建,预装了完整的深度学习开发环境,集成了推理及评估所需的所有依赖,开箱即用。

1. 镜像环境说明

组件版本
核心框架PyTorch 2.5.0
CUDA 版本12.4
Python 版本3.11
推理代码位置/root/GPEN

主要依赖库:

  • facexlib: 用于人脸检测与对齐
  • basicsr: 基础超分框架支持
  • opencv-python,numpy<2.0,datasets==2.21.0,pyarrow==12.0.1
  • sortedcontainers,addict,yapf

2. 快速上手

2.1 激活环境

conda activate torch25

2.2 模型推理 (Inference)

进入代码目录并使用预置脚本进行推理测试:

cd /root/GPEN

使用下面命令进行推理测试,可以通过命令行参数灵活指定输入图片。

# 场景 1:运行默认测试图 # 输出将保存为: output_Solvay_conference_1927.png python inference_gpen.py # 场景 2:修复自定义图片 # 输出将保存为: output_my_photo.jpg python inference_gpen.py --input ./my_photo.jpg # 场景 3:直接指定输出文件名 # 输出将保存为: custom_name.png python inference_gpen.py -i test.jpg -o custom_name.png

推理结果将自动保存在项目根目录下,测试结果如下:


3. 默认输出命名机制分析

3.1 命名逻辑解析

当你运行inference_gpen.py脚本时,如果没有通过-o参数显式指定输出文件名,系统会根据输入文件的名称自动生成一个默认的输出名。其规则如下:

  • 输入文件名为xxx.jpgxxx.png,则输出文件名为output_xxx.png
  • 若未提供输入文件(使用默认测试图),则输出为output_Solvay_conference_1927.png

这个逻辑隐藏在脚本内部的get_save_path()或类似函数中,通常位于主函数调用前的数据处理部分。

3.2 查看原始命名代码

我们可以通过查看/root/GPEN/inference_gpen.py文件中的关键段落来确认这一行为:

# 示例代码片段(非原生,模拟实际逻辑) if args.input is None: input_path = 'test_images/Solvay_conference_1927.jpg' else: input_path = args.input # 提取文件名(不含扩展名) base_name = os.path.splitext(os.path.basename(input_path))[0] # 构造输出路径 if args.output is None: output_path = f'output_{base_name}.png' else: output_path = args.output

可以看到,默认命名是通过拼接"output_" + 原始文件名(无后缀) + .png"实现的。


4. 自定义输出命名规则的方法

虽然可以通过-o参数临时指定输出名,但如果你需要批量处理多张图像或希望统一命名风格(如按时间戳、用户ID、场景分类等),手动加参数显然不现实。因此,我们需要修改脚本本身来实现持久化、个性化的命名策略。

4.1 修改目标定位

打开推理脚本:

nano /root/GPEN/inference_gpen.py

搜索以下关键字之一:

  • output_path
  • save_path
  • args.output
  • f'output_'

找到负责生成默认输出路径的那一段代码。

4.2 添加时间戳命名规则

假设你希望每次生成的文件都带有时间信息,便于归档和区分,可以这样改写:

import datetime # 在文件顶部导入 datetime 模块 # 找到原输出路径生成逻辑,替换为: if args.output is None: base_name = os.path.splitext(os.path.basename(input_path))[0] timestamp = datetime.datetime.now().strftime("%Y%m%d_%H%M%S") output_path = f'{base_name}_enhanced_{timestamp}.png' else: output_path = args.output

效果示例:

  • 原图portrait.jpg→ 输出portrait_enhanced_20250405_142310.png

这种方式特别适合做自动化处理或实验记录。

4.3 按用户/场景分类命名

如果你为人像增强服务不同客户或用途(如证件照、社交头像、老照片修复),可加入前缀标识:

# 定义用途类型(可通过新增参数传入,也可固定设置) scene_prefix = "idphoto" # 可选: social, oldphoto, beauty 等 if args.output is None: base_name = os.path.splitext(os.path.basename(input_path))[0] output_path = f'{scene_prefix}_{base_name}_restored.png' else: output_path = args.output

输出示例:

  • idphoto_zhangsan_restored.png
  • oldphoto_childhood_restored.png

4.4 使用递增编号避免重名

对于无人值守的批处理任务,建议使用数字编号防止覆盖:

import glob def get_next_filename(base_name, ext=".png"): prefix = f"{base_name}_v" existing = glob.glob(f"{prefix}*{ext}") if not existing: return f"{prefix}01{ext}" numbers = [] for file in existing: try: num = int(file.split('_v')[-1].split('.')[0]) numbers.append(num) except: continue next_num = max(numbers) + 1 if numbers else 1 return f"{prefix}{next_num:02d}{ext}" # 使用方式 if args.output is None: base_name = os.path.splitext(os.path.basename(input_path))[0] output_path = get_next_filename("face", ".png") # face_v01.png, face_v02.png... else: output_path = args.output

5. 进阶技巧:从命令行传入自定义命名模板

为了兼顾灵活性与易用性,我们可以扩展脚本功能,允许用户通过新参数控制命名模式。

5.1 新增命令行参数

修改argparse部分,添加--name-template参数:

parser.add_argument('--name-template', type=str, default=None, help='Custom naming template. Use {name}, {time}, {suffix}. Example: "{name}_fixed_{time}"')

5.2 实现动态命名模板解析

在输出路径生成处加入模板替换逻辑:

import datetime if args.output is None: name = os.path.splitext(os.path.basename(input_path))[0] time_str = datetime.datetime.now().strftime("%H%M") if args.name_template: # 支持占位符替换 output_name = args.name_template.format( name=name, time=time_str, suffix="enhanced" ) + ".png" else: output_name = f"output_{name}.png" output_path = output_name else: output_path = args.output

5.3 使用示例

# 使用自定义模板 python inference_gpen.py -i myface.jpg --name-template "{name}_gpen_{time}" # 输出:myface_gpen_1423.png

这使得同一个脚本能适应多种业务场景,无需反复修改源码。


6. 批量处理中的命名实践建议

当你要对一批图片进行修复时,合理的命名规则尤为重要。以下是几种推荐做法:

6.1 统一前缀 + 序号

适用于归档管理:

# 批量脚本片段 for idx, img_path in enumerate(image_list): base = os.path.basename(img_path).rsplit('.', 1)[0] output = f"batch_{idx+1:03d}_{base}.png"

6.2 保留原始目录结构命名

若输入来自多个子文件夹,可用路径信息编码:

# 如输入为 data/teamA/001.jpg rel_path = os.path.relpath(img_path, start_dir) # teamA/001.jpg safe_name = rel_path.replace('/', '_') output = f"restored_{safe_name}.png" # restored_teamA_001.png

6.3 加入质量等级标识

如果对不同分辨率或强度的修复结果分别保存,可在名字中标注:

resolution_tag = "512" # 或 1024 output = f"{base}_gpen_{resolution_tag}p.png"

7. 总结

7.1 核心要点回顾

  • GPEN 默认输出格式为output_<filename>.png,由脚本内硬编码逻辑决定。
  • 可通过-o参数临时指定输出名,适合单次调用。
  • 若要实现永久性、个性化命名规则,需修改inference_gpen.py中的输出路径生成逻辑。
  • 推荐方法包括:添加时间戳、分类前缀、递增编号、支持模板变量等。
  • 结合argparse扩展参数,可让脚本更灵活地服务于不同应用场景。

7.2 实践建议

  • 修改前先备份原脚本:cp inference_gpen.py inference_gpen.py.bak
  • 测试新命名逻辑时,先用小图试跑,确保不出错
  • 若用于生产环境,建议封装成独立配置文件或.yaml控制命名策略
  • 注意文件路径权限问题,确保输出目录可写

掌握输出命名的自定义方法,不仅能提升工作效率,还能让你的AI处理流程更加专业、有序。无论是个人使用还是团队协作,清晰的命名规范都是高质量项目的重要标志。


获取更多AI镜像

想探索更多AI镜像和应用场景?访问 CSDN星图镜像广场,提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域,支持一键部署。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1199078.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Python调用C++ DLL终极指南】:手把手教你用ctype实现高效跨语言编程

第一章&#xff1a;Python调用C DLL的核心原理与场景在跨语言开发中&#xff0c;Python调用C编写的动态链接库&#xff08;DLL&#xff09;是一种常见需求&#xff0c;尤其在需要高性能计算或复用已有C模块时。其核心原理是利用Python的外部接口库&#xff08;如ctypes或cffi&a…

从音阶到语音合成|利用Supertonic镜像实现自然语言处理

从音阶到语音合成&#xff5c;利用Supertonic镜像实现自然语言处理 1. 引言&#xff1a;当音乐理论遇见现代语音技术 你有没有想过&#xff0c;“supertonic”这个词&#xff0c;最早其实并不属于人工智能领域&#xff1f;在音乐理论中&#xff0c;supertonic&#xff08;上主…

FSMN-VAD离线语音检测实测:精准识别语音片段,支持实时录音

FSMN-VAD离线语音检测实测&#xff1a;精准识别语音片段&#xff0c;支持实时录音 1. 引言&#xff1a;为什么我们需要语音端点检测&#xff1f; 你有没有遇到过这样的问题&#xff1a;一段长达十分钟的会议录音&#xff0c;真正说话的时间可能只有三五分钟&#xff0c;其余都…

如何快速部署Qwen3-4B-Instruct?镜像一键启动保姆级教程

如何快速部署Qwen3-4B-Instruct&#xff1f;镜像一键启动保姆级教程 你是不是也遇到过这样的问题&#xff1a;想试试最新的开源大模型&#xff0c;结果卡在环境配置上——装依赖报错、显存不够、CUDA版本不匹配、WebUI打不开……折腾两小时&#xff0c;连“Hello World”都没跑…

质量好的密封箱式回火炉供应商怎么联系?2026年最新排行

在工业热处理领域,选择优质的密封箱式回火炉供应商需要综合考虑企业历史、技术实力、生产规模、行业口碑及售后服务能力。通过对2026年市场调研数据的分析,我们筛选出5家在技术专业性、产品质量稳定性和客户服务方面…

Open-AutoGLM上手实录:30分钟搞定AI手机代理

Open-AutoGLM上手实录&#xff1a;30分钟搞定AI手机代理 1. 引言&#xff1a;让AI替你操作手机&#xff0c;真的可以这么简单&#xff1f; 你有没有想过&#xff0c;有一天只需要说一句“帮我打开小红书搜美食”&#xff0c;手机就会自动执行——解锁、打开App、输入关键词、…

Sambert如何做A/B测试?多模型输出对比部署方案

Sambert如何做A/B测试&#xff1f;多模型输出对比部署方案 Sambert 多情感中文语音合成-开箱即用版&#xff0c;专为中文场景优化&#xff0c;支持知北、知雁等多发音人情感转换。本镜像基于阿里达摩院 Sambert-HiFiGAN 模型&#xff0c;已深度修复 ttsfrd 二进制依赖及 SciPy…

实测通义千问3-14B:119种语言翻译效果惊艳展示

实测通义千问3-14B&#xff1a;119种语言翻译效果惊艳展示 1. 引言&#xff1a;为什么这次翻译实测值得关注&#xff1f; 你有没有遇到过这种情况&#xff1a;手头有一份多语种文档&#xff0c;需要快速理解内容&#xff0c;但翻译工具要么不准&#xff0c;要么不支持小语种&…

通义千问3-14B部署避坑:常见错误与解决方案汇总

通义千问3-14B部署避坑&#xff1a;常见错误与解决方案汇总 1. 引言&#xff1a;为什么选择 Qwen3-14B&#xff1f; 如果你正在寻找一个性能接近30B级别、但单卡就能跑动的大模型&#xff0c;那通义千问3-14B&#xff08;Qwen3-14B&#xff09;可能是目前最值得考虑的开源选项…

AI绘画翻车怎么办?麦橘超然常见问题全解

AI绘画翻车怎么办&#xff1f;麦橘超然常见问题全解 1. 麦橘超然&#xff1a;轻量高效&#xff0c;但也会“翻车” 你有没有遇到过这种情况&#xff1a;输入了一段精心设计的提示词&#xff0c;满怀期待地点下“生成”&#xff0c;结果画面却完全跑偏——人物长了六根手指、建…

医疗单据识别:测试cv_resnet18_ocr-detection对处方字迹的捕捉能力

医疗单据识别&#xff1a;测试cv_resnet18_ocr-detection对处方字迹的捕捉能力 在医疗信息化快速推进的今天&#xff0c;纸质处方、检查报告、病历记录等大量非结构化文档仍广泛存在。如何高效、准确地将这些手写或打印内容转化为可编辑、可检索的电子数据&#xff0c;成为医院…

fft npainting lama处理人像瑕疵效果惊艳

fft npainting lama处理人像瑕疵效果惊艳 1. 引言&#xff1a;AI图像修复的新体验 你有没有遇到过这样的情况&#xff1f;一张本该完美的自拍照&#xff0c;却被脸上的痘印、斑点或者不小心入镜的杂物破坏了整体美感。修图软件虽然多&#xff0c;但手动抠图、修补边缘往往费时…

语音社交App创新功能,实时显示说话人情绪状态

语音社交App创新功能&#xff0c;实时显示说话人情绪状态 1. 让聊天更懂你&#xff1a;用AI感知声音中的情绪 你有没有这样的经历&#xff1f;在语音聊天时&#xff0c;朋友说“我没事”&#xff0c;但语气明显低落&#xff0c;你却不知道该如何回应。或者在团队会议中&#…

大数据与财务管理中专生的职业突围策略

学历短板可通过高含金量证书弥补&#xff0c;尤其在数据与财务交叉领域。CDA数据分析师等证书能构建技术壁垒&#xff0c;提升就业竞争力。核心证书矩阵证书类型推荐证书适用岗位学习周期薪资增幅数据分析类CDA Level I/II财务数据分析师3-6个月30-50%财务技能类初级会计职称基…

YOLOv10轻量版实测:yolov10n在低配GPU跑得动吗

YOLOv10轻量版实测&#xff1a;yolov10n在低配GPU跑得动吗 你是不是也遇到过这样的尴尬&#xff1f;想在老旧笔记本或者入门级显卡上部署一个目标检测模型&#xff0c;结果刚运行就提示“CUDA out of memory”&#xff0c;或者推理一帧要等好几秒。别急&#xff0c;最近发布的…

SenseVoiceSmall情感标签乱码?rich_transcription后处理详解

SenseVoiceSmall情感标签乱码&#xff1f;rich_transcription后处理详解 1. 问题背景&#xff1a;你看到的不是乱码&#xff0c;是富信息 你有没有遇到这种情况——用SenseVoiceSmall识别完一段音频&#xff0c;结果里突然冒出一堆像<|HAPPY|>、<|BGM|>这样的奇怪…

绝望博弈!一众大模型加持的猜拳游戏,人类胜率竟不足10%?

基于 LLM + Next.js 的博弈实战猜拳游戏 摘要:当你以为自己在和随机数生成器玩游戏时,对面的 AI 正在阅读你所有的历史出拳记录,并写了一篇关于你心理状态的小作文。本文带你拆解这个基于 Next.js 16 + Tailwind v4…

质量好的代加工皮革门生产厂家怎么联系?2026年推荐

在寻找代加工皮革门生产厂家时,企业需重点关注厂家的生产规模、技术实力、行业口碑及长期合作案例。优质的代加工厂家通常具备稳定的供应链、成熟的工艺技术、严格的质量管理体系,并能提供定制化服务。根据2026年行业…

Qwen萌宠生成器性能实测:GPU利用率优化提升80%

Qwen萌宠生成器性能实测&#xff1a;GPU利用率优化提升80% 你有没有试过用AI生成专为孩子设计的可爱动物图片&#xff1f;不是那种冷冰冰的写实风&#xff0c;而是圆滚滚的大眼睛、毛茸茸的小爪子、色彩明亮又充满童趣的卡通风格——现在&#xff0c;这一切只需要一句话就能实…

FRCRN语音降噪-单麦-16k镜像详解|附语音处理全流程实践

FRCRN语音降噪-单麦-16k镜像详解&#xff5c;附语音处理全流程实践 你是否经常被录音中的背景噪音困扰&#xff1f;会议录音听不清、采访音频杂音多、语音备忘录模糊不清——这些问题在日常工作中屡见不鲜。而今天我们要介绍的 FRCRN语音降噪-单麦-16k 镜像&#xff0c;正是为…