上面这种小饭团插画,是我之前用“小饭团的奇妙之旅”这个 skill 给文章、活动文案做正文配图时,希望稳定产出的效果。它的角色更接近文章里的小注释,读者读到一个概念、一个流程、一个转折点的时候,它在旁边轻轻托一下,但不会突然变成整篇文章的视觉主角。

这套东西我自己用起来还挺顺手,尤其是写工具介绍、项目复盘、PRD 说明的时候。以前我经常遇到一个问题:AI 能生成一张不错的图,但很难稳定生成一组适合放进正文里的图。第一张可能像 3D 海报,第二张变成扁平 icon,第三张又突然塞满场景。单独看都还行,放到同一篇文章里就很乱。

小饭团这个 skill 当时解决了一部分问题。它会先读文章,再决定哪里需要插图,然后用同一个背景、同一个角色、同一种注释式构图去生成一组图片。问题是,它和小饭团绑定得太死了。如果只是我自己写文章,这当然没什么;但如果你也想要这种正文插图效果,你可能更想换成自己的品牌角色、产品 mascot,或者临时生成一个适合当前文章的主角。

所以我把原来的小饭团配图流程抽出来,做成了这个 Illustration for U。简单说,以前是“小饭团可以这样给文章配图”,现在变成了“你也可以用自己的角色做同样的事情”。

获取链接:https://github.com/Niall-Young/Illustration-for-U

这个 Skill 在做什么

Illustration for U 的核心是一条文章配图工作流。你给它一篇文章、Markdown、PRD 或活动文案,它会先读内容,判断哪些位置真的需要插图。这个判断很关键,正文配图一多,阅读节奏很容易被打断。很多时候一篇文章只需要在章节开头、概念转折、关键例子或者总结段落放几张就够了。

生成完以后,它还会写一份 guide.md。这份 guide 会说明每张图建议放在哪里,为什么放在那里,画面在表达什么,角色做了什么动作,以及 alt text 应该怎么写。我觉得这一步很重要,很多配图失败的问题其实出在图和文章结构没有关系。图片如果不知道该插在哪个段落前后,就更像素材库里的图,没有贴到文章结构上。

从输出上看,它通常会生成一个 images/ 目录和一份 guide.md。如果你只用文字描述角色,它会先生成一个 images/character-reference.png,然后再拿这个参考图继续生成后面的正文插图。这样做是为了减少角色漂移,不然 AI 很容易第一张长这样,第二张长那样。

和小饭团 Skill 的区别

原来的小饭团 skill 是固定角色版本。它默认使用小饭团作为主角,规则也写得非常细:身体形状、海苔块、线条手脚、背景色、画面密度都要保持一致。这个约束对小饭团很有用,因为它保证了每张图里的角色不会乱变。

Illustration for U 保留了这种“锁定角色”的思路,但把角色本身变成可配置的。你可以直接上传一张角色参考图,也可以只写一段角色描述,让它先生成一个稳定的角色参考图。如果你什么都不提供,它会继续使用默认的 assets/character-reference.png,也就是当前内置的小饭团。

背景色也是一样。默认是 #F4F4F2,因为这个浅灰背景很适合正文插图,不会太抢眼。但如果你的品牌或文章风格需要别的颜色,也可以在请求里指定。具体色值可以换,关键是整组图片要统一。正文里最怕一组图一张浅灰、一张浅黄、一张偏蓝,单张看不明显,放在一起就会很散。

怎么使用

如果只是临时给一篇文章配图,可以直接这样叫它:

用 $illustration-for-u 给这篇 Markdown 文章做正文插图。

如果想用默认小饭团,也可以把要求说得更明确一点:

给这篇文章配图,用默认小饭团,背景色 #F4F4F2。

如果你已经有自己的角色图,就把图一起给 Codex,然后告诉它用这张图做主角:

用 $illustration-for-u 给这篇文章做正文插图。
使用我上传的角色图作为主角,背景色用浅蓝色。

如果还没有角色图,也可以只用文字描述角色。比如你想让一只戴耳机的白色圆形机器人来做这篇 PRD 的正文插画主角,就直接写清楚角色和背景色。skill 会先生成角色参考图,再继续生成整组插图。

给这个 PRD 做一组正文插画。
角色是一只戴耳机的白色圆形机器人,背景色用 #F7F3EA。

这几种用法的区别在于:临时角色只影响当前任务,默认角色会影响以后每一次调用。临时背景色也是一样,只影响这次文章;如果你想让一个颜色以后都成为默认值,就要改 skill 里的配置。

怎么改成你自己的固定 IP

如果只是某一次文章想换角色,上传角色图就够了。但如果你想把这个 skill 变成“以后默认都用我的 IP”,就不要每次都临时传图,直接替换 skill 里的默认角色参考图。

默认角色文件在这里:

illustration-for-u/assets/character-reference.png

把你的 IP 图替换成同名文件就行:

cp /path/to/your-ip.png illustration-for-u/assets/character-reference.png

这里最好用一张干净的 PNG。不要放复杂背景,不要一张图里塞多个角色,也不要放很多姿势。最稳定的是单个角色、完整身体、方形画布,细节不要太复杂。正文插图里的角色通常不会很大,参考图本身太复杂,后面生成时更容易漂。

替换图片只是第一步。更重要的是把规则文档里的“小饭团设定”也改掉。因为原来的默认 preset 会写到小饭团的身体、海苔、手脚这些锁定规则,换成别的 IP 后,这些描述就不能继续沿用。

我一般会直接搜这些词:

rg "小饭团|rice-ball|nori|饭团" illustration-for-u README.md

搜到以后,重点看 illustration-for-u/SKILL.md、illustration-for-u/references/illustration-style.md、illustration-for-u/agents/openai.yaml 和 README.md。这里别只把名字从“小饭团”替换成你的 IP 名字,角色锁定规则也要跟着换成你自己的特征。

比如你的 IP 是一个白色机器人,那规则就应该写它的轮廓、脸部特征、耳机、主色、线条风格、手脚形式。这样后面每次生成图,Agent 才知道哪些东西可以变,哪些东西不能变。它可以改变动作和表情,但不应该每张图都重新设计一个角色。

怎么全局固定背景色

背景色也是同样的逻辑。某一篇文章临时想用某个颜色,就直接在请求里写:

用 $illustration-for-u 给这篇文章配图,背景色用 #F7F3EA。

但如果你希望这个 skill 以后默认都用固定背景色,就把默认的 #F4F4F2 全局替换掉。比如你想把默认背景色改成 #F7F3EA,可以这样处理:

perl -pi -e 's/#F4F4F2/#F7F3EA/g' \
  README.md \
  illustration-for-u/SKILL.md \
  illustration-for-u/references/illustration-style.md \
  illustration-for-u/agents/openai.yaml

改完以后再检查一次:

rg "#F4F4F2" README.md illustration-for-u

如果没有结果,说明旧默认色已经没有残留。之后用户没有单独指定背景色时,skill 就会使用你的新默认色。这个步骤看起来只是替换一个色值,但对正文插图很重要,因为背景色一旦乱掉,整组图的统一感会马上下降。

我希望它约束什么

我做这个 skill 的出发点,是想让 Agent 少走一些常见捷径。比如没读文章就直接开始生图,或者机械地每段都配一张图,或者把正文插图做成封面海报。还有一种更隐蔽的问题是角色一致性:第一张图里的主角是一个可爱的 mascot,第二张突然多了复杂手指,第三张又变成 3D 玩偶。单次看可能还能接受,一组图放进文章里就很明显。

这里其实还有一个我一开始低估的难点:正文配图除了要稳定,还得学会“别抢”。小饭团这套风格在制作过程中前后改了六七个版本,有些版本单独打开看会觉得更完整,画面里有更多物件、更强的层次、更明显的情绪,但一放回文章里就不对了。文章里文字才是主角,图片应该帮读者停一下、理解一下,不能把注意力整个拽走。

所以后面我一直在压视觉重量。画面不能太满,信息不能太多,角色动作也不能太戏剧化。很多时候继续加元素只会更吵,删掉一个元素以后,反倒更像正文插图。背景色、线条粗细、色块大小、留白比例、红色标注能不能出现、出现多少,这些东西看起来都很小,但它们决定了图片放在段落之间时会不会突兀。这个风格靠一次 prompt 写不出来,确实是反复生成、放回文章、再删减、再收紧以后才慢慢压住的。

所以这个 skill 里面有很多看起来有点啰嗦的规则。它要求先读文章,先规划插图位置,先确定角色和背景色,再生成图片,最后还要写 guide。这些规则的作用很直接:减少胡猜、减少漂移,也尽量避开那些“看起来很 AI 但放进文章不好用”的图。

判断正文配图好不好,我会把它放回文章里看:会不会打断阅读,会不会帮助理解,会不会和前后图片保持同一套视觉语言。单张图漂不漂亮当然也重要,但它排在后面。

适合什么场景

我觉得它比较适合工具介绍、产品教程、PRD、项目说明、活动方案、知识库文章这类内容。尤其是你有一个固定 IP,希望它长期出现在不同文章里,那这种 skill 会比较有用。

如果你要做封面、海报、banner、主视觉,这个 skill 就不太适合。它默认会把画面压得比较轻,留白多,颜色也不会很跳,因为它服务的是正文阅读。

后面如果继续改,我可能会加不同文章类型的配图节奏。教程类文章可以更偏步骤图,观点类文章可以更偏对比图,复盘类文章可以更偏时间线。guide.md 也可以再做得更像一份编辑说明,别只停在图片清单。但第一版我不想做太复杂,先把最核心的事情跑通:让用户可以用自己的角色,稳定地给一篇文章生成一组正文插图。