PhotoS v1.5.0 — i18n + Agent contract + photographer workflows
PhotoS v1.5.0 — 国际化 + Agent 契约 + 摄影师批处理工作流
合并版本:i18n、JSON 契约版本化、server 安全加固、审计遗留修复 + 6 项摄影师工作流(选片/HDR/人脸模糊/预设套用/批量 GPS/统一比例裁剪)。MCP 工具 11 → 18,CLI 子命令 19 → 22,834 测试全绿。
🌍 国际化(i18n)
- CLI
--language {en,zh,auto}全局 flag,help + 全部运行时消息单一语言 - 三平台系统语言自动检测(macOS AppleLanguages / Windows LCID / Linux LANG)
- GUI 启动自动检测 + 用户选择持久化(
~/.photos/language) --json输出键永远英文(agent 契约不受语言影响)
🤖 Agent 契约版本化 + server 加固
- 新
photo_s/contract.py:所有 JSON 输出(CLI--json/ REST / MCP)带加性顶层schema_version键——消费者可安全忽略未知键,breaking 才递增 - server:ready-file 0600 权限、DNS-rebinding Host 白名单、1MB 请求体上限(413)
- MCP 4 个新工具(上一轮):
bench(实测并发加速比)、watch/watch_status/watch_stop(后台目录监视)、processevaluate(SSIM 质量评估)
📷 摄影师批处理工作流(原 v1.6.0 合并)
- 选片
select:按 EXIF 评分双阈值分拣——≥4 星移精选目录、≤2 星移淘汰目录、3 星/未评分原地;--copy/--dry-run;GUI 评审灯箱一键「移动精选/淘汰」 - HDR
hdr:包围曝光曝光融合(opencv MergeMertens,无需 EV 数据),--alignAlignMTB 手持对齐消鬼影 - 人脸模糊
blurfaces:Haar cascade 人脸检测 + 高斯模糊/马赛克隐私打码;--blur-faces blur|pixelate也可进批量管线与其他处理一次完成 - 预设一键套用:
preset save捕获完整选项集;batch/compress/convert --preset NAME(显式 CLI 参数优先) - 批量 EXIF GPS:
exif --gps "lat,lon" --make --model一键批量写坐标/相机信息 - 统一比例裁剪:
--crop-ratio 16:9居中按比例裁剪(回归测试锁定)
🔧 其他
- rename 撞名修复:
photo_1_2.jpg复后缀 bug → 干净计数photo_2.jpg - v1.3.2 审计遗留 3 项:插件安装核心版本检查、真 TLS(
PHOTO_S_TLS)、GUI 预览 drain 守卫 - CI 修复:locale 固定的中文文案测试、Windows 真实 Tk 慢 CI 超时放宽、bench 时钟分辨率
依赖:Pillow ≥10.4 · rawpy ≥0.18(核心)· numpy。可选 extras:[enhance](opencv:降噪/扶正/HDR/人脸模糊)、[mcp](py3.10+)、[watch]、[exif]、[heic]、[avif]、[gui]。
pip install photo-s-tools # 核心
pip install photo-s-tools[enhance] # + opencv(HDR/人脸模糊/降噪/扶正)
pip install photo-s-tools[mcp] # + MCP server(py3.10+)