Back to skills
SkillHub ClubShip Full StackFull Stack

image-assistant

配图助手 - 把文章/模块内容转成统一风格、少字高可读的 16:9 信息图提示词;先定“需要几张图+每张讲什么”,再压缩文案与隐喻,最后输出可直接复制的生图提示词并迭代。

Packaged view

This page reorganizes the original catalog entry around fit, installability, and workflow context first. The original raw source lives below.

Stars
386
Hot score
99
Updated
March 20, 2026
Overall rating
C4.2
Composite score
4.2
Best-practice grade
C67.9

Install command

npx @skill-hub/cli install yunshu0909-yunshu-skillshub-image-assistant

Repository

yunshu0909/yunshu_skillshub

Skill path: image-assistant

配图助手 - 把文章/模块内容转成统一风格、少字高可读的 16:9 信息图提示词;先定“需要几张图+每张讲什么”,再压缩文案与隐喻,最后输出可直接复制的生图提示词并迭代。

Open repository

Best for

Primary workflow: Ship Full Stack.

Technical facets: Full Stack.

Target audience: everyone.

License: Unknown.

Original source

Catalog source: SkillHub Club.

Repository owner: yunshu0909.

This is still a mirrored public skill entry. Review the repository before installing into production workflows.

What it helps with

  • Install image-assistant into Claude Code, Codex CLI, Gemini CLI, or OpenCode workflows
  • Review https://github.com/yunshu0909/yunshu_skillshub before adding image-assistant to shared team environments
  • Use image-assistant for development workflows

Works across

Claude CodeCodex CLIGemini CLIOpenCode

Favorites: 0.

Sub-skills: 0.

Aggregator: No.

Original source / Raw SKILL.md

---
name: image-assistant
description: 配图助手 - 把文章/模块内容转成统一风格、少字高可读的 16:9 信息图提示词;先定“需要几张图+每张讲什么”,再压缩文案与隐喻,最后输出可直接复制的生图提示词并迭代。
---

# 配图助手

## 触发方式

当用户说类似以下内容时触发:
- “这段内容做个图 / 配几张图?”
- “给我两张(或多张)出图提示词”
- “字太多不好看,帮我更趣味、更好读”
- “把这个流程封装成提示词模板/skills”
- “/image “/配图” “/出图”

---

## 流程概览

| 阶段 | 名称 | 目标 | 详细文件 |
|---|---|---|---|
| 1 | 需求澄清(Spec/DoD) | 先挖需求:内容/场景/受众/字多字少;尺寸与风格默认;产出一句话复述与需求小结 | `stages/01-brief.md` |
| 2 | 配图规划(拆块→清单) | 拆内容→定图清单(几张/每张讲啥/用啥模板) | `stages/02-plan.md` |
| 3 | 文案定稿(Copy Spec) | 逐字定稿“图上写什么”(唯一真值) | `stages/03-copy.md` |
| 4 | 提示词封装(Prompt Pack) | 把 Copy Spec 封装成可复制提示词;生成批量请求包并在用户确认后批量出图 | `stages/04-prompts.md` |
| 5 | 迭代润色 | 根据反馈减字、换隐喻、提可读性 | `stages/05-iterate.md` |

---

## 调度规则

**如何判断当前阶段:**
1. 还没把需求讲清楚(内容 + 场景 + 受众 + 字多/字少)→ 阶段1
2. 文章很长、需要拆块,或需要确定“几张图/每张讲什么”→ 阶段2
3. 已确认图清单,但还没确定“图上逐字写什么”→ 阶段3
4. Copy Spec 已确认,要出可复制提示词;(可选)提示词确认后批量出图 → 阶段4
5. 用户反馈“字多/不好看/不符合封面” → 阶段5(必要时回退到阶段1重锁需求与字多/字少)

**每个阶段开始时:**
- 告诉用户当前阶段与本阶段输出物
- 读取对应阶段文件并按步骤执行

---

## 输出规范(必须遵守)

- 每张图一个“核心信息”,不把解释性段落塞进图里
- 所有中文必须清晰可读:大字号、少字短句、避免密集小字
- 每张提示词用一个独立代码块输出,便于复制
- 默认输出 16:9 横版(除非用户明确要 3:4 漫画/竖版)
- 默认风格:奶油纸底 + 彩铅水彩手绘 + 轻涂鸦,趣味但干净(可用 `templates/style-block.md`)
- 阶段3产物(Copy Spec)一旦确认,阶段4不得擅自改文案,只做封装与参数/约束补全

---

## 快速使用(给用户的最小输入)

用户只要给这四项,就能开始:
1. 要配图的内容(可是一段、一个小节、或整篇文章)
2. 用在哪里 + 观看距离(PPT投影远看 / 手机近看 / 海报)
3. 谁来看(小白/从业者/老板/学生…)
4. 偏好:更“少字清爽”还是更“信息密度”

可选补充(不写也没关系):
- 你大概想要哪类图:封面/目录、单页概览、讲义解释、社媒海报(不确定我会根据场景与偏好推荐)

你要做的交付顺序:
- 先输出:图清单(几张 + 每张一句话目的 + 模板建议)(阶段2)
- 用户确认后:逐张输出 Copy Spec(逐字定稿)(阶段3)
- Copy Spec 确认后:逐张输出可复制提示词/调用包(阶段4)
- (可选)提示词确认后:批量调用 API 出图(阶段4内连续流程)
- 用户说“字多/不好看”就进入迭代(阶段5)

---

## 文件结构

```
stages/
├── 01-brief.md
├── 02-plan.md
├── 03-copy.md
├── 04-prompts.md
└── 05-iterate.md

templates/
├── style-block.md
├── 16x9-infographic.md
├── 16x9-contrast-2cards.md
├── 16x9-3cards-insights.md
├── 16x9-cover-roadmap.md
├── 16x9-5panel-comic.md
├── api-config.md
├── apimart-curl.md
├── apimart-requests-jsonl.md
└── checklist.md

examples/
└── ai-tools-selection.md

scripts/
├── apimart_batch_generate.py
├── apimart.env.example
└── README.md
```


---

## Referenced Files

> The following files are referenced in this skill and included for context.

### stages/01-brief.md

```markdown
# 阶段1:需求澄清

**目标:** 在“拆文章/配图”之前,先把用户的真实需求说清楚:**内容是什么、用在什么场景、谁来看、想要字多还是字少**。其它默认值(如尺寸/风格)不打扰用户。

## 你需要问用户的 4 个问题(优先级从高到低)

1. **内容(先给我原文/要点)**:把要配图的内容贴过来(整段/小节/提纲都行)。
   - (可选补一句)你希望读者看完**记住哪一句话/得到什么结论**?
2. **场景(用在哪、怎么看)**:手机近看 / PPT 投影远看 / 海报打印?
   - 如果多个都有:**哪个是主场景**(我优先为它优化字号与密度)?
3. **受众(谁来看)**:小白 / 从业者 / 老板 / 学生…(决定措辞与隐喻)
4. **字多还是字少**:你希望更“少字清爽”还是更“信息密度高”(决定文案压缩强度)

## 本阶段输出物

### DoD(Definition of Done:没确认不进阶段2)

- 你复述给用户确认的 1 句话(推荐直接这样说):
  - **内容主题 + 主场景 + 受众 + 字多/字少 +(我建议的图类型)**
  - 默认补齐但不打扰用户:`16:9`、默认风格(除非用户明确提“竖版/品牌规范/参考图”)
- 口径对齐(方便后续阶段衔接):
  - 这里的“字多/字少”就是后续阶段会用到的“文字预算”
  - “图类型”用户不确定没关系:你可以先推荐一个,用户点头即可进入阶段2
- 需求小结(不超过 5 条,尽量用口语化而非硬指标):
  - 例如:`手机近看为主`、`给小白看`、`偏少字清爽`、`希望读者记住:……`、`先做 1 张概览框架图`

## 给用户的参考输入(让他照抄也行)

- 内容:……(粘贴原文/要点/提纲)
- 场景:手机近看为主(也会用于 PPT)
- 受众:给……看(小白/从业者/老板/学生…)
- 偏好:字少/字多
- 目标:希望读者看完记住……

```

### stages/02-plan.md

```markdown
# 阶段2:配图规划(要几张图?每张讲什么?)

**目标:** 基于阶段1已确认的规格(图类型/文字预算/用途),先“拆内容→定图清单→选版式”,避免一张图塞太多导致难看难读。

## 规划原则(核心)

- **优先遵守阶段1的图类型与文字预算**:不符合预算的内容,不要硬塞到图里。
- **一张图=一个核心信息**(通常是一个判断):读者扫一眼就能记住一句话。
- **概念图 vs 案例图分开**:概念负责“定义与选型”,案例负责“过程可视化”。
- **同一篇文章的多张图要统一风格**:同一套纸张/线条/配色/边框/涂鸦。

## 2A:内容拆块(长文必做)

当用户给你“很长的文章/一堆段落”时,这一步就是你要做的事:

- 先按 **小标题/段落主题** 抽出模块(不要逐句改写)
- 把模块聚类成 3–7 个“可画的块”(每块一句话概括,不写细节)
- 标记每块更适合的图形承载:流程 / 对比 / 清单 / 关系图 / 漫画

> 这一步的输出不要是提示词,而是“图清单草案”,让用户先选方向。

## 2B:判断“需要几张”的启发式规则

1. **纯定义 + 场景**:通常 1 张(卡片/对比/列表)。
2. **涉及流程/步骤**:至少 1 张流程图;若还有“为什么这样”再加 1 张对比/解释图。
3. **需要讲差异**(A vs B):1 张对比图;如果有经典小故事,再加 1 张漫画/流程故事图。
4. **收束段落**(总结/洞察/框架):1 张(要点卡片/决策树/关系总览)。

## 2C:图类型分支(避免“阶段2原则”误伤)

- **封面目录图/课程路线图(允许列 4–6 个模块)**
  - 目的:读者一眼知道“这节课讲什么结构”
  - 文案策略:每块 **仅标题**(解释信息移到后续单页/讲义图)
  - 版式建议:5步流程带 / 路线图 / 分段里程碑
- **概览框架图(强结构+少量结论)**
  - 目的:给判断框架(每块允许 1 行结论)
- **讲义解释图(信息密度更高)**
  - 目的:把“为什么/怎么做”讲清楚(但仍避免长段落)

## 本阶段输出物(给用户确认)

- 配图清单(用户确认后才进入阶段3):
  - 图数量:N 张
  - 每张图:**一句话目的** + **对应内容块** + **建议版式模板**
  - 若是封面目录图:明确“只放标题、不放解释小字”

```

### stages/03-copy.md

```markdown
# 阶段3:文案定稿(Copy Spec:唯一真值)

**目标:** 把内容变成“上图文案规格表(Copy Spec)”:逐字定稿 + 字数预算 + 区域结构。阶段4只负责“封装成提示词”,不再改文案本身。

## 先选模式(必须与阶段1一致)

- **封面模式(目录/路线图)**:每块只放标题;不写解释句;尽量不出现小字。
- **概览模式(框架图)**:每块允许 1 行结论;禁止长解释。
- **讲义模式(解释图)**:可以更密,但仍要短句;避免段落与密集小字。

> 如果模式不清楚,回到阶段1补齐“图类型 + 文字预算”,否则阶段3会跑偏。

## 压缩规则(默认规则;封面模式更严格)

- 先删掉“讲解用”的背景句,只保留“结论/动作”
- 默认:每块区域 **1–2 行**,每行尽量 **≤10 个字**
- 封面模式:每块 **仅 1 行标题**(0 解释)
- 用直观词替代术语堆叠:更稳/更可控/更省心/能跑通/能复刻…

## 隐喻与元素(只列清单,不画细节)

- **超载/规则太多**:塞爆背包、溢出的纸条、仪表盘转红
- **复杂任务一步到位**:打结毛线/一团乱麻 → 分卷/分步骤卡片
- **Agent 自驱**:失败→排查→定位→修复→重试(漫画)
- **Skills**:工具箱/文件夹积木/工牌
- **关系总览**:阶梯演化 + 套娃容器/大盒子调度

## Copy Spec 输出模板(你交付给用户确认的格式)

对每张图输出一份 Copy Spec(可直接粘贴):

- 图编号:图1 / 图2 / …
- 图类型:封面 / 概览 / 讲义
- 画幅:16:9(或用户指定)
- 版式模板:对比两卡 / 三卡洞察 / 五步路线图 / 通用信息图 / 五格漫画
- 文字预算(硬指标):例如“全图仅:标题1行 + 5块标题 + 底栏2行;禁小字;禁模型加字”
- 区域 → 逐字文案(唯一真值):
  - 标题:
  - 区域A(如:流程5块):
  - 区域B(如:底部两卡):
- 图标/隐喻清单(可选):每个区域配 1 个图标关键词

## 本阶段输出物

- **Copy Spec(逐字定稿)**:用户确认后才进入阶段4
- 若用户说“字还是多”:先回到“文字预算”,优先删到“每卡 1 句(或仅标题)”

```

### stages/04-prompts.md

```markdown
# 阶段4:提示词封装(Prompt Pack:可执行生成包)

**目标:** 把阶段3的 Copy Spec 原样封装成"可复制/可调用"的提示词包(Prompt Pack),并支持批量出图。阶段4不负责改文案,只负责:模板拼装、风格一致、参数/约束齐全、避免模型乱加字、把提示词整理成可批量请求的结构化请求包。

## 封装原则(避免和阶段3混淆)

- **Copy Spec 是唯一真值**:提示词中“必须逐字放入”的文字,直接来自阶段3,不在这里重写。
- **提示词负责“怎么画”**:画幅、版式、留白、对齐、图标隐喻、风格块、强制约束、负面提示、参数。
- **封面类默认“禁额外小字”**:明确写“除指定文字外不要生成任何额外文字”。

## 生成步骤(按顺序)

1. 选定结构模板(与 Copy Spec 的版式一致)
2. 粘贴通用风格块:`templates/style-block.md`
   - **风格基准锁定**:每张图都必须以 `templates/style-block.md` 定义的风格作为**唯一允许的基础风格**来生成(奶油纸 + 彩铅线稿 + 淡水彩 + 轻涂鸦、少字高可读)。
   - **不得换风格**:不要让模型自行切换成扁平矢量海报风/3D/摄影写实等“更像信息图默认风格”的路线。
   - 允许你用自己的话描述该风格,但不能删掉关键要素与负面约束(否则风格会被模型先验带偏)。
3. 写清楚画幅/用途(PPT远看 vs 手机近看)与排版硬约束(对齐、留白、字号)
4. 粘贴 Copy Spec 的"必须逐字放入的文字"
5. 加强制约束 + 负面提示(无乱码/不加字/不密集小字/不背景杂乱)
6. 生成**批量请求包(JSONL)**:把每张图的 Prompt 内容写入一行(参考 `templates/apimart-requests-jsonl.md`)
7. 用户选择批量API方式后:直接生成JSONL并执行批量出图(不再二次确认)

## 模板使用

- 通用风格块:`templates/style-block.md`
- 结构模板:
  - 封面路线图(目录/5步):`templates/16x9-cover-roadmap.md`
  - 对比两卡:`templates/16x9-contrast-2cards.md`
  - 三卡洞察:`templates/16x9-3cards-insights.md`
  - 五格漫画:`templates/16x9-5panel-comic.md`
  - 通用信息图:`templates/16x9-infographic.md`

## 本阶段输出物

- **Prompt Pack**:按"图1/图2/…"编号输出;每张图一个独立代码块(便于复制/脚本调用);代码块外最多 1–2 句说明
- **Batch Request Pack(JSONL)**:例如 `out/apimart.requests.jsonl`(一行一张图,字段见下文)
- **执行方式**:当用户在阶段4明确选择"批量API"时,先输出提示词让用户查看(选项A:手动出图 或 选项B:批量API),一旦用户选择B,直接生成JSONL并执行,不再二次确认

## 为什么“阶段4”容易风格跑偏(解释逻辑)

阶段4本质是“用文字去约束一个带强默认审美的出图模型”,风格会被多方力量拉扯:

1. **模型先验(Style Prior)**:很多模型看到 “infographic/信息图” 会自动偏向“干净的扁平矢量/海报风”,即使你写了彩铅水彩,也可能只被当作弱建议。
2. **可读性约束会压过质感**:当你同时要求“中文大字号、严格对齐、少字、清晰”,模型会优先保证字清楚与版式稳定,牺牲纸纹、彩铅笔触等“质感细节”。
3. **风格基准不够“排他”会降权**:如果不强调“这是唯一允许风格,不能换”,模型会把它当成“可选项”,然后自动回到信息图的默认风格(常见是扁平矢量/海报风)。
4. **风格词太短/太抽象**:仅写“彩铅水彩”不足以锁定细节,需要补“纸纹可见、笔触可见、轻晕染”等可观察特征,并配合负面约束(已在风格块中补强)。

实操上要提升稳定性:在每张图的 prompt 里都明确“以该风格为唯一基础,不得换风格”,并加入“不要扁平矢量/不要3D/不要摄影”等负面约束来对冲模型的默认风格。

---

## 批量调用 APIMart API 出图(用户选择后直接执行)

> 规则:**先封装 Prompt Pack 并展示给用户 → 询问"手动出图"还是"批量API" → 用户选择"批量API"后直接生成JSONL并执行**。不在生成JSONL后再次确认。

### 需要的两个东西

1. **API 配置**(建议放本地文件):`scripts/apimart.env`(参考 `scripts/apimart.env.example` 与 `templates/api-config.md`)
2. **批量请求包**(JSONL):例如 `out/apimart.requests.jsonl`(参考 `templates/apimart-requests-jsonl.md`)

### 请求包字段(每行一张图)

- `id`:建议 `01` / `02` / …
- `prompt`:阶段4输出的 Prompt 内容(可直接粘贴)
- `size`:默认 `16:9`
- `n`:默认 `1`
- `resolution`:默认 `2K`
- `model`:默认 `gemini-3-pro-image-preview`
- `pad_url`:可留空(暂不需要垫图 URL)

### 运行方式(二选一)

**A) 用脚本批量出图(推荐)**

```bash
python3 scripts/apimart_batch_generate.py \
  --config scripts/apimart.env \
  --input out/apimart.requests.jsonl
```

**B) dry-run(不请求;把 curl 与请求信息写入单个 `run.json`)**

```bash
python3 scripts/apimart_batch_generate.py \
  --config scripts/apimart.env \
  --input out/apimart.requests.jsonl \
  --dry-run
```

> curl 格式参考:`templates/apimart-curl.md`

```

### stages/05-iterate.md

```markdown
# 阶段5:迭代润色(让图更好看)

**目标:** 根据用户反馈快速迭代:更趣味、更少字、更清楚。

## 常见反馈 → 对应动作

- “字太多/太丑” → 每卡压到 **1 句 + 1 关键词**,删掉副标题或把副标题变短
- “这张应该是封面/目录,但你给成了讲义” → 回到阶段1重锁:图类型 + 文字预算(封面模式:每块仅标题,禁小字)
- “隐喻看不懂” → 换成更大众隐喻(毛线/背包/路牌/工具箱)
- “排版不均衡” → 强调“等宽卡片/严格对齐/留白”
- “中文不清楚” → 强调“大字号/无小字/干净字体/避免花体”
- “模型乱加字/补充说明” → 在提示词里加硬约束:**除指定文字外不要生成任何额外文字**

## 回归检查

迭代后对照 `templates/checklist.md` 过一遍再交付。

```

### templates/style-block.md

```markdown
# 通用风格块(风格基准:必须以此为唯一基础)

- 画幅:16:9 横版信息图(除非用户要竖版)
- 质感:奶油色纸张底(纸纹可见),彩铅线稿(笔触可见) + 淡水彩上色(轻晕染)
- 氛围:暖色调、轻涂鸦装饰、趣味但干净
- 可读性:中文必须清晰可读、无乱码;大字号;少字短句;避免密集小字/段落
- 版式:留白充足、层级清晰、卡片对齐、箭头醒目
- 负面约束:不要扁平矢量海报风、不要 3D、不要摄影写实、不要复杂背景/强渐变光效、不要额外小字注解/水印/署名、不要英文与随机字符

```