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.
Install command
npx @skill-hub/cli install yunshu0909-yunshu-skillshub-image-assistant
Repository
Skill path: image-assistant
配图助手 - 把文章/模块内容转成统一风格、少字高可读的 16:9 信息图提示词;先定“需要几张图+每张讲什么”,再压缩文案与隐喻,最后输出可直接复制的生图提示词并迭代。
Open repositoryBest 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
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、不要摄影写实、不要复杂背景/强渐变光效、不要额外小字注解/水印/署名、不要英文与随机字符 ```