HivisionIDPhotos

Zeyi-LinApache-2.0更新放缓 有专家点评

轻量级 AI 证件照制作算法,能自动抠图、换背景并生成标准尺寸证件照,适合快速集成到自己的应用里。

⚡️HivisionIDPhotos: a lightweight and efficient AI ID photos tools. 一个轻量级的AI证件照制作算法。

v1.3.1发布于 2025-01-21 11:36 UTC21,714star +9 / 7 天2,530fork同步于 2026-11-10 23:25 UTC

专家点评

上手难度:进阶更新于 2026-11-11

纯 CPU 离线抠图加证件照排版,替代影楼流水线里那套人像分割脚本

适用场景

  • 内网或断网环境批量出证件照:模型权重和推理全在本地,不依赖任何云 API,换底、裁切、六寸排版一次跑完,换成在线抠图服务就要处理数据出境和配额
  • 单机低并发的小工具站:FastAPI 加 Gradio 两套入口都给了,CPU 推理够撑演示和内部使用,不需要为这个功能单独占一张卡
  • 已有业务系统要嵌证件照能力:Python 推理接口直接调,输出标准尺寸和排版图,比接商业证件照 SDK 少一层计费和合规流程
  • 需要固定规格输出(一寸/二寸/签证照)的批处理:尺寸和排版逻辑内置,不用自己写裁切和拼版

踩坑

  • 模型权重不在仓库里,clone 完直接跑 app.py 会失败,必须先执行 download_model.py 把权重放进 hivision/creator/weights;Docker 构建同理,镜像构建前就得把权重放好,CI 里容易漏这一步
  • 野兽模式(不释放模型内存)在 issue 里被提到 API 长驻场景下显存不释放,README 也建议 16GB 以上内存再用;如果你的服务是常驻进程加多模型切换,这块要自己管生命周期
  • 可选的人脸检测分支(RetinaFace、Face++)要额外下权重或配 API key,默认路径走不通时先确认是不是选了没装的可选项

同类对比

要 GPU 上更高精度的抠图可以看 rembg / BiRefNet 原仓库自己搭管线;要完整证件照 SaaS 能力(换装、合规校验)这个项目目前没有,issue 里换装是最高赞的需求但还没落地

怎么上手

由 README 提炼,执行前请确认
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 app.py
硬件要求按 README 说明

README 说明抠图可纯离线在 CPU 上推理,测试环境为 Mac M1 Max 64GB 非 GPU 加速;使用 birefnet-v1-lite 模型时可选装 onnxruntime-gpu 与 CUDA 版 torch 走 GPU 加速。README 未说明具体显存要求与支持的 GPU 型号。

支持 Apple Silicon需要 CUDA有 Docker 镜像
下载:源码 zip·GitHub Releases(安装包)本站不镜像安装包

项目说明

由 README 自动翻译提炼

轻量级离线 AI 证件照制作算法,纯 CPU 即可完成抠图、换底与排版

轻量级 AI 证件照制作算法,能自动抠图、换背景并生成标准尺寸证件照,适合快速集成到自己的应用里。

核心能力

  • 纯离线抠图,仅需 CPU 即可快速推理
  • 按尺寸规格生成标准证件照与六寸排版照
  • 支持纯离线或端云推理两种模式
  • 内置美颜参数与人脸旋转对齐
  • 提供 Gradio Demo、Python 推理与 API 服务

容易踩的坑

运行前必须先把抠图模型权重下载到 hivision/creator/weights 目录,否则无法推理;Docker 构建镜像前也需先放好至少一个抠图模型权重;RetinaFace 与 Face++ 属可选人脸检测模型,需额外下载权重或配置 API 密钥;野兽模式不释放模型内存,建议 16GB 以上内存再尝试。

内容由模型根据 README 生成,可能不完整或不准确,以官方文档为准。看原文 README

最近发版

5 个版本v1.3.1
  1. v1.3.1最新正式版2025-01-21 · 2025-01-21 11:36 UTC
  2. v1.3.02024-11-16 · 2024-11-16 12:29 UTC
    查看更新说明

    更新了什么?

    1. API接口增加美颜参数
    2. 修复了人脸检测异常时,Gradio显示error的Bug

    What's Changed

    Full Changelog: https://github.com/Zeyi-Lin/HivisionIDPhotos/compare/v1.2.9...v1.3.0

  3. v1.2.92024-09-25 · 2024-09-25 07:22 UTC
    查看更新说明

    更新了什么?

    • Gradio Demo默认照片下载为300DPI
    • Gradio Demo增加插件「JPEG格式」、「五寸相纸」
    • 优化了一些UI显示

    What's updated?

    • Gradio Demo default photo download is 300DPI
    • Gradio Demo added plugins "JPEG format" and "Five Inch Paper"
    • Optimized some UI displays

    What's Changed

    Full Changelog: https://github.com/Zeyi-Lin/HivisionIDPhotos/compare/v1.2.8...v1.2.9

  4. v1.2.82024-09-23 · 2024-09-23 21:49 UTC
    查看更新说明

    🎉10k Star里程碑
    谢谢开源社区与社交媒体中每一位收藏、贡献、分享、推荐HivisionIDPhotos的小伙伴们

    更新了什么?

    • Gradio Demo增加「排版照裁剪线」功能,可以添加供纸质排班照裁剪的线
    • API增加「图像base64」参数,和原来的图像文件上传二选一

    What’s New?

    • The Gradio Demo has added a "Layout Photo Crop Line" feature, which allows you to add lines for cropping printed layout photos.
    • The API has added an "Image Base64" parameter, providing an option between this and the original image file upload.

    What's Changed

    Full Changelog: https://github.com/Zeyi-Lin/HivisionIDPhotos/compare/v1.2.7...v1.2.8

  5. v1.2.72024-09-23 · 2024-09-23 00:48 UTC
    查看更新说明

    更新了什么?

    • API支持DPI设置、人脸旋转矫正
    • 增加环境变量RUN_MODE,可设置为beast(野兽模式),以不释放内存的方式换取更快的模型推理速度
    • 底色选项增加美式证件照
    • 修复在「人脸矫正」下美颜失效的问题
    • 图片下载改为默认png

    What's New?

    • API supports DPI setting, face rotation correction
    • Added the environment variable RUN_MODE, which can be set to beast for faster model inference speed at the cost of not releasing memory.
    • Added a background option for American ID Photo.
    • Fixed the issue where beauty effects were not working under "Face Correction".
    • Changed the default image download format to PNG.

    What's Changed

    Full Changelog: https://github.com/Zeyi-Lin/HivisionIDPhotos/compare/v1.2.6...v1.2.7

用户点评

登录用户的真实使用记录,可按版本和硬件筛选
共 0 条

    还没有人点评。第一个说出真实体验的人最有价值。

    README 原文

    未翻译

    English / 中文 / 日本語 / 한국어


    相关项目:

    • TRIO:一个新型的AI计算平台(Tinker Like),让模型训练者无需维护复杂GPU基础设施,在个人电脑就可以轻松做llm sft/rl训练,训推均按token计费而非GPU时,支持弹性扩展,同时开20个实验不再困难。

    目录

    🤩 最近更新

    • 在线体验: Spaces、、、

    • 2024.11.20: Gradio Demo增加打印排版选项卡,支持六寸、五寸、A4、3R、4R五种排版尺寸

    • 2024.11.16: API接口增加美颜参数

    • 2024.09.25: 增加五寸相纸和JPEG下载选项|默认照片下载支持300DPI

    • 2024.09.24: API接口增加base64图像传入选项 | Gradio Demo增加排版照裁剪线功能

    • 2024.09.22: Gradio Demo增加野兽模式,可设置内存加载策略 | API接口增加dpi、face_alignment参数

    • 2024.09.18: Gradio Demo增加分享模版照功能、增加美式证件照背景选项

    • 2024.09.17: Gradio Demo增加自定义底色-HEX输入功能 | (社区贡献)C++版本 - HivisionIDPhotos-cpp 贡献 by zjkhahah

    • 2024.09.16: Gradio Demo增加人脸旋转对齐功能,自定义尺寸输入支持毫米单位

    项目简介

    🚀 谢谢你对我们的工作感兴趣。您可能还想查看我们在图像领域的其他成果,欢迎来信:[email protected].

    HivisionIDPhoto 旨在开发一种实用、系统性的证件照智能制作算法。

    它利用一套完善的AI模型工作流程,实现对多种用户拍照场景的识别、抠图与证件照生成。

    HivisionIDPhoto 可以做到:

    1. 轻量级抠图(纯离线,仅需 CPU 即可快速推理)
    2. 根据不同尺寸规格生成不同的标准证件照、六寸排版照
    3. 支持 纯离线 或 端云 推理
    4. 美颜
    5. 智能换正装(waiting)

    如果 HivisionIDPhoto 对你有帮助,请 star 这个 repo 或推荐给你的朋友,解决证件照应急制作问题!

    🏠 社区

    我们分享了一些由社区构建的HivisionIDPhotos的有趣应用和扩展:

    HivisionIDPhotos-ComfyUIHivisionIDPhotos-wechat-weapp
    ComfyUI证件照处理工作流证件照微信小程序(JAVA后端+原生前端)
    HivisionIDPhotos-UniappHivisionIDPhotos-web
    证件照微信小程序(uniapp)证件照应用网页版

    🔧 准备工作

    环境安装与依赖:

    • Python >= 3.7(项目主要测试在 python 3.10)
    • OS: Linux, Windows, MacOS

    1. 克隆项目

    git clone https://github.com/Zeyi-Lin/HivisionIDPhotos.git
    cd  HivisionIDPhotos
    

    2. 安装依赖环境

    建议 conda 创建一个 python3.10 虚拟环境后,执行以下命令

    pip install -r requirements.txt
    pip install -r requirements-app.txt
    

    3. 下载人像抠图模型权重文件

    方式一:脚本下载

    python scripts/download_model.py --models all
    # 如需指定下载某个模型
    # python scripts/download_model.py --models modnet_photographic_portrait_matting
    

    方式二:直接下载

    模型均存到项目的hivision/creator/weights目录下:

    人像抠图模型介绍下载
    MODNetMODNet官方权重下载(24.7MB)
    hivision_modnet对纯色换底适配性更好的抠图模型下载(24.7MB)
    rmbg-1.4BRIA AI 开源的抠图模型下载(176.2MB)后重命名为rmbg-1.4.onnx
    birefnet-v1-liteZhengPeng7 开源的抠图模型,拥有最好的分割精度下载(224MB)后重命名为birefnet-v1-lite.onnx

    如果下载网速不顺利:前往SwanHub下载。

    4. 人脸检测模型配置(可选)

    拓展人脸检测模型介绍使用文档
    MTCNN离线人脸检测模型,高性能CPU推理(毫秒级),为默认模型,检测精度较低Clone此项目后直接使用
    RetinaFace离线人脸检测模型,CPU推理速度中等(秒级),精度较高下载后放到hivision/creator/retinaface/weights目录下
    Face++旷视推出的在线人脸检测API,检测精度较高,官方文档使用文档

    5. 性能参考

    测试环境为Mac M1 Max 64GB,非GPU加速,测试图片分辨率为 512x715(1) 与 764×1146(2)。

    模型组合内存占用推理时长(1)推理时长(2)
    MODNet + mtcnn410MB0.207s0.246s
    MODNet + retinaface405MB0.571s0.971s
    birefnet-v1-lite + retinaface6.20GB7.063s7.128s

    6. GPU推理加速(可选)

    在当前版本,可被英伟达GPU加速的模型为birefnet-v1-lite,并请确保你有16GB左右的显存。

    如需使用英伟达GPU加速推理,在确保你已经安装CUDA与cuDNN后,根据onnxruntime-gpu文档找到对应的onnxruntime-gpu版本安装,以及根据pytorch官网找到对应的torch版本安装。

    # 假如你的电脑安装的是CUDA 12.x, cuDNN 8
    # 安装torch是可选的,如果你始终配置不好cuDNN,那么试试安装torch
    pip install onnxruntime-gpu==1.18.0
    pip install torch --index-url https://download.pytorch.org/whl/cu121
    

    完成安装后,调用birefnet-v1-lite模型即可利用GPU加速推理。

    TIPS: CUDA 支持向下兼容。比如你的 CUDA 版本为 12.6,torch 官方目前支持的最高版本为 12.4(<12.6),torch仍可以正常使用CUDA。

    ⚡️ 运行 Gradio Demo

    python app.py
    

    运行程序将生成一个本地 Web 页面,在页面中可完成证件照的操作与交互。

    🚀 Python 推理

    核心参数:

    • -i: 输入图像路径
    • -o: 保存图像路径
    • -t: 推理类型,有idphoto、human_matting、add_background、generate_layout_photos可选
    • --matting_model: 人像抠图模型权重选择
    • --face_detect_model: 人脸检测模型选择

    更多参数可通过python inference.py --help查看

    1. 证件照制作

    输入 1 张照片,获得 1 张标准证件照和 1 张高清证件照的 4 通道透明 png

    python inference.py -i demo/images/test0.jpg -o ./idphoto.png --height 413 --width 295
    

    2. 人像抠图

    输入 1 张照片,获得 1张 4 通道透明 png

    python inference.py -t human_matting -i demo/images/test0.jpg -o ./idphoto_matting.png --matting_model hivision_modnet
    

    3. 透明图增加底色

    输入 1 张 4 通道透明 png,获得 1 张增加了底色的 3通道图像

    python inference.py -t add_background -i ./idphoto.png -o ./idphoto_ab.jpg  -c 4f83ce -k 30 -r 1
    

    4. 得到六寸排版照

    输入 1 张 3 通道照片,获得 1 张六寸排版照

    python inference.py -t generate_layout_photos -i ./idphoto_ab.jpg -o ./idphoto_layout.jpg  --height 413 --width 295 -k 200
    

    5. 证件照裁剪

    输入 1 张 4 通道照片(抠图好的图像),获得 1 张标准证件照和 1 张高清证件照的 4 通道透明 png

    python inference.py -t idphoto_crop -i ./idphoto_matting.png -o ./idphoto_crop.png --height 413 --width 295
    

    ⚡️ 部署 API 服务

    启动后端

    python deploy_api.py
    

    请求 API 服务

    详细请求方式请参考 API 文档,包含以下请求示例:

    🐳 Docker 部署

    1. 拉取或构建镜像

    以下方式三选一

    方式一:拉取最新镜像:

    docker pull linzeyi/hivision_idphotos
    

    方式二:Dockrfile 直接构建镜像:

    在确保将至少一个抠图模型权重文件放到hivision/creator/weights下后,在项目根目录执行:

    docker build -t linzeyi/hivision_idphotos .
    

    方式三:Docker compose 构建:

    在确保将至少一个抠图模型权重文件放到hivision/creator/weights下后,在项目根目录下执行:

    docker compose build
    

    2. 运行服务

    启动 Gradio Demo 服务

    运行下面的命令,在你的本地访问 http://127.0.0.1:7860 即可使用。

    docker run -d -p 7860:7860 linzeyi/hivision_idphotos
    

    启动 API 后端服务

    docker run -d -p 8080:8080 linzeyi/hivision_idphotos python3 deploy_api.py
    

    两个服务同时启动

    docker compose up -d
    

    环境变量

    本项目提供了一些额外的配置项,使用环境变量进行设置:

    环境变量类型描述示例
    FACE_PLUS_API_KEY可选这是你在 Face++ 控制台申请的 API 密钥7-fZStDJ····
    FACE_PLUS_API_SECRET可选Face++ API密钥对应的SecretVTee824E····
    RUN_MODE可选运行模式,可选值为beast(野兽模式)。野兽模式下人脸检测和抠图模型将不释放内存,从而获得更快的二次推理速度。建议内存16GB以上尝试。beast
    DEFAULT_LANG可选Gradio Demo启动时的默认语言en

    docker使用环境变量示例:

    docker run  -d -p 7860:7860 \
        -e FACE_PLUS_API_KEY=7-fZStDJ···· \
        -e FACE_PLUS_API_SECRET=VTee824E···· \
        -e RUN_MODE=beast \
        -e DEFAULT_LANG=en \
        linzeyi/hivision_idphotos  
    

    FAQ

    1. 如何修改预设尺寸和颜色?

    • 尺寸:修改size_list_CN.csv后再次运行 app.py 即可,其中第一列为尺寸名,第二列为高度,第三列为宽度。
    • 颜色:修改color_list_CN.csv后再次运行 app.py 即可,其中第一列为颜色名,第二列为Hex值。

    2. 如何修改水印字体?

    1. 将字体文件放到hivision/plugin/font文件夹下
    2. 修改hivision/plugin/watermark.py的font_file参数值为字体文件名

    3. 如何添加社交媒体模板照?

    1. 将模板图片放到hivision/plugin/template/assets文件夹下。模板图片是一个4通道的透明png。
    2. 在hivision/plugin/template/assets/template_config.json文件中添加最新的模板信息,其中width为模板图宽度(px),height为模板图高度(px),anchor_points为模板中透明区域的四个角的坐标(px);rotation为透明区域相对于垂直方向的旋转角度,>0为逆时针,<0为顺时针。
    3. 在demo/processor.py的_generate_image_template函数中的TEMPLATE_NAME_LIST变量添加最新的模板名

    4. 如何修改Gradio Demo的顶部导航栏?

    • 修改demo/assets/title.md

    5. 如何添加/修改「打印排版」中的尺寸?

    • 修改demo/locales.py中的print_switch字典,添加/修改新的尺寸名称和尺寸参数,然后重新运行python app.py

    📧 联系我们

    如果您有任何问题,请发邮件至 [email protected]

    🙏 感谢支持

    Stargazers repo roster for @Zeyi-Lin/HivisionIDPhotos

    Forkers repo roster for @Zeyi-Lin/HivisionIDPhotos

    Star History Chart

    贡献者们:

    Zeyi-Lin、SAKURA-CAT、Feudalman、swpfY、Kaikaikaifang、ShaohonChen、KashiwaByte

    📜 Lincese

    This repository is licensed under the Apache-2.0 License.

    📚 引用

    如果您在研究或项目中使用了HivisionIDPhotos,请考虑引用我们的工作。您可以使用以下BibTeX条目:

    @misc{hivisionidphotos,
          title={{HivisionIDPhotos: A Lightweight and Efficient AI ID Photos Tool}},
          author={Zeyi Lin and SwanLab Team},
          year={2024},
          publisher={GitHub},
          url = {\url{https://github.com/Zeyi-Lin/HivisionIDPhotos}},
    }