HivisionIDPhotos 中文使用教程
2026-06-04发表于
HivisionIDPhotos
⚡️HivisionIDPhotos: a lightweight and efficient AI ID photos tools. 一个轻量级的AI证件照制作算法。
项目简介
在求职、考试、办理各类证件的场景中,"证件照"几乎是一个绕不开的刚需。传统流程是去线下照相馆拍完再修图,耗时且价格不菲;如果自己用手机自拍,又会遇到背景不规整、人物不居中、尺寸不符合要求等问题。HivisionIDPhotos 正是为解决这些痛点而生的开源工具——它是一个轻量级的 AI 证件照智能制作算法,借助一整套模型工作流,实现对用户上传照片的识别、抠图、尺寸裁剪与背景替换,最终输出符合规范的标准证件照。
项目的核心理念是"实用 + 轻量":模型推理在纯 CPU 环境下即可完成,无需昂贵的 GPU;同时它支持本地离线运行,从源头上保障了用户照片的隐私安全。对于个人开发者、HR 团队、在线教育平台、政务系统开发者而言,它都是一个开箱即用的证件照生产工具。截至目前,仓库已收获超过 21,000 Star,社区生态也从 Python 版本延伸到了 C++、微信小程序、UniApp、NAS 部署、Windows GUI 等多个方向,足以印证它的受欢迎程度。
核心功能与架构
核心能力一览
HivisionIDPhotos 围绕"证件照"这一场景构建了完整的功能矩阵,主要包括以下几个方面:
第一,轻量级人像抠图。这是整个工具的基石,采用了 MODNet 等成熟的人像抠图模型,纯离线、CPU 可跑,2~3 秒内即可完成一张图片的抠图,输出透明背景的 PNG。
第二,多尺寸标准证件照生成。内置常见的一寸、二寸、小一寸、小二寸等尺寸规格,同时支持自定义宽高(甚至支持以"毫米"为单位输入),满足不同国家和不同证件类型的需求。
第三,智能换底色。支持红底、蓝底、白底等常见背景色,并允许通过 HEX 值自定义任意颜色,方便适配护照、签证、简历等不同场景。
第四,六寸/五寸/A4 排版照输出。这是项目近期更新的亮点之一,可以将多张证件照排版到一张相纸上,方便用户直接去打印店冲印。
第五,人脸检测与对齐。使用 MTCNN 进行人脸关键点检测,结合 Face++(可选)实现更精确的人脸对齐,保证最终输出的证件照人物位置居中、五官比例协调。
第六,美颜与美化。2024 年 11 月新增的 API 美颜参数,可以在生成证件照的同时进行轻度美颜处理。
技术架构剖析
整个项目可以分为三个层次:模型层、服务层、应用层。模型层由抠图模型(MODNet)、人脸检测模型(MTCNN)以及可选的 Face++ API 组成;服务层使用 FastAPI 封装 RESTful 接口,对外暴露抠图、裁剪、换底等原子能力;应用层则通过 Gradio 构建了一个开箱即用的 Web 界面,零代码用户也能直接使用。
值得称道的是,作者在架构上做了良好的解耦。如果你只想用抠图能力,可以直接调用 Python API;如果想集成到自己的 Web 服务中,可以部署 FastAPI;如果想给非技术同事使用,直接跑 Gradio Demo 即可。这种灵活性让项目在 GitHub 上衍生出了丰富的社区版本——有人做了 Windows 桌面客户端,有人做了微信小程序,还有人把它部署到群晖 NAS 上。
快速上手
下面进入实战环节,从零开始把 HivisionIDPhotos 跑起来。
环境准备
建议使用 Conda 创建一个独立的 Python 3.10 虚拟环境,避免和系统已有的库产生冲突:
conda create -n hivision python=3.10 -y
conda activate hivision
然后克隆项目并安装依赖:
git clone https://github.com/Zeyi-Lin/HivisionIDPhotos.git
cd HivisionIDPhotos
pip install -r requirements.txt
pip install -r requirements-app.txt
接下来需要下载人像抠图模型的权重文件。项目提供了自动化脚本,下载全部模型只需一行命令:
python scripts/download_model.py --models all
如果只想体验核心功能,可以只下载主要的抠图模型:
python scripts/download_model.py --models modnet_photographic_portrait_matting
下载完成后,权重文件会存放在 hivision/creator/weights 目录下。
启动 Gradio Web 界面
对于大多数用户而言,Gradio Demo 是最简单直观的使用方式。在项目根目录执行:
python app.py
启动成功后,终端会输出一个本地 URL(通常是 http://127.0.0.1:7860),用浏览器打开就能看到完整的证件照生成界面。整个流程非常顺畅:上传照片 → 选择尺寸与底色 → 点击生成 → 预览与下载。
Python 推理调用
如果想把证件照生成能力集成到自己的脚本中,可以直接调用底层的 Python 接口:
from hivision import IDPhotos
creator = IDPhotos()
# 一行代码完成证件照生成
result = creator(
input_image="test.jpg",
size=(413, 295), # 一寸证件照尺寸
change_bg=True,
bg_color=(0, 0, 255), # 蓝色背景
)
# 保存标准照和排版照
result.standard.save("id_photo.png")
result.layout.save("id_photo_layout.png")
这种"几行代码搞定一切"的体验,是 HivisionIDPhotos 区别于传统图像处理工具的重要优势。
部署 API 服务
对于需要对外提供证件照生成服务的场景(例如嵌入到 HR 系统或小程序后端),可以单独部署 FastAPI 服务:
python deploy_api.py
服务启动后,默认监听 8000 端口。通过 POST 请求即可调用证件照生成接口:
curl -X POST "http://127.0.0.1:8000/idphoto" \
-F "input_image=@test.jpg" \
-F "size=413,295" \
-F "bg_color=(255,255,255)"
接口会返回生成的标准照高清文件,默认输出 300 DPI 的 JPEG,可以直接送印。
Docker 一键部署
如果不想在本地折腾环境,官方还提供了 Docker 镜像,几行命令就能完成部署:
docker run -d -p 7860:7860 linzeyi/hivision_idphotos
需要自定义配置时,可以通过环境变量注入。例如启用"野兽模式"(保持模型常驻内存以加速二次推理):
docker run -d -p 7860:7860 \
-e RUN_MODE=beast \
-e DEFAULT_LANG=en \
linzeyi/hivision_idphotos
使用场景
HivisionIDPhotos 的应用场景非常广泛,涵盖个人、企业与开发者三类典型用户
项目信息
| 项目 | 值 |
|---|---|
| 仓库 | Zeyi-Lin/HivisionIDPhotos |
| 语言 | Python |
| Star | 21,150 |
| Fork | 2,416 |
| 主页 | https://modelscope.cn/studios/SwanLab/HivisionIDPhotos |
参考链接
30
6
1
560
文章目录
评论