婚礼跟拍的照片交片前,要先挑掉闭眼、手抖、跑焦和过曝的照片,再把抢眼的背景杂物修干净。你可以手动用照片查看器逐组筛,也可以在本机跑脚本,把筛片结果保存成 CSV;局部修图时只把背景区域贴回原片,减少 AI 改动人物的机会。

14 张 AI 生成的婚礼样片经过本机脚本初筛后的结果14 张 AI 生成的婚礼样片经过本机脚本初筛后的结果

本文样片全是 AI 生成的人物,不是真人。2026 年 10 月 5 日的测试中,脚本在这 14 张样片里标出了预先设置的闭眼、模糊和过曝照片,耗时约 3 秒。真实相机照片、不同光线和不同脸部角度可能有误判,结果只作初筛,摄影师要逐张确认后再删除或交片。

下载婚礼选片与局部修图脚本包。压缩包里有初筛脚本、局部合成脚本、ComfyUI 图片编辑脚本和环境说明。脚本在本机处理照片,不需要把客户照片发到云端。

先选一条路

  • 只处理一场婚礼:在电脑照片查看器里按拍摄顺序逐组放大看,手动挑闭眼、虚焦和表情不合适的照片,不必装模型。
  • 经常要筛大量照片:运行本机脚本生成 CSV,再人工复核。适合有 Python 基础、愿意花时间装模型的摄影师。
  • 还要去掉背景杂物:用本机 ComfyUI 和 FLUX.2 Klein 处理一块裁图,再用脚本把结果限制在背景区域。

你需要准备

内容 用途
电脑和全尺寸 JPG 筛片脚本只读 JPG;RAW 可以先用本地软件导出全尺寸 JPG
Python 3.12 运行筛片与合成脚本;初次安装见《装好 Python 和虚拟环境》
MediaPipe、YuNet 模型 本机找脸、计算闭眼和清晰度;没有 API Key 或按张调用费,安装与下载命令见下文
ComfyUI 和 FLUX.2 Klein 4B(可选) 本机编辑裁块;不做局部修图就不用安装

在本机筛照片

1. 准备照片文件夹

把一场活动的 JPG 放进同一个文件夹。尽量保留相机原来的文件名和拍摄时间信息;如果有多台相机,分开放。脚本按文件名顺序读取相邻照片:有 EXIF 拍摄时间时,间隔不超过 2 秒的照片会归为一组;缺少时间信息时,它会用缩小后的画面相似度粗略分组。

别用聊天软件里的缩略图。脸太小的话,眯眼、大笑和真闭眼容易分不清。

2. 安装依赖并下载两个模型

解压脚本包,在终端进入解压目录。创建独立环境并安装依赖:

python3.12 -m venv .venv
source .venv/bin/activate
python -m pip install mediapipe==0.10.21 pillow

Windows PowerShell 激活命令是 .venv\Scripts\Activate.ps1。我们在 Mac 上遇到 MediaPipe 1.0.1 的 GPU 初始化问题,因此样例固定使用 0.10.21,并让人脸关键点在 CPU 上运行。

在解压目录创建 models 文件夹,并把下面两个模型保存到对应文件名:

两个模型都在本机运行。使用模型前看各自仓库的许可和用途说明。

3. 运行筛片

在解压目录运行,替换为你的照片文件夹和 CSV 保存位置:

python s226_cull.py "婚礼照片" "选片结果.csv"

脚本会在终端显示每张照片的组号、建议和原因,并把相同信息写进 CSV。它先用 YuNet 找出主要人物,再用 MediaPipe 估算闭眼程度;清晰度只和同一组照片比较,纯白像素比例用于提示过曝。没有人脸、低头、侧脸或灯光复杂时都可能误判。脚本不会自动删照片。

我们的测试集只有 14 张 AI 生成样片。按当时预设的答案,闭眼、手抖、跑焦和过曝都被标出;低头看戒指的照片没有被判成闭眼。这不是准确率保证,也不能替代摄影师看片。

只修背景,不重画人物

修图前保留原片副本。以下步骤都在本机完成;ComfyUI 按本机服务处理图片,不调用在线图片 API。

1. 用本地工具修一块裁图

按《珠宝、手表反光商品修图》里的 ComfyUI 安装说明准备 FLUX.2 Klein 4B。用电脑自带的图片编辑器从原片裁出一块 1024×1024 的背景区域,记下它在原图中的左上角坐标 x,y。裁图里不要包含需要保留的人脸。

把裁图保存为 背景裁块.jpg,在脚本包目录运行:

python s086_klein_edit.py 背景裁块.jpg 背景修好.png "去掉画面左边穿玫红色长裙的宾客,用后面的草坪和椅子自然补上。不要改变其他人物、脸、衣服和场景。"

ComfyUI 需要已启动,并加载 FLUX.2 Klein 4B、Qwen 3 4B 文本编码器和 Flux VAE。模型下载与安装步骤见《珠宝、手表反光商品修图》。本机 M1 Max 的一块裁图约需 95 秒;其他设备会不同。

2. 只把背景区域合回原片

把修好的裁块贴回原图时,先圈住要替换的背景。边界尽量放在人物和物体以外,再留出一点羽化距离。坐标都是原片像素,格式为 x0,y0,x1,y1:

python s226_retouch_local.py 原片.jpg 背景修好.png 精修.png 0,250,1024 0,300,215,1300 140,370,268,560 210,1080,240,1300

命令里的裁切框 0,250,1024 表示左上角 (0,250)、边长 1024;后面三个框是要贴回的背景区域。示例坐标只适用于对应的样片,换照片后要重新量。脚本会输出无损 PNG 和一张 _diff.png 差异图;PNG 中羽化范围以外的像素保持原片数值。若最后另存为 JPEG,压缩会改变全图像素。

局部修图对比:AI 原始裁块会重画整块,只合成指定背景框能保留其余原片局部修图对比:AI 原始裁块会重画整块,只合成指定背景框能保留其余原片

打开差异图放大检查边缘、头发、衣服和背景。发现重影、漏色或边缘不自然,就调整框的位置后再合成。AI 编辑结果仍可能改变裁块里的路人或周围纹理,因此只选择确实要替换的区域。

接单和交付

可以把「初筛报告」「局部背景修图」拆开报价,按照片数量、需要修的区域和复核时间估算工时,再去摄影服务平台查看同类报价。交付前保留原片、精修 PNG 和 CSV;合同里写清筛片只是建议、摄影师负责最终取舍,以及精修只改哪些背景区域。

客户照片和人脸信息要按约定用途处理、限制访问并按约定时间删除。人脸属于生物识别信息;《个人信息保护法》将生物识别列为敏感个人信息,处理敏感个人信息要有特定目的和充分必要性、采取严格保护措施,并取得单独同意。未经新人和照片中其他人的许可,不要把照片用于作品集或公开发布。

常见问题

相机拍的是 RAW,能直接筛吗? 不能。先在本地导出全尺寸 JPG,筛完再回到 RAW 修图。

脚本说闭眼,照片看起来只是低头怎么办? 以原片为准。低头、眯眼、眼镜反光和侧脸都可能影响模型判断,不要批量删除 CSV 标记的照片。

没有 ComfyUI 怎么去掉路人? 先用本地修图软件手动处理,或只交付选片 CSV。想用 AI 时再按 ComfyUI 教程安装本机模型。

可以把客户照片上传到云端模型筛片吗? 本文脚本不需要云端模型。若另选云服务,先确认合同授权、服务的数据处理方式和客户同意,再决定是否上传。

工具清单

相关教程