摄影指导技能 (photo-guide)
概述
面向摄影新手的照片分析工具。用户上传一张照片后,Agent 分析其视觉特征,推断拍摄参数,提供后期调色方向、优化建议和学习关键词。
触发条件
当用户同时满足以下两个条件时激活此技能:
- 提供了图片(上传文件或图片链接)
- 表达了对摄影指导的需求,例如:
- 「这张照片怎么拍的?」
- 「教我拍出这种效果」
- 「这张照片的光圈/快门是多少?」
- 「怎么调这种色调?」
- 「帮我分析一下这张照片」
工作流程
第零步:检查并安装依赖
在开始分析前,检查 Python 依赖是否已安装:
python3 -c "import PIL" 2>/dev/null || pip install -r requirements.txt
- 如果
PIL已安装 → 跳过,直接进入第一步 - 如果未安装 → 执行
pip install -r requirements.txt安装依赖,安装完成后继续
第一步:尝试提取 EXIF 信息
如果用户提供的是本地图片文件,运行 EXIF 提取脚本:
python3 scripts/extract_exif.py <图片路径>
脚本输出 JSON 格式:
has_exif: true→ 记录真实参数(光圈、快门、ISO、焦距、相机型号),后续作为校验基准has_exif: false→ 进入纯视觉推断模式
注意:如果用户发送的是截图或网络图片,可能没有 EXIF 信息,这很正常。
第二步:五维度视觉分析
仔细观察照片,从五个维度分析并推断拍摄参数:
| 维度 | 观察要点 | 推断的参数 |
|---|---|---|
| 景深 | 背景模糊程度、虚化效果、主体与背景的分离感 | 光圈范围 |
| 动态 | 是否有运动模糊、水流的丝滑感、飞溅的水花凝固 | 快门速度 |
| 光影 | 光源方向(顺光/侧光/逆光)、光线硬度、整体曝光水平 | ISO、布光方式 |
| 色彩 | 色调倾向(冷/暖/中性)、饱和度高低、对比度强弱 | 后期调色方向 |
| 构图 | 拍摄视角(平视/俯拍/仰拍)、画面透视感、主体大小占比 | 焦段、拍摄角度 |
推断时查阅 references/photography-basics.md 中的参数参考表,确保推断值在合理范围内。
第三步:匹配风格模板
根据照片的整体感觉,从 references/style-templates.md 中找到最接近的摄影风格(如人像糖水片、日系清新、城市街拍等),用模板中的参数范围交叉验证第二步的推断结果。如果推断值和模板差距较大,优先采用模板范围并在报告中说明。
第四步:生成分析报告
按照以下模板输出结构化报告:
📷 照片分析报告
━━━━━━━━━━━━━━━
📋 画面概述
- 照片类型:[人像 / 风光 / 街拍 / 美食 / 夜景 / ...]
- 主要元素:[用通俗语言描述画面中的主体和环境]
- 拍摄环境:[室内/室外、白天/傍晚/夜晚、天气 等]
⚙️ 拍摄参数
| 参数 | 推断值 | 推断理由 |
| -------- | --------------- | --------------------- |
| 光圈 | [范围] | [观察到什么特征] |
| 快门速度 | [范围] | [观察到什么特征] |
| ISO | [范围] | [观察到什么特征] |
| 焦段 | [范围] | [观察到什么特征] |
| 拍摄角度 | [角度] | [观察到什么特征] |
(如有 EXIF 数据,增加「实际值」列与推断值对比)
💡 拍摄技巧要点
- [用通俗语言解释为什么用这些参数组合]
- [给新手可操作的实用建议,如「下次试试蹲低一点拍」]
🔧 照片优化建议
(仅在有明显可改进之处时出现,否则跳过此部分)
- [指出具体问题,如「画面稍微偏暗」]
- [给出具体改进建议,如「可以提高 0.3-0.5 档曝光」]
🎨 后期调色建议
- 色调方向:[冷调 / 暖调 / 中性 / 日系 / 胶片 / 电影感 等]
- 曝光调整:[建议微调方向和幅度]
- 对比度:[建议]
- 色彩倾向:[具体色彩倾向]
- 推荐风格预设:[可在 Lightroom/修图 App 中搜索的关键词]
🎛️ 拍摄设置建议
(大部分场景出现。仅在创意/抽象照片等无法给出明确设置建议时跳过)
- 拍摄模式:[A档光圈优先 / S档快门优先 / M档全手动]
→ [一句话解释为什么选这个模式]
- 对焦模式:[AF-S单次 / AF-C连续 / MF手动]
→ [一句话解释]
- 测光模式:[评价测光 / 点测光 / 中央重点测光]
→ [一句话解释]
- 白平衡:[自动 / 阴天 / 自定义色温 XXXXK]
→ [一句话建议]
- 曝光补偿:[+/- X 档]
→ [一句话解释]
- 连拍:[单张 / 低速连拍 / 高速连拍]
→ [一句话建议]
📊 场景设置速查
| 场景 | 拍摄模式 | 对焦 | 测光 | 连拍 |
| ---------- | --------- | ------- | ------------ | -------- |
| 人像 | A档 | AF-S | 点测光(脸部) | 单张 |
| 运动/抓拍 | S档或M档 | AF-C | 评价测光 | 高速连拍 |
| 风光 | A档或M档 | AF-S/MF | 评价测光 | 单张 |
| 夜景/长曝光| M档 | MF/AF-S | 评价测光 | 单张 |
| 街拍 | A档 | AF-S/AF-C| 中央重点 | 低速连拍 |
| 美食/静物 | A档 | AF-S | 点测光 | 单张 |
| 宠物 | S档或A档 | AF-C | 评价测光 | 高速连拍 |
推断设置时查阅 [references/photography-basics.md](references/photography-basics.md) 中的拍摄模式、对焦模式和测光模式参考表。
🔦 布光与道具建议
(仅在人像、美食、夜景、长曝光、逆光/侧逆光、室内、微距等需要控光的场景出现。纯自然光的白天风光/街拍跳过)
布光方案:
- 主光方向:[顺光/侧光/逆光/顶光] → [当前照片的光线分析]
- 补光建议:[需要/不需要]
→ [具体建议]
- 光质建议:[硬光/柔光/自然散射光]
→ [具体建议]
道具清单:
| 道具 | 必要性 | 说明 |
| ---------- | ------------- | -------------------------- |
| [道具名] | [必备/推荐/可选] | [使用说明] |
常用道具触发条件:
- 三脚架:快门 < 1/30s、夜景、长曝光 → 必备
- ND 减光镜:白天长曝光(流水、云层) → 推荐
- CPL 偏振镜:风光(天空、水面反光) → 推荐
- GND 渐变镜:天地光比大(日出日落) → 可选
- 反光板:逆光/侧逆光人像 → 推荐
- 外置闪光灯:室内人像、夜景人像 → 可选
- 柔光箱/伞:室内人像、商品拍摄 → 可选
- 快门线:长曝光、星轨 → 推荐
📱 手机拍摄替代方案
(仅在 EXIF 显示手机型号或用户提到手机拍摄时出现)
参数调整:
- [针对手机硬件局限的调整建议]
拍摄技巧:
- [手机摄影专属技巧,如点击对焦后上滑调曝光]
推荐 App:
- [支持手动参数控制的手机摄影 App]
📚 推荐学习关键词
- [2-3 个适合新手搜索的学习关键词]
如果用户问到后期调色细节,可查阅 references/post-processing-guide.md 获取调色教程和参数参考。
关键原则
- 强调推断性:除非照片包含 EXIF 数据,否则所有参数均为推测值,需明确告知用户
- 给范围不给固定值:如「f/2.0 - f/2.8」而非「f/2.8」,因为同一效果可以由多种参数组合实现
- 实用导向:重点是教会用户「怎么拍」,而非堆砌理论
- 友好语气:先肯定照片的优点,再给出优化建议;避免每张照片都挑毛病
- 通俗表达:减少专业术语,使用时附带简短解释(如「ISO 就是感光度,越高画面越亮但噪点越多」)
- 语言跟随:使用与用户提问相同的语言输出报告,包括报告标题和各栏目名称
常见边界情况
- 无 EXIF 的图片(截图、微信/微博压缩图等):直接进入纯视觉推断模式,告知用户这是基于画面特征的专业推测
- 模糊/画质差的图片:推断精度会降低,在报告中说明,并适当扩大参数范围
- 手机拍摄的照片:手机摄影参数可控范围有限(通常无法控制光圈),建议中应考虑手机摄影的局限性
- 多张照片分析:逐张分析,可以对比不同照片的参数差异帮助学习
- 创意/抽象照片:可能难以精确匹配风格模板,侧重于描述画面效果和可能的拍摄手法
- 视频截图:告知用户截图分辨率和 EXIF 信息通常不完整,分析精度有限
参考资源
- 摄影参数参考表:references/photography-basics.md
- 摄影风格模板:references/style-templates.md
- 后期调色教程:references/post-processing-guide.md
- EXIF 提取工具:scripts/extract_exif.py
安全与隐私
- 数据本地处理:所有分析在 Agent 本地完成,不向任何外部服务发送照片或数据
- 文件访问:仅读取用户指定的图片文件,只读不写,不修改任何照片
- 无需网络:EXIF 提取和视觉分析均不需要网络连接
- 无需密钥:不使用任何 API Key、环境变量或外部凭证