Skill发布于 2026年8月15日

我不想安装 10 个 AI 配图 Skill,所以自己写了一个「智能配图路由器」

这篇文章讲述了作者如何从安装多个AI配图Skill的困境中,自主开发出智能配图路由器`yf-article-illustrator`的过程。它从“给文章找图”的简单需求出发,演变为一个能判断何时配图、选择插画或图解、统一视觉风格的决策系统。值得一读,因为它展示了如何将繁琐的工具管理转化为清晰的内容创作逻辑。

超级管理员12 次阅读最后更新 2026年9月3日

我不想安装 10 个 AI 配图 Skill,所以自己写了一个「智能配图路由器」

最近我在整理博客里的 AI Skill。

原本想法很简单:文章写完没图,就去 GitHub 找几个能自动配图的 Skill。

结果找着找着,事情开始不对劲。技术手绘有一个,小黑隐喻有一个,微缩场景有一个,火柴人有一个,水彩还有一个。继续找下去,我大概真能给每一种画风装一个。

可文章写完以后,到底该调用哪个?

一篇讲 Git 工作流的文章,拿水彩画不太对劲;一篇项目踩坑复盘,硬塞一个架构图,又会显得像在补 PPT。更麻烦的是,同一篇文章里随手调用几个 Skill,很容易变成一张技术手绘、一张卡通、一张赛博蓝图。图倒是有了,文章像拼出来的。

我研究了 11 个配图项目;它们并不等于 11 套预设画风。最终 Router 提供 9 个可直接指定的风格、一个 Visual IP 扩展位,以及 Diagram 这条功能型路径。

一位技术作者面对一排不同画风的画笔工具,最后拿起写着 Router 的分流器;手绘技术插画

于是我做了 `yf-article-illustrator`。它现在是 v1.4.0。它不只接 Markdown,也能把 HTML、TXT、结构化 JSON 和已经完成的聊天正文,先归一成同一种文章模型,再做“配图决策”。生成图片仍然是最后一步。

这篇不想复述 README。我想讲讲它是怎么从“给文章找图”变成一个 Router 的。

怎么安装:也可以直接让 AI Agent 去装

本地安装很朴素:克隆仓库,再把整个 `yf-article-illustrator/` 目录放进 Codex 的 skills 目录,刷新技能列表即可。

sh
git clone https://github.com/yf122233455-stack/yf-article-illustrator.git
mkdir -p "${CODEX_HOME:-$HOME/.codex}/skills"
cp -R ./yf-article-illustrator "${CODEX_HOME:-$HOME/.codex}/skills/"

如果你不想手动找目录,可以把下面这句话直接交给你的 AI Agent:

text
请帮我安装这个 Skill:
https://github.com/yf122233455-stack/yf-article-illustrator

先阅读 README.md 和 SKILL.md。确认我当前使用的 Skills 目录;安装后检查 SKILL.md、references/ 和 styles/ 是否完整,最后告诉我最终安装路径以及怎么调用。

我会建议 Agent 装完后至少跑一次测试,再开始用。当前版本的完整回归是 33 / 33 通过;测试命令和覆盖范围在文章后面。

怎么用:一句话可以跑,复杂一点也能控制

最短的调用是:

text
使用 $yf-article-illustrator 为 article.md 自动配图。

它会先做机会筛选,默认不按字数凑图。想先看方案、暂时不生图:

text
使用 $yf-article-illustrator 分析 article.md,先不要生成图片。
输出 Shot List 和完整 Prompt。

明确想要手绘技术图和 4 个图点时,可以这样说:

text
使用 $yf-article-illustrator 为 article.md 配图。
style: technical-handdrawn
count: 4
explain-routing: true

v1.4 推荐走统一入口 `scripts/article_io.py`:它会先写不可变的 `article.source.md`,再把最终文章、图片、Prompt、Diagram 源文件、Shot List 与 Manifest 收进 `outputs/articles/<article-slug>/`。原始输入不覆盖,聊天也不再只是一次性的上下文。这篇文章本身也是先固定正文,再生成 Shot List、Prompt 和 4 张正文插图,最后落成 Markdown。

先承认一个尴尬:文章不缺图,缺的是判断

很多配图工具的默认动作都是“给我文章,出 N 张图”。这很顺手,也很危险。

因为“这段文字旁边有块空白”不是图片理由。一段背景介绍、一个普通定义、几句没有关系结构的结论,配图通常只是在占版面。读者看完不会更懂,还得花注意力确认这张图和文字有什么关系。

所以路由器的第一道门不是选风格,而是找 Visual Opportunity。它会看一段内容有没有值得可视化的锚点:概念之间的关系、流程、前后状态变化、层级、比较、故事现场,或者一个很适合记住的比喻。然后从信息增益、读者可能卡住的地方、画面是否独特、段落是否重要、是否和邻近内容重复几个角度打分。分不够,结果就该是 `no-image`。

我挺喜欢这个“不画”的能力。它让 Skill 终于不像一个勤快但不看场合的插画机。

一张带有“值得画?”检查门的手绘流程图:普通定义被放行到 no-image,比较、流程、架构和故事现场进入配图队列

路由的第一个分岔:插图,还是图解

这件事一开始我想得太简单,以为每一段都可以用生成图解决。后来发现,只要内容里有读者必须相信的箭头、顺序、组件关系,图就不能靠“看起来差不多”。

比如“文章 → 机会检测 → 选类型 → 锁风格 → 生成或写 Prompt → QA → 插回 Markdown”这条链路,画成一张手绘风格的流程图当然可以;但路由器内部遇到严格架构、数据流或分支时,应该先选 Diagram,再选 Mermaid、Excalidraw 之类的后端。画风可以友好,关系不能含糊。

在 v1.4.0 里,Diagram 仍然是信息类型,不是 SVG 的同义词。它没有自己的 Style,却继承文章的 Visual DNA:背景、调色板、线条性格、间距和强调方式都要和正文插图相认。语义则由不可变的 `semantic_spec` 管:节点、边、分组、方向和标签不能因为换了 Mermaid、SVG 或 Excalidraw 就变掉。SVG 仍不是默认答案,只有节点、边、文字密度和交叉风险都很低时才有资格考虑。

mermaid
flowchart LR
    A[Markdown 文章] --> B[Visual Opportunity Detection]
    B --> C{值得画?}
    C -- 否 --> D[no-image]
    C -- 是 --> E{信息类型}
    E --> F[插图:锁定画风]
    E --> G[Diagram:选后端]
    F --> H[生成 / QA / 插回 Markdown]
    G --> H

上面这种关系是精确的,所以我宁可它是 Mermaid,也不要求它长得像一张“AI 图”。图解是用来让人核对逻辑的。

一篇文章只锁一种插图画风

我后来给路由器加了一个很笨但有效的规则:先在文章级别选定 `primary_illustration_style`,再让每张普通插图继承它。

技术教程通常是 `technical-handdrawn`,项目复盘更可能是 `miniature-scene`,偏方法论的文章可能选 `minimal-character`。这不是硬编码的美学偏见,而是先看文章类型、技术密度、叙事密度和语气,再锁住一个主要语言。Diagram 不再被当成另一种画风;它没有独立 Style,但也得继承同一套 Visual DNA。

这个规则解决的是一个很朴素的问题:读者翻页时,得觉得这些图属于同一篇文章。

左右对比的手绘技术图:左侧是混用水彩、卡通、赛博蓝图的凌乱文章;右侧是统一纸张、线条和浅色标记的文章,标题为“一篇文章,一种插图语言”

这篇文章本身是技术开发复盘,但核心在解释一个路由系统,所以我按 `technical-handdrawn` 锁了手绘技术风格,选近白暖纸、深灰线条,配浅蓝、鼠尾草绿、浅桃和浅紫。下面三张插图都沿用这套基调;Mermaid 图的语义不变,视觉上也继承这套 DNA。

可以指定哪些风格?这里把内置风格一次看完

除了 `style: auto`,也可以在调用时写 `style: <名称>`。现在有 9 个可直接指定的内置风格;下面用同一个“文章如何找到合适的图”主题做样式预览,方便横向看出区别。真正使用时,Router 会先看文章结构,不建议为了图好看而反过来改内容。

technical-handdrawn

适合技术教程、概念和解释型文章。线条有一点手工感,但关系清楚,短标签够用。

technical-handdrawn 风格预览:手绘技术路由关系图

minimal-character

适合方法论和抽象概念。一个匿名极简人物必须在画面里做关键动作,不是站在旁边当装饰。

minimal-character 风格预览:极简人物把文章交给路由器

miniature-scene

适合项目复盘、Bug、部署压力和开发故事。它把冲突放进一个小型真实场景里。

miniature-scene 风格预览:小型工作台上的配图路由场景

watercolor-sketch

适合随笔、旅行、城市生活和需要情绪的文章。它不该承担严格架构或精确流程。

watercolor-sketch 风格预览:开发者在窗边整理带插图的文章

editorial

适合观点、趋势与深度分析。它用有限色彩和抽象几何讲一个内容相关的隐喻。

editorial 风格预览:文章内容与配图决策的抽象关系

stick-figure

适合初学者解释和简单比较。信息优先,精致程度靠后。

stick-figure 风格预览:火柴人比较手动选图和路由选图

clean-infographic

适合数据、比较、框架和短摘要。遇到必须精确的箭头与节点时,仍应改走 Diagram。

clean-infographic 风格预览:配图决策框架摘要

knowledge-sketch

适合教学、学习笔记与章节回顾。它像一页干净的知识笔记,不该装下一整本教材。

knowledge-sketch 风格预览:文章配图路由的知识笔记

xiaohei

小黑是当前新增的显式选择风格,适合中文文章中的概念隐喻和工作流。它不会被 `style: auto` 默认选中;想用时要明确写 `style: xiaohei`。画面是纯白底、黑色小黑角色和少量橙红蓝批注,重点依旧是动作,不是吉祥物摆拍。

xiaohei 风格预览:小黑从文章页中压出一张选中的插图

还有一个 `visual-ip`,它不是现成画风,而是用户明确提供原创角色、性格、色彩和允许动作后才启用的扩展位。我没有给它生成默认样图,避免把它误当成某个现成 IP;也不建议从公开角色或创作者风格推导。

最后的兜底,不是报错,是把可执行的计划留下来

现实里,图片后端并不总在。缺权限、网络出问题、当前环境没有模型,都很常见。

我不想让一次渲染失败把文章工作流卡死,所以有了 `prompt_only` fallback。即使不生成像素,路由器还是会落下 `article.source.md`、`shot-list.md`、每张图的 Prompt、`manifest.json`,以及需要图解时的源文件。之后换个有生图能力的环境,可以接着跑,不用再从文章里猜一遍“刚才到底想画什么”。

统一流程会把最终文章写为 `article.md`、`article.html` 或 `article.json`;老的 Markdown 插入流程仍会生成独立的 `<article-stem>.illustrated.md`。无论走哪条路,稳定源稿都不覆盖。

一个手绘工作台:左边是文章草稿,中间是 shot-list、prompts、manifest 和 Mermaid 源文件,右边是插图版 Markdown;一条箭头标为“prompt-only 也能继续”

我确实跑了一遍测试,这次是 33 / 33

写这篇时,我重新检查了本地项目的 `README.md`、`SKILL.md`、路由规则、QA 脚本、验收文档和测试。版本是 v1.4.0。

我实际执行了:

bash
python3 -m unittest discover -s tests -v

结果是 33 / 33 通过。它不只测旧 Router:还覆盖 Existing Article、Write Then Illustrate、预写作视觉计划、正文稳定门禁、Canonical Article Model、多格式输入、不可变 Source of Truth、Prompt-only 落盘、HTML / JSON 最终输出,以及 Styled SVG、Mermaid、Excalidraw 与 Markdown 插入。

这组测试解决了一个我很在意的问题:Diagram 可以没有独立 Style,但不能变成没有视觉责任的例外。换了后端,语义不许漂;换了文章,视觉也不能散。

现在我不再收集 Skill 了

我还是会继续看新的配图 Skill。不同视觉语言都有用,手绘技术图也很适合中文技术文章。但我的安装顺序变了:先问它擅长解决哪一种内容,再决定要不要接到 Router 后面。

`yf-article-illustrator` 目前不是一个万能生成器,它更像一个很克制的调度员。该不画时不画;该画关系时用图解;该画氛围时再用插图;而一篇文章最终只说一种视觉语言。

这比再装十个 Skill 安静多了。


项目:[`yf-article-illustrator`](https://github.com/yf122233455-stack/yf-article-illustrator) · 当前本地版本:v1.4.0

版权声明

1 本文章标题: 我不想安装 10 个 AI 配图 Skill,所以自己写了一个「智能配图路由器」

2本文章地址:https://yf2029.com/articles/我不想安装-10-个-ai-配图-skill-所以自己写了一个-智能配图路由器

3 本站文章内容仅供学习、交流与界面验证参考,如有版权或引用问题,请联系站点维护者处理。

4 本站不对文中外部链接、第三方资源或读者据此操作产生的结果承担保证责任。

上一篇

我给 Codex 换了张皮肤:从默认工作台到自己的驾驶舱

好用工具

下一篇

让 AI Agent 自动给中文文章画「小黑手绘配图」

Skill

评论

登录后即可发表评论和回复。

0 条
评分
0/1000
还没有评论,来说两句吧

AI Knowledge Blog

记录代码与设计实践

分享开发经验、项目思考与持续成长的过程

© 2026 New Blog | Build with Code, Design and AI

站点反馈

如果你在浏览或使用过程中有建议,欢迎告诉我们。

京ICP备2026021696号

京公网安备11010602202996号