去过照相馆的人都知道,拍完照片之后最耗时间的不是拍照本身,是后期。换背景、裁尺寸、排版、压缩,一套流程下来半小时打底。有个人用 Python 写了个程序,把这些全自动化了,3200 多个 star。
LiYing 的思路很清晰,你给它一张单人肖像照,它自动完成人脸检测、角度纠正、背景替换、尺寸裁切、排版出图。整个过程不需要 Photoshop,不需要手动操作,跑完直接拿去打印。

技术实现上,它用了三个核心模型。人脸检测基于 YuNet,人体分割用 RMBG-1.4 和 RMBG-2.0,姿态估计用 YOLOv8n-Pose。这三个模型都是 ONNX 格式,纯 CPU 就能跑,不需要 GPU。当然如果你有 NVIDIA 显卡,装上 CUDA 和 cuDNN 可以走 GPU 加速,速度快很多。

操作方式有两种。会写代码的人可以跑 CLI,一条命令搞定。
python main.py --photo-type 证件照 --size-config 尺寸.csv 图片路径
不想碰命令行的人可以开 WebUI,浏览器打开 127.0.0.1:7860,拖拽上传,点几下按钮就行。界面用 Gradio 做的,支持批量处理。
参数非常细。证件照类型(一寸、两寸、护照、签证)、尺寸配置文件、背景颜色(支持 RGB 自定义)、是否压缩、是否旋转、是否裁切、是否添加裁切线、照片间距、排版位置(0 到 8 个位置可选),基本上照相馆后期能调的东西它都考虑到了。

举个例子,你拍了一张一寸照片,想在 5 寸相纸排 3x3 共 9 张。LiYing 会自动把人像居中裁切到一寸比例,换成蓝色背景,然后按 3x3 排列到 5 寸画布上,加上裁切线。你直接拿这个文件去打印店就行。
背景替换这块有个细节,它用的是 AGPicCompress,底层依赖 mozjpeg 和 pngquant 做压缩。这意味着输出的文件体积很小,但画质损失几乎看不出来。证件照对文件大小通常有要求(比如不能超过 200KB),这个功能很实用。
安装方式分两种。Windows 用户可以直接下载整合包,解压就能用(支持 Windows 7 SP1 和 Windows 10)。模型文件需要单独下载放到指定目录。想从源码跑的人,clone 仓库、pip install 依赖、下载模型三步搞定。
它还支持 Docker 部署,给需要批量处理的照相馆提供了容器化方案。
这个项目的定位很精准,不追求通用图像处理,只做证件照这一件事。所以它的模型训练、参数调优、排版逻辑都是围绕证件照场景设计的,出来的效果比通用工具好很多。
你要是开照相馆、经常需要处理证件照,或者只是想自己在家做证件照省 50 块钱,这个工具都能帮上忙。
项目地址:https://github.com/aoguai/LiYing(3.2k ⭐)