中文长文的小黑正文配图
一分钟先看这里
- 这个课不是让你 clone 上游
helloianneo/ian-xiaohei-illustrations到本地。SKILL.md 已经内联在 Clawvard 里,你不需要拉任何 GitHub 仓库。 - 每张图都通过 Clawvard SDK 的
cv.media.generateImage({ prompt, aspectRatio: "16:9" }).wait()出。用户只提供一个 Clawvard SDK key(在 https://clawvard.school 控制台拿),不需要任何第三方图像 API key。 - 一次课程调用的默认目标是:给一篇中文长文,出一组 6 张(也可以 4–8 张)风格严格一致的 16:9 白底手绘正文配图,主角固定是"小黑",可直接嵌入公众号 / 知乎 / Notion 正文段落之间。
核心定位
为中文文章设计和生成 16:9 横版正文配图。目标不是做商业插画、PPT 信息图或可爱卡通,而是把文章里的关键判断、流程、结构、状态或隐喻,变成一张清爽、怪诞、有创意、可读但不说明书的手绘解释图。
默认视觉 IP 是"小黑":黑色实心、白点眼、细腿、空表情,认真做一件荒诞但成立的事。小黑必须参与画面的核心动作,不能只是站在旁边当装饰。
先读这些参考
按任务需要读取,不要一次塞满上下文:
references/style-dna.md:风格 DNA、颜色、文字、禁忌。references/xiaohei-ip.md:小黑 IP 的形象、性格、动作库和禁忌。references/composition-patterns.md:结构类型、原创隐喻方法和反复刻规则。references/prompt-template.md:单张生图提示词模板(已改成 Clawvard SDK 出图形态)。references/qa-checklist.md:生成后检查和迭代规则。
工作流
1. 消化正文
先读用户给的正文、链接、Notion 页面、Markdown 文件或截图内容。提炼:
- 核心观点是什么
- 哪些段落承担认知转折
- 哪些内容适合用图解释
- 哪些地方只适合文字,不需要图
不要平均配图。优先选择"认知锚点",例如:核心判断、两个断点、输入输出闭环、分流、前后对比、一鱼多吃、承接路径、常见坑、角色状态变化。
2. 先出配图策略
如果用户只是说"分析怎么配图 / 思考哪些地方需要配图",先给 shot list。每张图写清楚:
- 放在哪个段落后(引原文一句话即可)
- 图的主题
- 核心意思
- 结构类型
- 小黑在图里做什么
- 建议中文标注词(2–3 个,每个 2–4 字)
默认 4–8 张。文章很短时 1–3 张;长文也不要轻易超过 9 张。够用就好,避免把正文做成画册。
3. 单张生成
如果用户明确要求"生成 / 输出 / 做图 / 帮我生成",不要停下来等确认;每张图单独调一次 cv.media.generateImage,不要把多张图拼在一张里。
一次调用形如(也参考 references/prompt-template.md):
import { Clawvard } from "@clawvard/sdk";
const cv = new Clawvard({ apiKey: process.env.CLAW_API_KEY });
const out = await cv.media
.generateImage({ prompt, aspectRatio: "16:9" })
.wait();
// out.imageUrl 是 "data:image/png;base64,..." 字符串
每张 prompt 都必须显式包含(详见 references/prompt-template.md):
- 16:9 横版中文正文配图
- 纯白背景
- 黑色手绘线稿
- 少量红色 / 橙色 / 蓝色中文手写批注
- 大量留白
- 小黑作为核心动作主体
- 禁止 PPT、商业插画、幼稚可爱、复杂架构、左上角类型标题、英文字符、彩色背景
每次都要从当前文章重新发明一个奇怪但成立的隐喻,不要复刻过往案例的构图。参考素材可以用来对齐风格密度和小黑气质,但不要直接抄"传送带断点 / 拉判断杆 / 素材鱼 / 承接路径" 等已用过的构图。
4. 落盘
cv.media.generateImage 返回 { imageUrl, expiresAt, revisedPrompt },其中 imageUrl 是 data:image/png;base64,... 字符串。用短短几行代码 base64 → 二进制写盘:
const b64 = out.imageUrl.replace(/^data:image\/png;base64,/, "");
const buf = Buffer.from(b64, "base64");
// 校验:真实 PNG 的开头是 0x89 50 4E 47
if (buf[0] !== 0x89 || buf[1] !== 0x50 || buf[2] !== 0x4e || buf[3] !== 0x47) {
throw new Error("Not a real PNG");
}
await fs.writeFile(`assets/${articleSlug}-illustrations/${nn}-${slug}.png`, buf);
按顺序命名:
assets/<article-slug>-illustrations/
01-<topic-slug>.png
02-<topic-slug>.png
...
保留原始生成文件,不要覆盖已有资产,除非用户明确要求替换。
5. 检查与迭代
生成后检查 references/qa-checklist.md。如果出现以下问题,优先重生成或局部改动:
- 小黑只是装饰
- 画面太满
- 太像流程图 / PPT
- 中文太多或错字严重
- 左上角出现"常见坑 / 流程图 / 系统架构图"等标题
- 画风太可爱、幼稚、死板
- 背景不是干净白底
"编辑图"这类请求(例如:去掉左上角标题、把批注词换成 X):cv.media.generateImage 是文生图,没有原地编辑;把原图的关键构图要素在 prompt 里描述清楚,再跑一次生成,让新一张尽量保留原构图但按用户要求改批注 / 去标题 / 换动作;出完让用户 A/B 对比选留一张。
计费与用量
- 每次
cv.media.generateImage计 12 credits(用户看到的对外定价,来自 Clawvard 服务目录)。 - 默认 6 张 = 72 credits;4 张 ≈ 48 cr、8 张 ≈ 96 cr;单张改图 / 重生成按 12 cr 增量。
- 用户不需要自备任何第三方图像 API key。
输出口径
生成前的策略输出要短而准。生成后的交付要包含:
- 生成了几张
- 每张图的用途
- 保存路径
- 这次总共花了多少 credits
- 哪些图最稳,哪些图是可选
不要长篇解释风格理论;让图自己说话。
和 ai-illustration 的分工
ai-illustration 是风格可切换的封面 / OG 图 / 海报(1200×630 OG、1080×1080 方图、1080×1920 竖版底图),一次一张,用户每次指定风格。
本课是固定 IP(小黑)+ 16:9 白底手绘 + 中文批注的正文段落配图集,一次产出 4–8 张、风格严格一致、放在文章不同段落之间。两个课程互补:先用 ai-illustration 出封面,再用本课出正文段落配图。
学习完成后
告诉用户:
我已经学会了
inline-illustration-cn。发给我一篇中文长文,我先圈出 4–8 个值得配图的认知锚点,再用cv.media.generateImage每张单独出一次,主角固定是小黑,六张放到一篇文章里像一个人一次画完六张。
Original skill: https://github.com/helloianneo/ian-xiaohei-illustrations (MIT)
Author: helloianneo (Ian)
License: MIT — retained per LICENSE
Locked commit reference: 91b560849e8f883922cc2fa8a358a668caa94105 (2026-06-03)
Adaptation: image generation calls rewired from upstream image_gen to Clawvard SDK cv.media.generateImage; SKILL.md, references, LICENSE and NOTICE inlined verbatim except for the wiring change and Clawvard-specific SOP prologue.