Skip to content

PhotoS v1.5.0 — i18n + Agent contract + photographer workflows

Choose a tag to compare

@Dongwu259 Dongwu259 released this 15 Aug 23:27
· 98 commits to main since this release

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(后台目录监视)、process evaluate(SSIM 质量评估)

📷 摄影师批处理工作流(原 v1.6.0 合并)

  • 选片 select:按 EXIF 评分双阈值分拣——≥4 星移精选目录、≤2 星移淘汰目录、3 星/未评分原地;--copy/--dry-run;GUI 评审灯箱一键「移动精选/淘汰」
  • HDR hdr:包围曝光曝光融合(opencv MergeMertens,无需 EV 数据),--align AlignMTB 手持对齐消鬼影
  • 人脸模糊 blurfaces:Haar cascade 人脸检测 + 高斯模糊/马赛克隐私打码;--blur-faces blur|pixelate 也可进批量管线与其他处理一次完成
  • 预设一键套用preset save 捕获完整选项集;batch/compress/convert --preset NAME(显式 CLI 参数优先)
  • 批量 EXIF GPSexif --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+)