news 2026/4/16 9:35:50

GPEN推理脚本怎么用?inference_gpen.py参数详解教程

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
GPEN推理脚本怎么用?inference_gpen.py参数详解教程

GPEN推理脚本怎么用?inference_gpen.py参数详解教程

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 环境:

conda activate torch25

2.2 进入代码目录

所有推理操作都在/root/GPEN目录下进行:

cd /root/GPEN

2.3 执行推理任务

GPEN 提供了inference_gpen.py脚本,支持多种调用方式。以下是几个典型场景的使用示例。

场景 1:运行默认测试图

不加任何参数时,脚本会自动加载内置的测试图片(Solvay_conference_1927.jpg)并进行修复:

python inference_gpen.py

输出结果将保存为:output_Solvay_conference_1927.png

场景 2:修复自定义图片

你可以通过--input参数指定自己的人像照片路径:

python inference_gpen.py --input ./my_photo.jpg

输出文件名为output_my_photo.jpg,自动添加output_前缀。

场景 3:自定义输入和输出文件名

如果想更灵活地控制输出名称,可以同时使用-i-o参数:

python inference_gpen.py -i test.jpg -o custom_name.png

这会把test.jpg的修复结果保存为custom_name.png,不会自动加前缀。

提示:所有生成结果默认保存在项目根目录下,即/root/GPEN/,无需手动创建输出路径。


3. inference_gpen.py 参数详解

inference_gpen.py支持多个命令行参数,帮助你精细控制修复过程。下面是对每个参数的详细解释。

3.1 基础输入输出参数

参数缩写说明
--input-i指定输入图像路径(必须是单张人像图)
--output-o指定输出图像路径(可选,默认自动命名)

示例:

python inference_gpen.py -i portrait.jpg -o restored_portrait.jpg

3.2 分辨率控制参数

GPEN 支持不同分辨率的人像增强,可通过--size参数选择预设尺寸。

参数可选值说明
--size256, 512, 1024, 2048控制输出图像的分辨率大小

推荐设置:

  • 日常使用选5121024
  • 高清打印或专业用途可尝试2048

示例:

python inference_gpen.py --input face.jpg --size 1024

注意:分辨率越高,显存占用越大。建议 GPU 显存 ≥ 8GB 才使用 1024 以上分辨率。

3.3 人脸处理相关参数

这些参数影响人脸检测、对齐和细节保留效果。

参数默认值说明
--channel_multiplier2特征通道倍增系数,影响网络容量
--narrow1.0网络宽度缩放因子,小于1可降低计算量
--indirNone批量处理目录(见下文)
--detect_faceTrue是否启用自动人脸检测与对齐

示例:关闭自动人脸检测(适用于已对齐的人脸)

python inference_gpen.py --input aligned_face.jpg --detect_face False

3.4 批量处理功能

如果你有一批人像需要统一修复,可以用--indir指定整个文件夹:

python inference_gpen.py --indir ./input_faces/

脚本会遍历该目录下的所有图片,并在同级生成output文件夹存放结果。

配合--outdir可自定义输出路径:

python inference_gpen.py --indir ./input/ --outdir ./restored/

3.5 其他实用参数

参数说明
--save_face_only仅保存修复后的人脸区域(裁剪版)
--origin_size使用原图尺寸输出,避免缩放
--use_sr是否启用超分模块提升纹理清晰度
--aligned输入图已是标准对齐人脸(跳过检测)

示例:保留原始尺寸 + 启用超分增强

python inference_gpen.py --input photo.jpg --origin_size --use_sr

4. 实际使用技巧与建议

4.1 如何获得最佳修复效果?

我们测试了多种组合,总结出以下“黄金配置”:

python inference_gpen.py \ --input ./my_face.jpg \ --size 1024 \ --use_sr \ --origin_size \ --output final_result.png

这套组合的特点是:

  • 输出高清(1024分辨率)
  • 保留原图比例(避免拉伸)
  • 开启超分让皮肤质感更细腻
  • 最终效果自然且细节丰富

4.2 显存不足怎么办?

若遇到 OOM(Out of Memory)错误,可尝试以下方法:

  1. 降低分辨率:改用--size 512256
  2. 缩小网络规模:添加--narrow 0.5
  3. 关闭超分:加上--no-use_sr

示例低资源模式:

python inference_gpen.py --input small.jpg --size 512 --narrow 0.5 --use_sr False

这样可在 4GB 显存设备上顺利运行。

4.3 图片太暗或曝光异常?

GPEN 本身不包含亮度/对比度调整功能。建议预处理步骤如下:

import cv2 import numpy as np def brighten_image(img_path, output_path): img = cv2.imread(img_path) # 调整亮度和对比度 (beta: 亮度, alpha: 对比度) adjusted = cv2.convertScaleAbs(img, alpha=1.2, beta=30) cv2.imwrite(output_path, adjusted) brighten_image("dark_photo.jpg", "brightened.jpg")

然后对brightened.jpg进行 GPEN 修复,效果更好。

4.4 多人脸图像如何处理?

当前inference_gpen.py默认只处理画面中最大的一张人脸。

如果你有多个人脸的照片(如合影),建议:

  1. 先用工具(如 OpenCV 或 LabelImg)手动裁剪出每个人脸
  2. 分别对每张裁剪图执行 GPEN 修复
  3. 后期再拼接回原图(可用 Photoshop 或 Python 实现)

5. 已包含权重文件说明

为保证开箱即用及离线推理能力,镜像内已预下载以下模型权重:

  • ModelScope 缓存路径~/.cache/modelscope/hub/iic/cv_gpen_image-portrait-enhancement
  • 包含内容
    • 预训练生成器(Generator)
    • 人脸检测器(RetinaFace)
    • 关键点对齐模型(FAN)
    • 超分辅助模块(RealESRGAN-based)

⚠️ 注意:首次运行推理脚本时若未找到本地权重,会尝试从 ModelScope 自动下载。由于模型较大(约 1.2GB),建议提前确认网络畅通或直接使用预装版本。


6. 常见问题解答

Q1:支持中文路径吗?

不建议使用含中文的文件路径,可能导致 OpenCV 读取失败。请将图片放在纯英文路径下。

Q2:输出图片模糊怎么办?

检查是否开启了--use_sr。如果没有,请加上该参数以启用超分增强。

Q3:人脸变形或五官错位?

可能是原图角度过大或遮挡严重。建议:

  • 尽量使用正脸、无遮挡的照片
  • 若必须处理侧脸,可尝试关闭自动对齐:--detect_face False

Q4:能处理动物脸吗?

不能。GPEN 是专为人脸设计的模型,对猫狗等动物面部无效。

Q5:可以部署成 Web API 吗?

可以。后续我们将发布基于 FastAPI 的封装教程,实现网页端上传修复功能。


7. 参考资料

  • 官方仓库:yangxy/GPEN
  • 魔搭社区地址:iic/cv_gpen_image-portrait-enhancement

8. 引用 (Citation)

@inproceedings{yang2021gpen, title={GAN-Prior Based Null-Space Learning for Consistent Super-Resolution}, author={Yang, Tao and Ren, Peiran and Xie, Xuansong and Zhang, Lei}, booktitle={Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR)}, year={2021} }

获取更多AI镜像

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

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/16 8:53:53

C++资源管理进阶之路(从unique_ptr到shared_ptr的完美过渡)

第一章&#xff1a;C智能指针概述与资源管理演进 在C的发展历程中&#xff0c;内存资源管理始终是核心议题之一。早期的C依赖程序员手动管理堆内存&#xff0c;通过 new 和 delete 显式分配与释放对象&#xff0c;这种方式极易引发内存泄漏、重复释放或悬空指针等问题。为解决…

作者头像 李华
网站建设 2026/4/16 15:05:19

Z-Image-Turbo镜像测评:CSDN构建版本稳定性与性能实测

Z-Image-Turbo镜像测评&#xff1a;CSDN构建版本稳定性与性能实测 1. 引言&#xff1a;为什么Z-Image-Turbo值得你关注&#xff1f; 如果你正在寻找一个速度快、质量高、部署简单、显卡要求低的开源文生图模型&#xff0c;那么Z-Image-Turbo绝对是你不能错过的选择。 它是阿…

作者头像 李华
网站建设 2026/4/16 13:31:02

未来AI工作流:cv_unet_image-matting集成至设计系统的部署趋势分析

未来AI工作流&#xff1a;cv_unet_image-matting集成至设计系统的部署趋势分析 1. 引言&#xff1a;从工具到系统&#xff0c;AI抠图的演进路径 在数字内容创作日益频繁的今天&#xff0c;图像处理已成为设计、电商、广告等行业的基础环节。其中&#xff0c;人像抠图作为高频…

作者头像 李华
网站建设 2026/4/16 13:31:49

Java Stream filter多条件组合技巧(资深架构师私藏代码模板)

第一章&#xff1a;Java Stream filter多条件组合的核心概念 在Java 8引入的Stream API中&#xff0c;filter方法是实现数据筛选的关键操作。当面对复杂业务逻辑时&#xff0c;单一条件过滤往往无法满足需求&#xff0c;此时需要将多个条件进行逻辑组合。Java Stream支持通过Pr…

作者头像 李华
网站建设 2026/4/16 13:28:33

多语言支持探索:FSMN-VAD扩展英文检测可行性分析

多语言支持探索&#xff1a;FSMN-VAD扩展英文检测可行性分析 1. FSMN-VAD 离线语音端点检测控制台简介 你是否在处理长段录音时&#xff0c;为手动切分有效语音而头疼&#xff1f;有没有一种工具能自动帮你“听”出哪些是人声、哪些是静音&#xff0c;并精准标注时间范围&…

作者头像 李华
网站建设 2026/4/16 14:23:28

免费查文献的网站推荐 实用学术资源平台汇总

做科研的第一道坎&#xff0c;往往不是做实验&#xff0c;也不是写论文&#xff0c;而是——找文献。 很多新手科研小白会陷入一个怪圈&#xff1a;在知网、Google Scholar 上不断换关键词&#xff0c;结果要么信息过载&#xff0c;要么完全抓不到重点。今天分享几个长期使用的…

作者头像 李华