LiYing 可以完成人体、人脸自动识别,角度自动纠正,自动更换任意背景色,任意尺寸证件照自动裁切,并自动排版。
LiYing 可以完全离线运行。所有图像处理操作都在本地运行。
| 一寸 · 5寸相纸 3×3 · 白底 · 裁剪线 | 二寸 · 5寸相纸 2×2 · 蓝底 | 一寸 · 6寸相纸 4×2 · 红底 · 照片旋转90° · RMBG-2.0 | 一寸 · 6寸相纸 4×2 · 深蓝底 · 照片间距 · 左上+右下双布局拼满 |
|---|---|---|---|
![]() |
![]() |
![]() |
![]() |
皮肤美化(--skin-retouch 一键开启,左为原图,右为默认度数 磨皮 0.7 / 美白 0.8 效果)
以上示例均可通过 python docs/scripts/generate_examples.py 复现。
注:本项目仅针对证件照图像处理,而非要求任意照片图像都可以完美执行,所以该项目的输入图片应该是符合一般要求的单人肖像照片。
如果您使用复杂图片制作证件照出现意外情况属于正常现象。
如果你是 Windows 用户且没有代码阅览需求,可以下载整合包(已在 Windows 7 SP1 & Windows 10 测试)
整合包从未包含模型,您可以参考 下载对应模型 章节说明来下载模型并放入正确的位置。
同时如果运行存在问题,请先尝试按照 先决条件 章节完善环境,如果没问题可以忽略。
运行 BAT 脚本:
cd LiYing
run.bat ./images/test1.jpg运行 WebUI 界面:
# 运行 WebUI
cd LiYing
run_webui.bat
# 浏览器访问 127.0.0.1:7860-
依赖项
- LiYing 依赖于 AGPicCompress
- AGPicCompress 需要依赖于 mozjpeg 和 pngquant
- 您可能需要手动安装 pngquant,参考 pngquant 官方文档
-
pngquant 配置位置
- 环境变量(推荐)
- LiYing/src 目录下
- LiYing/src 目录下的
ext目录
-
系统要求
- Windows 用户需要安装最新 Microsoft Visual C++ Redistributable 依赖
- Windows 系统最低要求 Windows 7 SP1 及以上
- 克隆项目:
git clone https://github.com/aoguai/LiYing
cd LiYing ## 进入 LiYing 目录
pip install -r requirements.txt # 安装依赖注: 如果您使用的是 Windows 7 系统请您至少需要是 Windows 7 SP1 以上版本,且要求 onnxruntime==1.14.0, orjson==3.10.7, gradio==4.44.1
如需使用英伟达GPU加速推理,请按以下步骤操作:
- 确保已安装 CUDA 与 cuDNN
- 查找 ONNX、CUDA 与 cuDNN 之间的对应版本
- 安装支持 GPU 的 onnxruntime 版本:
# 如果已安装 CPU 版本,先卸载 pip uninstall onnxruntime # 安装 GPU 版本, 确保版本正确 pip install onnxruntime-gpu
当前版本系统会自动检测是否支持 GPU,如果支持则优先使用 GPU 进行推理,否则会自动回退到 CPU。无需额外配置。
如果存在问题请优先检查且确保使用的 Python 版本 、CUDA 版本 、cuDNN 版本 与 onnxruntime-gpu 版本相互兼容。
您需要下载该项目使用到的模型并将其放置在 LiYing/src/model 中。或者您可以在 CIL 中指定模型路径。
| 用途 | 模型名称 | 下载链接 | 来源 |
|---|---|---|---|
| 人脸识别 | Yunnet / Retinaface(排版可选,美肤必需) | Yunnet 下载链接 / Retinaface 项目链接 | Yunnet / Pytorch_Retinaface |
| 主体识别替换背景 | RMBG-1.4/2.0 | 1.4 下载链接/2.0 下载链接 | BRIA AI |
| 人体识别 | yolov8n-pose | 下载链接 | ultralytics |
| 自动美肤 | cv_unet_skin_retouching_torch / Retinaface | 磨皮下载链接 / Retinaface 项目链接 | ModelScope damo / Pytorch_Retinaface |
注: 对于 yolov8n-pose 模型,您需要将其导出为 ONNX 模型,您可以参考官方文档实现
注: 对于自动美肤功能,您可以参照 skin-retouching-onnxruntime 自行导出 ONNX 模型,将导出的 model.onnx 重命名为 skin_retouch_mask.onnx。
同时,我们提供了转换好的 ONNX 模型,您可以直接下载使用:
| 下载方式 | 链接 |
|---|---|
| Google Drive | 下载链接 |
| Github releases | 下载链接 |
| 百度网盘 | 下载链接(提取码:8gtq) |
查看 CIL 帮助:
cd LiYing/src
python main.py --help对于 Window 用户,项目提供了 bat 运行脚本:
# 运行 BAT 脚本
cd LiYing
run.bat ./images/test1.jpg运行 WebUI:
cd LiYing/src/webui
python app.pypython main.py --help
Usage: main.py [OPTIONS] IMG_PATH
Options:
-y, --yolov8-model-path PATH YOLOv8 模型路径
-u, --yunet-model-path PATH YuNet 模型路径
--face-detector [yunet|retinaface]
排版用人脸检测模型;retinaface 复用美肤的
face_detector.onnx [default: yunet]
-r, --rmbg-model-path PATH RMBG 模型路径
-sz, --size-config PATH 尺寸配置文件路径
-cl, --color-config PATH 颜色配置文件路径
-b, --rgb-list RGB_LIST RGB(A) 通道值列表(英文逗号分隔,可选 Alpha: 0-255),用于图像合成
-s, --save-path PATH 保存路径
-p, --photo-type TEXT 照片类型
-ps, --photo-sheet-size TEXT 选择照片表格的尺寸
-c, --compress / --no-compress 是否压缩图像(使用 AGPicCompress 压缩)
-sv, --save-corrected / --no-save-corrected
是否保存修正图像后的图片
-bg, --change-background / --no-change-background
是否替换背景
-sb, --save-background / --no-save-background
是否保存替换背景后的图像
-lo, --layout-only 仅排版照片,不更换背景
-sr, --sheet-rows INTEGER 照片表格的行数
-sc, --sheet-cols INTEGER 照片表格的列数
-rt, --rotate / --no-rotate 是否旋转照片90度
-rs, --resize / --no-resize 是否调整图像尺寸
--ratio-crop / --no-ratio-crop 按照片打印尺寸比例裁剪,不缩放到电子像素尺寸
-svr, --save-resized / --no-save-resized
是否保存调整尺寸后的图像
-al, --add-crop-lines / --no-add-crop-lines
在照片表格上添加裁剪线
-ts, --target-size INTEGER 目标文件大小(KB)。指定后将忽略质量和大小范围参数。
-szr, --size-range SIZE_RANGE 文件大小范围(KB),格式为最小值,最大值(例如:10,20)
-uc, --use-csv-size / --no-use-csv-size
是否使用CSV中的文件大小限制
-lp, --layout-position INTEGER RANGE
布局位置(0-8):0=左上,1=上,2=右上,3=左中,4=中,5=右中,6=左下,7
=下,8=右下 [0<=x<=8]
--layout / --no-layout 是否生成照片排版图
-psp, --photos-spacing INTEGER 照片间距(像素,默认0)
--face-height-ratio FLOAT 脸大小(0-1,不能为0):越大脸越大;先调此项 [default: 0.3]
--top-margin-ratio FLOAT 头顶留白(0-1):越大脸越下移;脸大小合适后再调此项 [default:
0.175]
--skin-retouch / --no-skin-retouch
开启自动美肤
--skin-retouch-model-dir PATH 美肤模型目录(需包含 skin_retouch_mask.onnx、retouch_ge
nerator.onnx、face_detector.onnx)
--retouch-degree FLOAT RANGE 磨皮程度(0-1) [default: 0.7; 0.0<=x<=1.0]
--whitening-degree FLOAT RANGE 美白程度(0-1) [default: 0.8; 0.0<=x<=1.0]
--help Show this message and exit.人像构图可通过人脸高度和头顶留白分别调整。例如,以下参数会让头像更大并减少头顶留白:
python main.py input.jpg --face-height-ratio 0.55 --top-margin-ratio 0.10在该版本中,在data目录中设置了常规的证件照配置size_XX.csv与常用颜色配置color_XX.csv,您可以自行按照给出的 CSV 模板格式修改或增删配置。
项目根目录执行:
docker compose build在项目根目录执行以下命令:
docker build -t liying/webui:latest .使用以下命令启动 Gradio Web UI 服务:
docker compose up -d启动后,可通过浏览器访问:
http://127.0.0.1:7860
如遇问题,建议先检查模型是否正确放置于 src/model/ 下,并确认端口未被占用。
需要了解更多部署细节或进阶配置,可查看 Dockerfile 和 docker-compose.yml。
该项目的制作初衷和项目名称来源于帮助我的父母更轻松的完成他们的工作,在此感谢我的父母。
同时特别感谢以下项目和贡献者:
提供模型与理论:
或许你会对图片压缩部分感兴趣,那是我另一个开源项目:
它依赖于:
LiYing 是一个开源项目,非常欢迎社区的参与。要为该项目做出贡献,请遵循贡献指南。
LiYing 使用 AGPL-3.0 license 进行开源,详情请参阅 LICENSE 文件。
如果这个项目对您有帮助,欢迎任意赞赏,这对我十分有帮助,感谢您的支持!
USDT(TRON):TWFDp8aZMWZHPXjBodyhfPeK8LUyrWe9mi






