Files
hmo 04db423416 Initial commit: skills library
- 70 skills with code and documentation
- Add .gitignore (ignore __pycache__, output/, temp/, venv/)
- Clean up test intermediates and caches
2026-04-26 19:27:40 +08:00

488 lines
20 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
name: image-service
description: 多模态图像处理技能,支持文生图、图生图、图生文、长图拼接、调研配图、小红书卡片图、专业信息图、文章封面图。当用户提到图片、图像、生成图、信息图、封面图、小红书、OCR 等关键词时触发。
---
# 图像处理技能
## 概述
| 能力 | 说明 | 脚本 |
|-----|------|------|
| 文生图 | 根据中文文本描述生成图片 | `scripts/text_to_image.py` |
| 图生图 | 在已有图片基础上进行编辑 | `scripts/image_to_image.py` |
| 图生文 | 分析图片内容(描述、OCR、图表等) | `scripts/image_to_text.py` |
| 长图拼接 | 将多张图片垂直拼接为微信长图 | `scripts/merge_long_image.py` |
| 调研配图 | 预设手绘风格的调研报告信息图 | `scripts/research_image.py` |
| 小红书卡片图 | 10种视觉风格 × 8种布局,生成小红书系列图 | 文生图 + 提示词模板 |
| 专业信息图 | 20种布局 × 17种视觉风格,专业信息可视化 | 文生图 + 提示词模板 |
| 文章封面图 | 5维定制系统,生成文章/公众号封面 | 文生图 + 提示词模板 |
## 配置
配置文件:`config/settings.json`
| 配置项 | 值 |
|-------|-----|
| IMAGE_API_BASE_URL | `https://ark.cn-beijing.volces.com/api/coding/v3` |
| IMAGE_MODEL | `doubao-seed-2.0-pro` |
| VISION_MODEL | `doubao-seed-code` |
## 执行规范
**图片默认保存到命令执行时的当前工作目录**
1. **不要**使用 `workdir` 切换到 skill 目录执行命令
2. **始终**在用户的工作目录下执行,使用脚本的绝对路径
3. 脚本路径:`.opencode/skills/image-service/scripts/`
```bash
# 正确示例
python .opencode/skills/image-service/scripts/text_to_image.py "描述" -r 3:4 -o output.png
```
## 快速使用
### 文生图
```bash
python .opencode/skills/image-service/scripts/text_to_image.py "信息图风格,标题:AI技术趋势" -r 16:9
python .opencode/skills/image-service/scripts/text_to_image.py "竖版海报,产品展示" -r 3:4 -o poster.png
```
参数:`-r` 宽高比 | `-s` 尺寸 | `-o` 输出路径
支持比例:`1:1`, `2:3`, `3:2`, `3:4`, `4:3`, `4:5`, `5:4`, `9:16`, `16:9`, `21:9`
### 图生图
```bash
python .opencode/skills/image-service/scripts/image_to_image.py input.png "编辑描述" -r 3:4
```
### 图生文(视觉分析)
```bash
# 使用火山方舟视觉模型分析图片
python .opencode/skills/image-service/scripts/vision_analyzer.py image.jpg -m describe
python .opencode/skills/image-service/scripts/vision_analyzer.py screenshot.png -m ocr
python .opencode/skills/image-service/scripts/vision_analyzer.py chart.png -m chart
python .opencode/skills/image-service/scripts/vision_analyzer.py image.jpg -m custom -q "图片中红框框出来的部分是什么?"
```
模式:`describe` | `ocr` | `chart` | `fashion` | `product` | `scene` | `custom`
**注意**Coding Plan 唯一支持的视觉模型是 `doubao-seed-code`,专业视觉模型(如doubao-vision-pro)不支持。
### 长图拼接
```bash
python .opencode/skills/image-service/scripts/merge_long_image.py img1.png img2.png -o output.png --blend 20
python .opencode/skills/image-service/scripts/merge_long_image.py -p "*.png" -o long.png --sort name
```
参数:`-p` 通配符 | `-o` 输出 | `-w` 宽度 | `-g` 间隔 | `--blend` 融合 | `--sort` 排序
### 调研配图
```bash
python .opencode/skills/image-service/scripts/research_image.py -t arch -n "标题" -c "内容" -o output.png
```
类型:`arch` 架构图 | `flow` 流程图 | `compare` 对比图 | `concept` 概念图
---
## 小红书卡片图
将长内容拆分为 1-10 张小红书风格卡片图,适合种草、教程、知识分享等场景。
**触发词**:小红书图片、小红书卡片、XHS图、种草图、小红书配图
### 双维度体系
| 维度 | 控制 | 可选值 |
|------|------|--------|
| **风格** | 视觉美学:配色、线条、装饰元素 | 甜美、清新、温暖、醒目、极简、复古、波普、笔记风、黑板风、手写笔记 |
| **布局** | 信息结构:密度、排列方式 | 留白、均衡、密集、列表、对比、流程、思维导图、四象限 |
风格和布局可自由组合,例如:「笔记风 + 密集」= 知识感的高密度卡片。
### 风格表
| 风格 | 中文名 | 说明 |
|------|--------|------|
| `cute` | 甜美(默认) | 甜系少女风,经典小红书美学 |
| `fresh` | 清新 | 干净清爽,自然舒适 |
| `warm` | 温暖 | 温馨亲切,有人情味 |
| `bold` | 醒目 | 高冲击力,抢注意力 |
| `minimal` | 极简 | 超干净,高级感 |
| `retro` | 复古 | 怀旧感,潮流复古 |
| `pop` | 波普 | 鲜艳活泼,视觉冲击 |
| `notion` | 笔记风 | 极简手绘线条,知识感 |
| `chalkboard` | 黑板风 | 彩色粉笔黑板,教育感 |
| `study-notes` | 手写笔记 | 真实手写照片风,蓝笔+红批注+黄荧光 |
### 布局表
| 布局 | 中文名 | 说明 |
|------|--------|------|
| `sparse` | 留白(默认) | 最少信息,最大冲击(1-2个要点) |
| `balanced` | 均衡 | 标准内容排版(3-4个要点) |
| `dense` | 密集 | 高信息密度,知识卡片风(5-8个要点) |
| `list` | 列表 | 枚举排行格式(4-7项) |
| `comparison` | 对比 | 左右对照排版 |
| `flow` | 流程 | 步骤/时间线排版(3-6步) |
| `mindmap` | 思维导图 | 中心发散式(4-8个分支) |
| `quadrant` | 四象限 | 四格/扇形分区 |
### 智能推荐
| 内容信号 | 推荐风格 | 推荐布局 |
|----------|----------|----------|
| 美妆、时尚、可爱、少女 | 甜美 | 留白/均衡 |
| 健康、自然、清洁、有机 | 清新 | 均衡/流程 |
| 生活、故事、情感、温馨 | 温暖 | 均衡 |
| 警告、重要、必看、避坑 | 醒目 | 列表/对比 |
| 专业、商务、高端、简约 | 极简 | 留白/均衡 |
| 经典、怀旧、传统、复古 | 复古 | 均衡 |
| 有趣、惊喜、好玩、安利 | 波普 | 留白/列表 |
| 知识、概念、效率、工具 | 笔记风 | 密集/列表 |
| 教程、教学、课堂、学习 | 黑板风 | 均衡/密集 |
| 笔记、手写、学习攻略、真实 | 手写笔记 | 密集/列表/思维导图 |
### 内容策略
| 策略 | 中文名 | 适用场景 | 结构 |
|------|--------|----------|------|
| 故事驱动 | 经验分享型 | 测评、个人分享、蜕变故事 | 钩子→痛点→发现→体验→总结 |
| 信息密集 | 干货输出型 | 教程、对比、清单、推荐 | 核心结论→信息卡→优缺点→推荐 |
| 视觉优先 | 氛围美图型 | 高颜值产品、生活方式 | 主图→细节→场景→引导 |
### 使用方式
1. 提供内容素材(文章、笔记、文本)
2. 指定风格和布局(或让系统自动推荐)
3. 系统分析内容,拆分为多张卡片
4. 为每张卡片生成提示词并调用文生图
```bash
# 示例:生成小红书卡片图
python .opencode/skills/image-service/scripts/text_to_image.py "小红书卡片风格,甜美配色,标题:护肤入门指南,内容要点:1.清洁 2.保湿 3.防晒" -r 3:4 -o xhs_card_01.png
```
### 输出结构
```
xhs-images/{主题}/
├── source-{slug}.{ext} # 原始素材
├── analysis.md # 内容分析
├── outline.md # 最终大纲
├── prompts/ # 各卡片提示词
│ ├── 01-cover-{slug}.md
│ ├── 02-content-{slug}.md
│ └── ...
├── 01-cover-{slug}.png # 生成的卡片图
├── 02-content-{slug}.png
└── NN-ending-{slug}.png
```
---
## 专业信息图
20种布局 × 17种视觉风格,自由组合生成专业信息可视化图。
**触发词**:信息图、可视化、infographic、数据图、知识图谱、流程图
### 布局表(20种)
| 布局 | 中文名 | 适用场景 |
|------|--------|----------|
| `linear-progression` | 线性进程 | 时间线、流程、教程 |
| `binary-comparison` | 二元对比 | A vs B、前后对比、优缺点 |
| `comparison-matrix` | 对比矩阵 | 多因素对比评测 |
| `hierarchical-layers` | 层级金字塔 | 优先级、层次结构 |
| `tree-branching` | 树状分支 | 分类、知识体系 |
| `hub-spoke` | 中心辐射 | 核心概念 + 关联项 |
| `structural-breakdown` | 结构分解 | 拆解视图、剖面图 |
| `bento-grid` | 便当格(默认) | 多主题概览、综合展示 |
| `iceberg` | 冰山模型 | 表面 vs 深层、显隐对比 |
| `bridge` | 桥梁模型 | 问题→解决方案 |
| `funnel` | 漏斗模型 | 转化、筛选、收敛 |
| `isometric-map` | 等距地图 | 空间关系、场景布局 |
| `dashboard` | 仪表盘 | 指标、KPI、数据看板 |
| `periodic-table` | 元素周期表 | 分类集合、知识卡 |
| `comic-strip` | 漫画条 | 叙事、流程故事化 |
| `story-mountain` | 故事山 | 剧情结构、张力弧线 |
| `jigsaw` | 拼图模型 | 相互关联的组成部分 |
| `venn-diagram` | 维恩图 | 交叉概念、共性分析 |
| `winding-roadmap` | 蜿蜒路线图 | 旅程、里程碑、路径 |
| `circular-flow` | 循环流 | 周期、迭代、循环过程 |
### 风格表(17种)
| 风格 | 中文名 | 说明 |
|------|--------|------|
| `craft-handmade` | 手工拼贴(默认) | 手绘纸艺感,温暖亲切 |
| `claymation` | 黏土动画 | 3D黏土人偶,定格动画感 |
| `kawaii` | 卡哇伊 | 日系可爱,粉彩配色 |
| `storybook-watercolor` | 绘本水彩 | 柔和水彩,童话感 |
| `chalkboard` | 粉笔黑板 | 黑板粉笔画,教育感 |
| `cyberpunk-neon` | 赛博霓虹 | 霓虹灯光,未来科技感 |
| `bold-graphic` | 漫画粗线 | 漫画风格,网点半调 |
| `aged-academia` | 复古学术 | 老派科学手稿,泛黄纸张 |
| `corporate-memphis` | 企业孟菲斯 | 扁平矢量,鲜艳活泼 |
| `technical-schematic` | 技术蓝图 | 工程制图,蓝底白线 |
| `origami` | 折纸 | 几何折叠,纸张质感 |
| `pixel-art` | 像素风 | 复古8位游戏风 |
| `ui-wireframe` | 线框图 | 灰度界面原型风 |
| `subway-map` | 地铁线路图 | 交通图式,线条清晰 |
| `ikea-manual` | 宜家说明书 | 极简线稿,无废话 |
| `knolling` | 整理摆拍 | 物品俯拍整齐排列 |
| `lego-brick` | 乐高积木 | 积木拼搭,玩具感 |
### 推荐组合
| 内容类型 | 推荐布局 + 风格 |
|----------|-----------------|
| 时间线/历史 | 线性进程 + 手工拼贴 |
| 步骤教程 | 线性进程 + 宜家说明书 |
| A vs B 对比 | 二元对比 + 企业孟菲斯 |
| 层级结构 | 层级金字塔 + 手工拼贴 |
| 交叉概念 | 维恩图 + 手工拼贴 |
| 转化漏斗 | 漏斗模型 + 企业孟菲斯 |
| 循环流程 | 循环流 + 手工拼贴 |
| 技术架构 | 结构分解 + 技术蓝图 |
| 数据指标 | 仪表盘 + 企业孟菲斯 |
| 教育科普 | 便当格 + 粉笔黑板 |
| 旅程路径 | 蜿蜒路线图 + 绘本水彩 |
| 分类集合 | 元素周期表 + 漫画粗线 |
默认组合:便当格 + 手工拼贴
### 使用方式
1. 提供内容素材(文本、数据、大纲)
2. 指定布局和风格(或让系统根据内容自动推荐)
3. 系统分析内容结构,生成结构化信息图提示词
4. 调用文生图生成最终图片
```bash
# 示例:生成专业信息图
python .opencode/skills/image-service/scripts/text_to_image.py "信息图,手工拼贴风格,便当格布局,标题:大模型技术栈全景,包含6个模块:数据、预训练、微调、对齐、推理、部署" -r 16:9 -o infographic.png
```
### 核心原则
- 保留原始数据原文,不擅自总结或改写
- 先明确信息传达目标,再组织视觉结构
- 标题、标签、图例等文字内容用中文
### 输出结构
```
infographic/{主题}/
├── source-{slug}.{ext} # 原始素材
├── analysis.md # 内容分析
├── structured-content.md # 结构化内容
├── prompts/infographic.md # 生成提示词
└── infographic.png # 最终信息图
```
---
## 文章封面图
5维定制系统,为文章、博客、公众号生成精美封面图。
**触发词**:封面图、文章封面、公众号封面、博客头图、cover image
### 五维体系
| 维度 | 可选值 | 默认值 |
|------|--------|--------|
| **类型** | 主视觉(hero)、概念隐喻(conceptual)、文字排版(typography)、比喻象征(metaphor)、场景叙事(scene)、极简留白(minimal) | 自动 |
| **配色** | 暖色(warm)、雅致(elegant)、冷色(cool)、暗黑(dark)、大地色(earth)、鲜艳(vivid)、粉彩(pastel)、黑白(mono)、复古(retro) | 自动 |
| **渲染** | 扁平矢量(flat-vector)、手绘(hand-drawn)、绘画(painterly)、数字CG(digital)、像素(pixel)、粉笔(chalk) | 自动 |
| **文字** | 无文字(none)、仅标题(title-only)、标题+副标题(title-subtitle)、富文字(text-rich) | 仅标题 |
| **氛围** | 内敛(subtle)、均衡(balanced)、强烈(bold) | 均衡 |
### 配色详情(9种)
| 配色 | 中文名 | 色彩特征 |
|------|--------|----------|
| `warm` | 暖色 | 橙红黄,温暖积极 |
| `elegant` | 雅致 | 莫兰迪色系,低饱和高级感 |
| `cool` | 冷色 | 蓝绿紫,理性科技感 |
| `dark` | 暗黑 | 深色背景,对比强烈 |
| `earth` | 大地色 | 棕绿土色,自然质朴 |
| `vivid` | 鲜艳 | 高饱和撞色,视觉冲击 |
| `pastel` | 粉彩 | 马卡龙色,柔和温柔 |
| `mono` | 黑白 | 纯黑白灰,经典永恒 |
| `retro` | 复古 | 胶片色调,怀旧氛围 |
### 渲染风格(6种)
| 渲染 | 中文名 | 说明 |
|------|--------|------|
| `flat-vector` | 扁平矢量 | 干净利落,现代商务 |
| `hand-drawn` | 手绘 | 手绘线条,亲切有趣 |
| `painterly` | 绘画 | 油画/水彩质感,艺术感 |
| `digital` | 数字CG | 3D渲染,科幻现代 |
| `pixel` | 像素 | 像素艺术,怀旧趣味 |
| `chalk` | 粉笔 | 黑板粉笔,教育学术 |
### 使用方式
1. 提供文章内容或标题
2. 指定五个维度(或让系统自动匹配)
3. 系统分析文章主题,生成封面提示词
4. 调用文生图生成封面
```bash
# 示例:生成文章封面
python .opencode/skills/image-service/scripts/text_to_image.py "文章封面,概念隐喻风格,冷色调,扁平矢量渲染,标题:深入理解Transformer架构" -r 16:9 -o cover.png
# 公众号封面(推荐2.35:1宽幅)
python .opencode/skills/image-service/scripts/text_to_image.py "文章封面,暗黑配色,数字CG渲染,极简留白,标题:2025 AI趋势" -r 21:9 -o wechat_cover.png
```
支持比例:`16:9`(标准)、`21:9`(宽幅/电影感)、`4:3``3:2``1:1`(方形)、`3:4`(竖版)
---
## AI图片生成后端(多Provider支持)
除默认的 IMAGE_API 后端外,还可通过第三方 AI SDK 直接调用 OpenAI / Google / DashScope 等图像生成接口,作为补充方案。
**触发词**:用OpenAI生成图、用Google生图、DashScope生图、切换生图后端
### 支持的 Provider
| Provider | 模型 | 特点 |
|----------|------|------|
| Google | Imagen 3 | 默认首选,支持参考图多模态 |
| OpenAI | gpt-image-1 / dall-e-3 | 高质量,支持图片编辑 |
| DashScope | z-image-turbo | 通义万象,中文理解好 |
### 环境变量
| 变量 | 说明 |
|------|------|
| `OPENAI_API_KEY` | OpenAI API 密钥 |
| `GOOGLE_API_KEY` | Google API 密钥 |
| `DASHSCOPE_API_KEY` | DashScope API 密钥 |
| `OPENAI_IMAGE_MODEL` | OpenAI 模型覆盖 |
| `GOOGLE_IMAGE_MODEL` | Google 模型覆盖 |
| `DASHSCOPE_IMAGE_MODEL` | DashScope 模型覆盖(默认 z-image-turbo |
### Provider 自动选择逻辑
1. 提供了参考图(`--ref`)且未指定 Provider → 优先 Google,其次 OpenAI
2. 明确指定 `--provider` → 使用指定的
3. 只有一个 API Key 可用 → 使用该 Provider
4. 多个可用 → 默认 Google
### 质量预设
| 预设 | Google 尺寸 | OpenAI 尺寸 | 适用场景 |
|------|-------------|-------------|----------|
| `normal` | 1K | 1024px | 快速预览 |
| `2k`(默认) | 2K | 2048px | 封面、插画、信息图 |
### 使用示例
```bash
# 基本用法(需配置对应 API Key)
npx -y bun ${SKILL_DIR}/scripts/main.ts --prompt "一只猫" --image cat.png
# 指定比例
npx -y bun ${SKILL_DIR}/scripts/main.ts --prompt "风景画" --image out.png --ar 16:9
# 高质量
npx -y bun ${SKILL_DIR}/scripts/main.ts --prompt "产品图" --image out.png --quality 2k
# 指定Provider
npx -y bun ${SKILL_DIR}/scripts/main.ts --prompt "一只猫" --image out.png --provider openai
# 使用参考图
npx -y bun ${SKILL_DIR}/scripts/main.ts --prompt "改为蓝色" --image out.png --ref source.png
# DashScope(中文场景推荐)
npx -y bun ${SKILL_DIR}/scripts/main.ts --prompt "一只可爱的猫" --image out.png --provider dashscope
```
### 参数列表
| 参数 | 说明 |
|------|------|
| `--prompt`, `-p` | 提示词文本 |
| `--promptfiles` | 从文件读取提示词(多文件拼接) |
| `--image` | 输出图片路径(必填) |
| `--provider` | 指定 Providergoogle / openai / dashscope |
| `--model`, `-m` | 模型 ID |
| `--ar` | 宽高比(如 `16:9`, `1:1` |
| `--size` | 尺寸(如 `1024x1024` |
| `--quality` | 质量预设:normal / 2k |
| `--ref` | 参考图片 |
| `--n` | 生成数量 |
| `--json` | JSON 格式输出 |
---
## 执行前必做:需求类型判断(铁律)
**收到图片生成需求后,必须先判断是哪种类型,再决定执行方式:**
### 长图识别规则
提示词中出现以下任一特征,即判定为**长图需求**:
| 特征类型 | 识别关键词/模式 |
|---------|---------------|
| **明确声明** | 长图、长图海报、垂直长图、微信长图、Infographic、Long Banner |
| **分段结构** | 提示词包含多个段落(如"第1部分"、"顶部"、"中间"、"底部"|
| **编号列表** | 使用 `### 1.``### 2.` 等编号分段 |
| **多屏内容** | 描述了3个及以上独立画面/模块 |
| **从上至下** | 出现"从上至下"、"从上到下"等描述 |
### 判断后的执行路径
```
识别为长图 → 必须先读取 references/long-image-guide.md → 按长图流程执行
识别为小红书图 → 按「小红书卡片图」章节流程执行
识别为信息图 → 按「专业信息图」章节流程执行
识别为封面图 → 按「文章封面图」章节流程执行
识别为单图 → 直接使用 text_to_image.py 生成
```
**铁律:识别为长图后,禁止直接生成!必须先加载长图指南,按指南流程执行。**
## 详细指南(按需加载)
| 场景 | 触发条件 | 参考文档 |
|------|---------|---------|
| 生成多屏长图 | 命中上述长图识别规则 | `references/long-image-guide.md`(必须加载)|
| 图片含中文文字 | 提示词要求图片包含中文标题/文字 | `references/text-rendering-guide.md` |
| 为 PPT/文档配图 | 用户提供了配色要求或参考文档 | `references/color-sync-guide.md` |
| API 接口细节 | 需要了解底层实现 | `docs/api-reference.md` |
| 提示词技巧 | 需要优化提示词效果 | `docs/prompt-guide.md` |
## 提示词要点
1. **必须使用中文**撰写提示词
2. 图片中的标题、标签**必须为中文**
3. 默认宽高比 **16:9**,可通过 `-r` 参数调整
4. 推荐风格:信息图、数据可视化、手绘文字、科技插画
## 触发关键词
- **生成类**:生成图片、创建图片、文生图、图生图、信息图、数据可视化
- **分析类**:分析图片、OCR、识别文字、图生文
- **拼接类**:长图、微信长图、拼接图片
- **小红书**:小红书图片、小红书卡片、种草图、XHS配图
- **信息图**:专业信息图、infographic、知识图谱、流程图、可视化
- **封面类**:封面图、文章封面、公众号封面、博客头图
- **后端切换**:用OpenAI生图、用Google生图、DashScope生图