必备工具,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,他在…...

19c补丁后oracle属主变化,导致不能识别磁盘组
补丁后服务器重启,数据库再次无法启动 ORA01017: invalid username/password; logon denied Oracle 19c 在打上 19.23 或以上补丁版本后,存在与用户组权限相关的问题。具体表现为,Oracle 实例的运行用户(oracle)和集…...
基于Uniapp开发HarmonyOS 5.0旅游应用技术实践
一、技术选型背景 1.跨平台优势 Uniapp采用Vue.js框架,支持"一次开发,多端部署",可同步生成HarmonyOS、iOS、Android等多平台应用。 2.鸿蒙特性融合 HarmonyOS 5.0的分布式能力与原子化服务,为旅游应用带来…...

dedecms 织梦自定义表单留言增加ajax验证码功能
增加ajax功能模块,用户不点击提交按钮,只要输入框失去焦点,就会提前提示验证码是否正确。 一,模板上增加验证码 <input name"vdcode"id"vdcode" placeholder"请输入验证码" type"text&quo…...

P3 QT项目----记事本(3.8)
3.8 记事本项目总结 项目源码 1.main.cpp #include "widget.h" #include <QApplication> int main(int argc, char *argv[]) {QApplication a(argc, argv);Widget w;w.show();return a.exec(); } 2.widget.cpp #include "widget.h" #include &q…...

PL0语法,分析器实现!
简介 PL/0 是一种简单的编程语言,通常用于教学编译原理。它的语法结构清晰,功能包括常量定义、变量声明、过程(子程序)定义以及基本的控制结构(如条件语句和循环语句)。 PL/0 语法规范 PL/0 是一种教学用的小型编程语言,由 Niklaus Wirth 设计,用于展示编译原理的核…...
C# SqlSugar:依赖注入与仓储模式实践
C# SqlSugar:依赖注入与仓储模式实践 在 C# 的应用开发中,数据库操作是必不可少的环节。为了让数据访问层更加简洁、高效且易于维护,许多开发者会选择成熟的 ORM(对象关系映射)框架,SqlSugar 就是其中备受…...
Rapidio门铃消息FIFO溢出机制
关于RapidIO门铃消息FIFO的溢出机制及其与中断抖动的关系,以下是深入解析: 门铃FIFO溢出的本质 在RapidIO系统中,门铃消息FIFO是硬件控制器内部的缓冲区,用于临时存储接收到的门铃消息(Doorbell Message)。…...
在web-view 加载的本地及远程HTML中调用uniapp的API及网页和vue页面是如何通讯的?
uni-app 中 Web-view 与 Vue 页面的通讯机制详解 一、Web-view 简介 Web-view 是 uni-app 提供的一个重要组件,用于在原生应用中加载 HTML 页面: 支持加载本地 HTML 文件支持加载远程 HTML 页面实现 Web 与原生的双向通讯可用于嵌入第三方网页或 H5 应…...

ABAP设计模式之---“简单设计原则(Simple Design)”
“Simple Design”(简单设计)是软件开发中的一个重要理念,倡导以最简单的方式实现软件功能,以确保代码清晰易懂、易维护,并在项目需求变化时能够快速适应。 其核心目标是避免复杂和过度设计,遵循“让事情保…...

安宝特方案丨船舶智造的“AR+AI+作业标准化管理解决方案”(装配)
船舶制造装配管理现状:装配工作依赖人工经验,装配工人凭借长期实践积累的操作技巧完成零部件组装。企业通常制定了装配作业指导书,但在实际执行中,工人对指导书的理解和遵循程度参差不齐。 船舶装配过程中的挑战与需求 挑战 (1…...