Odel
PhotoS

PhotoS

Local
@dongwu259PythonMITUpdated 5 days ago

Batch photo processing: compress, convert, EXIF, rename, dedup, cull, galleries

📷 PhotoS

Python Platform License Weights PyPI

CLI 给 AI agent 用,GUI 给人用。 PhotoS 是一个跨平台批量照片处理工具箱: 给摄影师一套完整的 Tkinter GUI(v2.2 工作区:图库 / 修图(真实管线实时预览 + 直方图 + 旁侧调整工具 + 照片间复制粘贴设置 + 逐照片撤销)/ 导出(照片队列 + 输出设置 + 命名导出配方)/ 工具四大模块,含审查打分灯箱、去重查看器), 给 AI agent 一套带统一版本化 JSON 契约的 CLI / REST / MCP 接口。

🖥 GUI 给人用 — ⌨️ CLI 给 AI agent 用 — pip install photo-s-tools

中文 · English


🤖 为 AI agent 而生

PhotoS 首先是一个 AI agent 就绪的图像管线:四条集成通道,全部挂在同一个 版本化 JSON 契约上(schema_version,加性演进——升级永不破坏消费者)。

通道接入方式
MCP server — 30 核心工具 + 插件自动注册(process / suggest / autopilot / index / find / select / hdr / blurfaces / dedup …)claude mcp add photo-s -- photo-s mcp
现成 SKILL.md — 支持 skill 的 agent 即取即用,零额外依赖cp -r skills/photo-s ~/.claude/skills/
REST API — 异步任务 + SSE 进度photo-s serve --port 0 --token auto --ready-file x.json
Python 库直调 — 无 IPC 开销from photo_s.engine import batch_process

所有输出带 schema_version;JSON 键永远英文;单文件错误不中断整批; 破坏性操作必须显式传参。完整契约见 docs/AGENT_API.md


✨ 功能特性

功能GUICLI说明
批量压缩JPEG/WebP/HEIC/AVIF 质量调优、色度子采样(444/422/420)
目标体积模式自动调优质量以控制在目标文件体积以内
格式转换JPEG / PNG / WebP / TIFF / BMP / HEIC / AVIF
RAW 解码22+ 种相机 RAW 格式,内置支持(rawpy/libraw);去马赛克算法可选、色彩空间(sRGB/AdobeRGB/ProPhotoRGB)、16-bit TIFF 输出、自动打 sRGB ICC
缩放 / 比例最大尺寸、百分比或最长边上限
视觉预览原图↔处理后实时并排预览(经真实管线渲染,v2.4 含逐照片调整注入)
影调与色彩亮度/对比度/饱和度/伽马/锐化,黑白、复古
导出锐化LR 式输出级 USM,半径随输出分辨率缩放
白平衡色温 K,或灰卡采样
WB tint 轴绿(-)/品红(+) G-M 轴
点曲线 / 色阶PCHIP 点曲线,手动黑/白场/伽马
三向颜色分级阴影/中间调/高光 色相 + 饱和分区
HSL 分色8 色域,色相/饱和/亮度偏移
点颜色取样色定向色相/饱和/亮度 + 范围容差
局部蒙版命名线性/径向/颜色范围蒙版,蒙版内 11 项局部调整
镜头矫正手动畸变 k1 / 去暗角 / 消色差(纯 numpy);用户维护的命名镜头档案
感知分析直方图/通道统计/色温倾向/曝光/模糊(analyze
参数推荐规则型 suggest:分析统计 → 保守修复参数 + 理由(零模型离线)
自然饱和度 / 清晰度 / 纹理反向加权饱和,局部对比
去雾 / 暗角 / 颗粒暗通道去雾,径向暗角,胶片颗粒
曝光曝光档位调整,或自动归一化到目标
自动色阶2% 裁切直方图拉伸
高光恢复LR 式:压缩硬切高光,恢复出渐变细节
LOG 还原SLOG3/CLOG3/LOGC3/DLOG/VLOG/HLG(1D LUT,零依赖)
LUT 调色.cube 三线性(插件加四面体 + 5 个电影预设)
降噪✅¹NLM([enhance] 可选依赖)
自动扶正✅¹校正地平线,置信度门控([enhance] 可选依赖)
HDR 合并✅¹曝光融合,手持对齐([enhance] 可选依赖)
人脸模糊✅¹模糊或马赛克人脸,Haar cascade([enhance] 可选依赖)
抠图 / 背景移除AI 分割(subject/person/object:类别)或颜色键控(color:R,G,B[tol,feather,invert]——白底文字/logo 专用)→ alpha 透明输出,PNG/WebP/TIFF/AVIF/HEIC(JPEG 按文件报错,绝不静默拍平)
裁剪 / 旋转 / 翻转 / 留边统一比例裁剪 + 任意几何
打印尺寸中心裁剪 + 指定 DPI 的精确打印像素
智能重命名日期/相机/序号模板
自动整理归档日期/相机子文件夹归类
水印文字 + 图片水印,7 个位置
多尺寸输出一份输入,N 份带标签输出
元数据打标评分/关键词/标题批量打标(UserComment)
元数据筛选按评分/关键词筛出照片
元数据导入从表格批量写入
选片(筛选)曝光/清晰度筛选(GUI 仅保留符合项,可撤销);--score 质量评分排序 + --burst 连拍组留最佳
选片归档(评分)按评分分拣——精选/淘汰双阈值(≥4 精选、≤2 淘汰)
连拍选图每组保留最清晰
校验和清单SHA-256 归档完整性 + 校验
HTML 画廊自包含 index.html + 缩略图
预设保存/加载命名配置 + 内置 lr-look(LR 风格:S 曲线+自然饱和+导出锐化)
多配置批量一份输入,N 份输出配置
并行处理多线程
JSON 输出供 AI agent 消费的机器可读输出
配置文件TOML 默认值
EXIF 编辑批量版权/作者/GPS
预设一键套用一键套用已存风格
EXIF 日期偏移时区/相机时钟修正
隐私清理移除 EXIF + ICC + GPS
同步日期输出 mtime ← EXIF 拍摄时间
文件夹监视自动处理新文件([watch] 可选依赖)
自动旋转基于 EXIF Orientation
图片去重感知哈希重复检测
质量指标SSIM / 模糊分
CSV 报告逐文件统计
完整性检查损坏文件扫描
联系表网格拼图
色彩管理sRGB / CMYK 展平
REST API供 agent 使用的 HTTP 服务(异步任务 + SSE 进度)
插件系统第三方插件支持
官方插件管理list/install/info/fetch + pip 安装
MCP server向 MCP 客户端(Claude Desktop / Claude Code / 任意客户端)暴露 30 个核心工具(插件自动追加)
批量基准并发扩展实测
AI 识别蒙版✅¹主体/人物/物体(80 类)一键生成蒙版,U2Netp/HumanSeg/YOLOv8n-seg(v1.8,onnx 权重自动下载校验)
笔刷 + 组合蒙版笔刷涂抹蒙版;A&B / A-B 组合引用已命名蒙版(v1.8)
AI 自动调色auto-tone 官方插件:CLIP+MLP 预测 9 项全局参数 + RAG 检索历史修图(权重 CC-BY-NC 4.0,非商用);v2.3 引擎槽位接线(--auto-tone),装后 MCP/REST 工具自动注册;v2.4 Develop「AI 调色」按钮——参数写入逐照片覆盖层,可微调/可撤销;v2.4 局部调整词汇表(模型预测 subject/person/object 蒙版内调整,经蒙版管线应用) + 美学 verifier(audit --aesthetic,SigLIP 头/Qwen 终审)
LR 数据桥lr-scan 扫描 Lightroom 目录/XMP → 训练数据;lr-train/lr-predict 岭回归基调模型;lr-merge 合并多机数据包(v1.9)
XMP 写出(LR 双向互通)xmp-export / batch --write-xmp:PhotoS 调整写成 LR 可读 .xmp sidecar(crs 字段逐项逆映射 + radial/linear 蒙版 + 评分/关键词),LR 打开原图即续修(v2.5)——「agent 用的 Lightroom」写出侧收口
无人值守管线autopilot:监视目录 → suggest/auto-tone → audit 闸门 → passed/review 分流 + JSONL 轨迹;--write-xmp 让人工在 LR 里修正,回采即残差训练信号(v2.5)
语义搜索 / 自动打标index 建嵌入索引(SigLIP 文本+图像 / 内置 84 维直方图),find 中英文文本或以图搜图;--tags 自动打标写 EXIF/XMP 关键词(v2.5)
出片审计audit 质量闸门(pass/fail + 原因,agent 终止条件);--aesthetic 1-10 模型美学闸门(v2.4,auto-tone 插件:SigLIP 头/Qwen 终审);diff 前后对比;preview base64 快照(v1.9)
GPS 地理标记GPX 轨迹插值写 GPS EXIF(时区偏移自动换算,跨日期变更线正确插值)
SCUNet 强降噪官方插件(ONNX):强度感知混合 + 分块推理,大图不 OOM

¹ 降噪 / 自动扶正 / HDR / 人脸模糊需要可选依赖: pip install photo-s-tools[enhance](opencv-python-headless)。 未安装时给出明确安装提示,不影响其余功能。


📦 安装

pip install photo-s-tools            # 核心——内置 RAW 解码(rawpy)
pip install "photo-s-tools[enhance]" # + opencv:人脸模糊 / HDR / 降噪 / 扶正
pip install "photo-s-tools[tiff16]"  # + tifffile:16-bit RAW → TIFF 输出
pip install "photo-s-tools[mcp]"     # + MCP server(Python 3.10+)

零安装(uvx):uvx --from photo-s-tools photo-s --help · uvx --from "photo-s-tools[mcp]" photo-s mcp

🚀 快速上手

photo-s batch 'RAW/*.ARW' --format jpeg -o out/ -q 90   # 批量 RAW → JPEG
photo-s batch 'RAW/*.ARW' -o out/ -q 95 --jpeg-subsampling 444 \
  --raw-demosaic amaze                                # 极致画质 RAW → JPEG
photo-s batch 'RAW/*.ARW' -o out/ --preset lr-look      # 内置 LR 风格出片
photo-s compress *.jpg --target-size 5MB -j 8           # 自动调优到 ≤5MB
photo-s select ~/shoot/ -r --selects-dir 精选 --rejects-dir 淘汰 --dry-run
photo-s hash ~/deliver/ -o manifest.csv --verify manifest.csv

photo-s --help 列出全部 35 个子命令。语言:--language en|zh|auto


🧭 文档

文档内容
docs/FEATURES.md完整功能清单——35 个 CLI 命令、引擎管线
docs/AGENT_API.mdAgent 契约:JSON 结构、退出码、REST、MCP
docs/PLUGINS.md插件系统:SCUNet 降噪、LUT、自己写插件
docs/GUI_CHANGES.mdGUI 行为与接口契约
docs/ROADMAP.md版本路线(v1.6.0:Lightroom 方向调色)
docs/COMMERCIAL.md商用授权:双许可说明、边界判定表与 FAQ

命名:PyPI 发行名 photo-s-tools(原名 photo-s 被 PyPI 拦截)· CLI 命令 photo-s · Python 包 photo_s · 品牌 PhotoS


⚠️ 限制与说明

PhotoS 是批量 / 交付导向管线,不是交互式编辑器——不做 RAW 域编辑。局部编辑是规格驱动的:命名蒙版(linear/radial/color/AI 分割/笔刷/组合算子)+ 蒙版内局部调整,全部以紧凑字符串建模,经 CLI/REST/MCP/preset 零胶水传递。

  • 设备上推理,无云端。 降噪模型权重(SCUNet)首次使用时下载到本机;不上传任何数据。
  • 许可(双许可)。 官方代码与多数官方模型权重(含 SCUNet 检查点)为 MIT—— 可自由商用。唯一例外:auto-tone 插件的模型权重为 CC-BY-NC 4.0(非商用, 训练数据来自个人 Lightroom 修图记录)——个人与非商业用途永久免费,商业用途 需购买授权:邮箱 1634103640@qq.com · dwphoto.top/message。 边界判定与常见问题见 docs/COMMERCIAL.md。第三方插件与模型 各自持有自己的许可;商用再分发前请自行核实。

📄 许可证

MIT