必备工具,AI生成证件照,再也不用麻烦他人,电子驾驶证等多种证件照一键生成
最近有一个生成证件照的开源项目很火,今天我们来学习一下。之前我生成证件照都是线下去拍照,线上使用也是各种限制,需要付费或看广告,而且效果也不是很理想,
今天要分享的这个 AI 证件照生成工具可以一键可以生成一寸照、二寸照、教师资格证、国家公务员考试、社保卡、电子驾驶证、各种签证在内的 18 种证件照片,而且可以选择蓝、白、红、黑、深蓝在内的五种背景证件照片。
如果这些配置项里面的不满足你的要求,你还可以自定义生成各种样式的照片。
只需要上传自拍照片,就可以生成各种证件照,自动排版,一键打印,同时也提供了一键美白功能:
这个就是使用最近火出圈的AI工具:HivisionIDPhotos 来生成的。
该工具支持好几种方式去运行,这里我总结一下:
- 在线Demo,直接运行
- 通过Docker一键运行,本地使用
- 本地安装启动
- 集成到ComfyUI里,利用工作流自定义出图,这个我会重点讲解一下
在线地址
作者提供了线上地址,无需部署,在线直接免费运行。
国内:
https://swanhub.co/ZeYiLin/HivisionIDPhotos/demo
https://modelscope.cn/studios/SwanLab/HivisionIDPhotos
国外:
https://huggingface.co/spaces/TheEeeeLin/HivisionIDPhotos
Docker部署
docker pull linzeyi/hivision_idphotos
docker run -d -p 7860:7860 linzeyi/hivision_idphotos
访问:http://localhost:7860 即可。
如果需要启动后端接口服务则启动如下服务:
docker run -d -p 8080:8080 linzeyi/hivision_idphotos python3 deploy_api.py
本地安装启动
1.下载源码到本地。
git clone https://github.com/Zeyi-Lin/HivisionIDPhotos.git
cd HivisionIDPhotos
2.安装依赖。
pip install -r requirements.txt
pip install -r requirements-app.txt
3.下载权重文件。
- 使用脚本下载
python scripts/download_model.py --models all
- 直接下载放到对应目录
存到项目的 hivision/creator/weights目录下:
1.modnet_photographic_portrait_matting.onnx (24.7MB): MODNet官方权重
下载地址:
https://github.com/Zeyi-Lin/HivisionIDPhotos/releases/download/pretrained-model/modnet_photographic_portrait_matting.onnx
2.hivision_modnet.onnx (24.7MB): 对纯色换底适配性更好的抠图模型
下载地址:
https://github.com/Zeyi-Lin/HivisionIDPhotos/releases/download/pretrained-model/hivision_modnet.onnx
3.rmbg-1.4.onnx (176.2MB): BRIA AI 开源的抠图模型,下载后重命名为rmbg-1.4.onnx
下载地址:
https://huggingface.co/briaai/RMBG-1.4/resolve/main/onnx/model.onnx?download=true
4.birefnet-v1-lite.onnx(224MB): ZhengPeng7 开源的抠图模型,下载后重命名为birefnet-v1-lite.onnx
下载地址:
https://github.com/ZhengPeng7/BiRefNet/releases/download/v1/BiRefNet-general-bb_swin_v1_tiny-epoch_232.onnx
4.人脸检测模型配置(可选)。
拓展人脸检测模型 | 介绍 | 使用文档 |
---|---|---|
MTCNN | 离线人脸检测模型,高性能CPU推理(毫秒级),为默认模型,检测精度较低 | Clone此项目后直接使用 |
RetinaFace | 离线人脸检测模型,CPU推理速度中等(秒级),精度较高 | 下载后放到hivision/creator/retinaface/weights 目录下 |
Face++ | 旷视推出的在线人脸检测API,检测精度较高,官方文档 | 使用文档 |
5.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
在上面配置完后,执行如下命令,然后访问:http://localhost:7860 即可。
python app.py
6.API 服务(可选)。
如果需要启动请求 API 服务,则需要执行如下命令
python deploy_api.py
详细请求方式请参考 API 文档,包含以下请求示例:
- cURL:https://github.com/Zeyi-Lin/HivisionIDPhotos/blob/master/docs/api_CN.md#curl-请求示例
- Python:https://github.com/Zeyi-Lin/HivisionIDPhotos/blob/master/docs/api_CN.md#python-请求示例
- Java:https://github.com/Zeyi-Lin/HivisionIDPhotos/blob/master/docs/api_CN.md#java-请求示例
- Javascript:https://github.com/Zeyi-Lin/HivisionIDPhotos/blob/master/docs/api_CN.md#javascript-请求示例
ComfyUI
插件地址:https://github.com/AIFSH/HivisionIDPhotos-ComfyUI
有 ComfyUI 的小伙伴,只需要在 ComfyUI 管理器搜索:HivisionIDPhotos-ComfyUI 就可以了。当然也可以直接下载到custom_nodes
下面。
同上面下载权重和模型一样的操作,modnet_photographic_portrait_matting.onnx
,hivision_modnet.onnx
,rmbg-1.4.onnx
,birefnet-v1-lite.onnx
,把文件放到ComfyUI/custom_nodes/HivisionIDPhotos-ComfyUI/hivision/creator/weights
目录下面,而RetinaFace下载的模型retinaface-resnet50.onnx
放到ComfyUI/custom_nodes/HivisionIDPhotos-ComfyUI/hivision/creator/retinaface/weights
下面。
加载工作流,选好配置运行结果如下:
节点都比较简单,如ZHHivisionParamsNode
节点:
第一个选项证件照的尺寸,第二个选项是背景颜色,第三个选项是背景的渲染效果,是纯色,还是上下渐变或者中心渐变。
HivisionNode
节点:
head_measure_ratio:头部尺寸比例,值越大,头部占据证件照的比例就越大。
top_distance:头部到图像顶部的距离,值越大,距离越远。
whitening_strength:为美白强度。
AddWaterMarkNode
节点为添加文字水印节点。
- text_color:输入颜色编码,默认是白色。
- text_size:字体的大小。
- text_opacity:水印的透明度。
- text_angle:水印的旋转角度。
- text_space:水印字体间隔。
如我添加“壁虎”文字水印,效果如下:
想要新增证件类型,只需要修改HivisionIDPhotos-ComfyUI\hivision\demo\assets
以下文件就可以了,CN 后缀的代表中文,按照文件中的格式添加就可以了。
- 尺寸:修改size_list_CN.csv后再次运行即可,其中第一列为尺寸名,第二列为高度,第三列为宽度。
- 颜色:修改color_list_CN.csv后再次运行即可,其中第一列为颜色名,第二列为Hex值。
比如我新加类型:自定义配置和紫色。
结果如下:
至此基本的用法我们学会了,但在ComfyUI中我们就可以组合各种模型和Lora去生成自己想要的头像了。
比如我们可以把自己的头像上传,然后结合模型,生成微调的专属头像,或调整眼睛,鼻子,耳朵等等。
同时我们还能对图片进行模糊去噪,放大等。比如我们简单处理后效果如下:
文中所使用到的工作流欢迎关注公众号,回复【工作流】获取。
欢迎大家关注微信公众号"壁虎说技术",更多AI新技术,新点子在公众号第一时间更新。
参考
HivisionIDPhotos
相关文章:

必备工具,AI生成证件照,再也不用麻烦他人,电子驾驶证等多种证件照一键生成
最近有一个生成证件照的开源项目很火,今天我们来学习一下。之前我生成证件照都是线下去拍照,线上使用也是各种限制,需要付费或看广告,而且效果也不是很理想, 今天要分享的这个 AI 证件照生成工具可以一键可以生成一寸…...

深度解析 MintRich 独特的价格曲线机制玩法
随着 Meme 币赛道的迅速崛起,NFT 市场也迎来了新的变革。作为一个创新的 NFT 发行平台,Mint.Rich 正掀起一场全民参与的 NFT 热潮。其简易的操作界面和独特的价格曲线设计,让任何人都能以极低的门槛发行和交易自己的 NFT,从而参与…...

实时数仓3.0DWD层
实时数仓3.0DWD层 DWD层设计要点:9.1 流量域未经加工的事务事实表9.1.1 主要任务9.1.2 思路9.1.3 图解9.1.4 代码 9.2 流量域独立访客事务事实表9.2.1 主要任务9.2.2 思路分析9.2.3 图解9.2.4 代码 9.3 流量域用户跳出事务事实表9.3.1 主要任务9.3.2 思路分析9.3.3 …...

路径规划 | 基于A*算法的往返式全覆盖路径规划的改进算法(Matlab)
目录 效果一览基本介绍程序设计参考文献 效果一览 基本介绍 基于A*算法的往返式全覆盖路径规划的改进算法 matlab实现代码 往返式全覆盖路径规划,通过建立二维栅格地图,设置障碍物,以及起始点根据定义往返式路径规划的定义的优先级运动规则从…...

QT 串口上位机读卡显示
目录 一. QT创建工程 二. 软件更换图标 三. QT打包 一. QT创建工程 文件新建,选择创建一个桌面QT。 重命名RFID,并选择工程保存路径 RFID.pro QT core gui serialport #串行串口greaterThan(QT_MAJOR_VERSION, 4): QT widgetsTARGET RFID TE…...

Chrome谷歌浏览器登录账号next无反应
文章目录 问题描述 我们的Chrome浏览器在更新之后,会出现登录谷歌账号的时候,当你输入你的谷歌邮箱之后,点击 n e x t next next,也就是下一步的时候,页面没有反应,也就是没有跳转到输入密码的页面。 分析 根据logs里…...

Android相关线程基础
线程基础 进程与线程 进程:可以被看做是程序的实体, 是系统进行资源分配和调度的基本单位. 线程:是操作系统调度的最小单元, 也叫轻量级进程 使用多线程的优点 可以减少程序的响应时间。如果某个操作很耗时, 能够避免陷入长时间的等待, 从而有着更好的交互性. 线程较之进…...

uniapp 如何自定义导航栏并自适应机型
如今的移动设备有各种不同的屏幕形状,如刘海屏、水滴屏等。这些异形屏会影响页面的布局,尤其是导航栏和底部栏的显示。通过获取安全区域信息,可以确保页面内容不会被异形屏的特殊区域遮挡。 在设计页面顶部导航栏时,可以根据 saf…...

Java高级Day43-类加载
117.类加载 静态和动态加载 反射机制是java实现动态语言的关键,也就是通过反射实现类动态加载 静态加载:编译时加载相关的类,如果没有则报错,依赖性太强 动态加载:运行时加载需要的类,如果运行时不用该类…...
【LeetCode 算法笔记】155. 最小栈
目录 问题描述单个栈实现双栈实现不开辟额外空间 问题描述 设计一个支持 push ,pop ,top 操作,并能在常数时间内检索到最小元素的栈。 实现 MinStack 类: MinStack() 初始化堆栈对象。 void push(int val) 将元素val推入堆栈。 void pop()…...

面试题 05.01. 插入
目录 一:题目: 二:代码: 三:结果: 一:题目: 给定两个整型数字 N 与 M,以及表示比特位置的 i 与 j(i < j,且从 0 位开始计算)。…...
稠密向量检索、稀疏向量检索、BM25检索三者对比
在当今的信息检索领域,随着人工智能和自然语言处理技术的发展,稠密向量检索和稀疏向量检索成为了两种主要的研究方向。稠密向量检索依托于高维空间中的向量表示,能够捕捉文档的深层语义信息,而稀疏向量检索则侧重于关键词的匹配&a…...
UEFI学习笔记(六):EDK II 模块:Libraries,DriversApplication
UEFI学习笔记(六):EDK II Modules:Libraries,Application&Drivers 一、模块(Modules)的概念1、Library模块2、Application模块3、Driver模块4、Application和Driver的区别 二、EDK II 实现U…...
详解 Pandas 的透视表函数
Pandas 的透视表函数主要为 pivot() 和 pivot_table(),主要的功能为对 DataFrame 的行和列进行重新组合来重塑数据。 一、pivot 函数 pivot 函数只能对数据进行重塑,不能进行聚合 1. 数据准备 import pandas as pddf1 pd.DataFrame({department_id: […...

基于python+django+vue的农业管理系统
作者:计算机学姐 开发技术:SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等,“文末源码”。 专栏推荐:前后端分离项目源码、SpringBoot项目源码、SSM项目源码 系统展示 【2025最新】基于pythondjangovueMySQL的农…...

动态内存管理之malloc,free,calloc和realloc函数
Hello,各位小伙伴们,小编在这里祝福各位中秋佳节快乐呀,今天让我们来学习一下动态内存管理吧! 引言 像我们之前在开辟一段空间的时候你可能会使用整型变量来申请一块空间,或者使用数组来申请一段连续的空间ÿ…...

Android 13 固定systemUI的状态栏为黑底白字,不能被系统应用或者三方应用修改
目录 一.背景 二.思路 三.代码流程 1.colos.xml自定义颜色 2.设置状态栏的背景颜色 3.对View进行操作 ①.对Clock(状态栏左侧的数字时钟)进行操作 ②.对电池(BatteryMeterView)进行操作 4.锁屏状态栏 5.patch汇总 一.背景 客户需求将状态栏固定成黑底白字,并且不能让系…...

【CTF Reverse】XCTF GFSJ1092 easyEZbaby_app Writeup(Android+逆向工程+Java)
easyEZbaby_app 究极简单的安卓逆向 解法 得到一个 apk 安装包。 用 jadx 打开,搜索文本 flag,加载所有。 flag 是 obj obj2,来自用户的用户名和密码。 Override // android.view.View.OnClickListenerpublic void onClick(View view) {St…...
ubuntu 22.04 ~24.04 如何修改登录背景
ubuntu 22.04 ~24.04 如何修改登录背景 背景:由于22.04 登录gdm的变更,之前的修改登录背景的方案已经无法使用。现在给大家分享新的使用方法: 1,下载如下路径的脚本: https://download.csdn.net/download/xdhyqd/89…...

Andrej Karpathy谈AI未来:自动驾驶、Transformer与人机融合
引言 在人工智能领域,Andrej Karpathy 是一个无法忽视的名字。从他早期在 OpenAI 的工作,到后来担任 Tesla 的 AI 主管,他在自动驾驶、深度学习等方面的贡献广为人知。最近,卡帕西做客了著名的播客节目 No Priors,他在…...
KubeSphere 容器平台高可用:环境搭建与可视化操作指南
Linux_k8s篇 欢迎来到Linux的世界,看笔记好好学多敲多打,每个人都是大神! 题目:KubeSphere 容器平台高可用:环境搭建与可视化操作指南 版本号: 1.0,0 作者: 老王要学习 日期: 2025.06.05 适用环境: Ubuntu22 文档说…...

MPNet:旋转机械轻量化故障诊断模型详解python代码复现
目录 一、问题背景与挑战 二、MPNet核心架构 2.1 多分支特征融合模块(MBFM) 2.2 残差注意力金字塔模块(RAPM) 2.2.1 空间金字塔注意力(SPA) 2.2.2 金字塔残差块(PRBlock) 2.3 分类器设计 三、关键技术突破 3.1 多尺度特征融合 3.2 轻量化设计策略 3.3 抗噪声…...

超短脉冲激光自聚焦效应
前言与目录 强激光引起自聚焦效应机理 超短脉冲激光在脆性材料内部加工时引起的自聚焦效应,这是一种非线性光学现象,主要涉及光学克尔效应和材料的非线性光学特性。 自聚焦效应可以产生局部的强光场,对材料产生非线性响应,可能…...

黑马Mybatis
Mybatis 表现层:页面展示 业务层:逻辑处理 持久层:持久数据化保存 在这里插入图片描述 Mybatis快速入门 
JavaScript 中的 ES|QL:利用 Apache Arrow 工具
作者:来自 Elastic Jeffrey Rengifo 学习如何将 ES|QL 与 JavaScript 的 Apache Arrow 客户端工具一起使用。 想获得 Elastic 认证吗?了解下一期 Elasticsearch Engineer 培训的时间吧! Elasticsearch 拥有众多新功能,助你为自己…...
C++中string流知识详解和示例
一、概览与类体系 C 提供三种基于内存字符串的流,定义在 <sstream> 中: std::istringstream:输入流,从已有字符串中读取并解析。std::ostringstream:输出流,向内部缓冲区写入内容,最终取…...
土地利用/土地覆盖遥感解译与基于CLUE模型未来变化情景预测;从基础到高级,涵盖ArcGIS数据处理、ENVI遥感解译与CLUE模型情景模拟等
🔍 土地利用/土地覆盖数据是生态、环境和气象等诸多领域模型的关键输入参数。通过遥感影像解译技术,可以精准获取历史或当前任何一个区域的土地利用/土地覆盖情况。这些数据不仅能够用于评估区域生态环境的变化趋势,还能有效评价重大生态工程…...

Ascend NPU上适配Step-Audio模型
1 概述 1.1 简述 Step-Audio 是业界首个集语音理解与生成控制一体化的产品级开源实时语音对话系统,支持多语言对话(如 中文,英文,日语),语音情感(如 开心,悲伤)&#x…...
【RockeMQ】第2节|RocketMQ快速实战以及核⼼概念详解(二)
升级Dledger高可用集群 一、主从架构的不足与Dledger的定位 主从架构缺陷 数据备份依赖Slave节点,但无自动故障转移能力,Master宕机后需人工切换,期间消息可能无法读取。Slave仅存储数据,无法主动升级为Master响应请求ÿ…...
【JavaSE】绘图与事件入门学习笔记
-Java绘图坐标体系 坐标体系-介绍 坐标原点位于左上角,以像素为单位。 在Java坐标系中,第一个是x坐标,表示当前位置为水平方向,距离坐标原点x个像素;第二个是y坐标,表示当前位置为垂直方向,距离坐标原点y个像素。 坐标体系-像素 …...