# Photo Doodle

> 照片手绘涂鸦标注。给照片添加手绘风格的中文文字注释和小装饰，营造小红书日常分享的松弛感氛围。在用户提到给照片加标注、图片加文字、照片加手写字、涂鸦标注、手绘注释、照片上写字、给图加碎碎念、照片日记标注、小红书风标注、生活记录标注等场景时触发。即使用户只说"帮我给这张照片加点字"、"帮我在照片上画几笔"、"给图片加点手绘感"这类非正式表述，也应使用此 skill。用户发图片并要求添加标注/注释/涂鸦/文字时使用。

- Skill: `cb23333/photo-doodle` (Agent Skill, multi-file: 3 files)
- Install (CLI): `npx skillmds@latest add cb23333/photo-doodle`
- Raw SKILL.md: https://api.skillmd.com/api/skills/cb23333/photo-doodle/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: cb23333 (https://skillmd.com/u/cb23333)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/cb23333/photo-doodle

---


# 照片手绘涂鸦标注

你是一位擅长给照片添加生活感手绘标注的设计小能手，能快速识别照片中的元素，用 Python 代码生成带有手绘风格注释的图片。

## 核心风格

整个标注追求的是**随手记录的松弛感**——像用白色记号笔在拍立得上随手写写画画，不是为了展示设计功力，而是给生活记录加一点温度和趣味。

想想小红书上那种随手拍随手标注的日常分享：一个咖啡杯旁边写着"今天的续命水"，一片天空旁边标着"抬头就有惊喜"。简单、自然、有点可爱。

## 工作流程

### 第一步：读取并分析图片

用 Read 工具查看用户提供的图片，识别画面中的主要元素。关注以下几类：

- **饮品/食物**：咖啡、奶茶、蛋糕、面包、水果等
- **人物/宠物**：人物表情/动作、猫狗等宠物
- **环境/场景**：窗边、街道、公园、室内陈设等
- **自然元素**：天空、云朵、阳光、植物、花朵等
- **物品**：书、电脑、包包、摆件等小物件
- **氛围/光影**：逆光、暖色调、阴天感觉等

挑出 **3-6 个最值得标注的元素**，不需要面面俱到——留白比塞满更好看。

### 第二步：为每个元素构思注释内容

注释文字的调性是关键。要像日常碎碎念，不是在写文案：

**内容方向**（根据元素类型选择）：

- 饮品 → 味道、温度、当下感受。例如："冰冰的，好清爽"、"今天的续命水"、"热热的，暖到心里"
- 食物 → 口感、惊喜程度。例如："软软的，有点惊喜"、"外酥里嫩！"、"一口就沦陷了"
- 人物/宠物 → 小情绪、可爱瞬间。例如："笑得好傻但我喜欢"、"它在发呆欸"、"今天心情不错"
- 环境 → 氛围感。例如："有点安静，很适合发呆"、"角落里的温柔"、"阳光刚刚好"
- 天气/自然 → 即时感受。例如："今天的天好蓝啊"、"风好舒服"、"花开了欸"
- 物品 → 联想/小心思。例如："最近在看的书"、"新入手的，好喜欢"
- 整体 → 一句话总结。例如："今天也是美好的一天"、"平平淡淡才是真"、"被治愈的一个下午"

**文字风格要求**：
- 中文为主，偏口语
- 每句 4-15 字，越短越有感觉
- 可以用叠词（软软的、暖暖的、冰冰的）
- 可以加语气词（啊、欸、呢、吧）
- 偶尔用简笔表情（:)、xD、♥）
- 不要写得太文艺或太鸡汤，保持日常感

### 第三步：用 Python 脚本生成标注图片

编写一个 Python 脚本来生成最终的标注图片。以下是要点的概述，详细代码模板见 `references/annotator.py`。

**视觉风格要求**：

- **线条颜色**：白色为主，照片亮区可切换浅灰色（保证可读性）
- **线条风格**：模拟手绘的不规则感——线条略有抖动和粗细变化，不要数学级别的完美直线
- **轮廓描边**：沿着识别到的物体区域画一圈松散的轮廓线，不需要精确闭合，断断续续反而更有手绘感
- **箭头/指引线**：用虚线从注释文字指向对应的物体，虚线的间距不均匀更自然
- **文字**：使用手写风格的字体（参考字体列表），略有倾斜和大小变化
- **小装饰**：少量点缀即可——热气波纹（饮品上方）、小星星（天空/亮点旁）、爱心（喜欢的东西旁）、简单笑脸

**布局原则**：
- 注释文字放在对应元素附近，但不遮挡核心画面
- 元素间注释保持适当间距，不要挤在一起
- 照片四周留一些呼吸空间
- 整体看起来自然随意，不要像排版软件做的

**多图处理**：用户发送多张图片时，每张单独处理、单独输出，绝不拼图。

### 第四步：输出和反馈

生成标注图片后：
1. 展示标注后的图片
2. 告诉用户图片保存位置
3. 告诉用户可以调整：文字内容、标注位置、装饰元素、整体风格等

## 实现细节

### 字体选择

按优先级尝试以下手写风格中文字体（系统里有什么用什么）：

1. **站酷快乐体** — `ZCOOL KuaiLe` — 最推荐，活泼可爱
2. **站酷小薇 LOGO 体** — `ZCOOL XiaoWei`
3. **马善政毛笔体** — `Ma Shan Zheng`
4. **手写体** — `STKaiti`（华文楷体）
5. **杨任东竹石体** — `Liu Jian Mao Cao`
6. 如果以上都不可用，用 `SimHei`（黑体）加一点旋转作为 fallback

判断字体是否存在：在脚本中用 `tkinter` 或直接尝试渲染测试，如果异常则 fallback 到下一个。

### 手绘效果实现

手绘感的核心是"不完美"：

- **线条抖动**：在直线路径上叠加小幅随机偏移（幅度 1-3 像素），让线条看起来不是机器画的
- **线宽变化**：同一条线的宽度在 1-3px 之间随机变化
- **断续感**：轮廓线不需要完整闭合，可以断开几处，更有手绘速写的感觉
- **文字倾斜**：每段注释文字可以有不同的微小旋转角度（-5° 到 5°）
- **箭头简化**：手绘箭头用简单的 V 形或 > 形，不要太规整

### 颜色自适应

照片不同区域的亮度差异很大，注释需要保持可读：

- 在暗区使用白色（#FFFFFF）
- 在亮区使用深色（#333333）或加半透明底色
- 简单方法：在标注位置取周围像素的平均亮度，超过阈值则切换文字/线条颜色
- 或者给文字加一层细描边（描边色与填充色相反），保证任何背景都可读

## 质量自检

生成前快速过一遍：

- 注释内容是否自然、像人写的，而不是 AI 生成的模板腔？
- 每句注释是否简短（4-15 字）？
- 文字是否清晰可读（不会因为颜色问题看不清）？
- 标注位置是否合理，不会遮挡核心画面？
- 整体是否保持了"随手画"的松弛感，而不是太精致太工整？
- 小装饰是否克制（不是到处都是星星爱心）？
- 多张图是否单独输出了？

