--- 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` | 指定 Provider:google / 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生图