学科知识信息图生成
依赖
本 Skill 依赖 ai-image-generator 作为生图执行层。确保已安装:
npx skills add wwwzhouhui/skills_collection -s ai-teaching-media
需要设置对应环境变量:MULERUN_API_KEY、APIMART_API_KEY、ATLASCLOUD_API_KEY 或 AGNES_API_KEY(设一个即可;多个时请显式指定 --provider)。
工作流程
Step 1:解析用户输入
用户输入示例:
"声现象"→ 自动推断:初二物理 · 第二章"初二物理 光现象"→ 直接提取:初二物理 · 第四章"帮我做一张关于杠杆原理的知识卡片"→ 推断:初二物理 · 简单机械"勾股定理"→ 推断:初二数学"光合作用"→ 推断:初一生物
提取字段:
topic:知识点名称subject:学科grade:年级(未提供则自动推断)edition:教材版本(默认人教版;不同版本章节编排不同,用户指定了版本就按用户的)chapter:章节号(未提供则按edition推断;不确定时宁可省略章节号,也不要标一个错的印在图上)key_concepts:3-5 个核心子概念(自动拆解)
Step 2:确定视觉主题色
全线走低饱和(莫兰迪)色调——不给生图模型"蓝色系"这种粗粒度色名(它会默认输出高饱和的 "AI 信息图蓝"),而是给具体色卡:主色 + 底色 + 中性色各带 hex 锚点。同学科不同章节在 可选色卡里轮换主色,同一批次不重复。
| 色卡 | 主色 (accent) | 底色 (bg tint) | 中性 (neutral) | 适用 |
|---|---|---|---|---|
| 陶土橙 | terracotta #C97E4E |
cream #F7F1E6 |
slate blue-grey #3A506B |
物理(声/热)、化学(有机) |
| 深灰蓝 | slate blue #3A506B |
misty blue-white #EDF3F8 |
warm grey #8A7D6B |
物理(电/力)、英语 |
| 柔青绿 | muted teal #4A9E9B |
pale green-white #EAF1E3 |
grey olive #8E9678 |
物理(光/透镜)、化学 |
| 雾紫 | misty purple #7A6296 |
ivory #F7F3ED |
grey blue #6B7889 |
数学 (与教学视频 math 主题同源) |
| 深茶绿 | deep tea green #5F6B4F |
pale green-white #EAF1E3 |
light khaki #D9C9A3 |
生物 |
| 焦糖棕 | caramel brown #8A624A |
cream beige #F4E6C8 |
grey coffee #6F5F4A |
语文、历史 |
| 鼠尾草绿 | sage green #8FA08A |
oat #F2EAD9 |
grey olive #8E9678 |
生物(植物)、英语 |
规则:
- 主色只用在标题、编号徽章、关键词、公式高亮上(约 10% 画面),卡片底和背景走底色的浅变体
- 中性色给次级文字、结构线、说明性标注
- 禁止高饱和糖果色、霓虹色、纯
#FF系色相 - 与
edu-teaching-animation做同一知识点时,选同源色卡(如勾股定理 → 雾紫),信息图、动图、视频风格统一
Step 3:构建提示词
读取 references/prompt_template.md 获取提示词骨架,填入以下变量:
{topic}→ 知识点名称{grade}→ 年级{subject}→ 学科{chapter}→ 章节{theme_color}→ 主色(英文名 + hex,取自 Step 2 色卡,如misty purple #7A6296){bg_tint}→ 底色(英文名 + hex){neutral_color}→ 中性色(英文名 + hex){num_sections}→ 子概念数量{sections_content}→ 各子概念的标题、插图描述、说明文字(从references/illustration_guide.md中匹配,无匹配则自动生成)
Step 4:学科准确性自检(提示词层)
在调用生图之前,对构建好的提示词做检查。这是第一道防线,挡"提示词本身写错"。
数据源: 同时读取以下三个文件,与当前提示词交叉比对:
references/accuracy_checklist.md:通用检查清单 + 分学科检查清单references/illustration_guide.md:各知识点的"必须包含"和"常见错误"列,逐项核对references/errata.md:历史勘误记录,确认没有重复踩坑
检查顺序:
- 通用检查(所有学科):错别字、公式变量标注、年级匹配(超纲检查)、章节号与教材版本一致、数值合理性
- 分学科检查:按 accuracy_checklist.md 中对应学科的清单逐项过。不同学科的出错模式不同——物理查控制变量条件/电路规范/标量矢量,数学查定理适用条件/图形标注一致,化学查配平/反应条件/↑↓符号,生物查过程四要素/箭头方向,语文查名句原文/作者朝代对应,历史查年代/人物事件对应,英语查拼写/词性/例句语法
如果发现问题,先修正提示词再调用生图。
Step 5:调用 ai-image-generator 生图
将构建好的提示词传递给 ai-image-generator 执行生图:
# 单张生成(提示词较长,建议写入文件用 --prompt-file 传入)
python ../ai-image-generator/scripts/generate.py --provider agnes --mode generation \
--prompt-file "<提示词文件路径>" \
--aspect-ratio "9:16" \
--output-dir "output" \
--name-tag "{topic}"
# 批量生成(多个知识点)
# 逐张调用,每张使用不同主题色和 --name-tag
CLI 必填
--mode generation;输出用--output-dir(目录)+--name-tag(文件名前缀),脚本自动加时间戳,不是--output单文件路径。
输出规格:
- 比例:9:16 竖版
- 格式:PNG
- 输出路径:
output/目录
Step 6:成图视觉复核(图像层)
这是第二道防线,挡"提示词对但图画错"——生图模型可能渲染出乱码、错别字、公式上下标错乱、箭头画反、电路画混。每张图生成后必须复核,不复核不交付。
- 用 Read 工具读取生成的 PNG
- 对照
references/accuracy_checklist.md底部"成图视觉复核要点",逐项核对图中实际渲染出来的内容:- 所有中文文字:无乱码、无错别字、无缺笔画的伪汉字
- 公式/方程式/数字:与提示词完全一致,上下标正确,单位没丢
- 图示逻辑:箭头方向、标注位置、结构关系与提示词描述一致
- 再按该学科的分学科清单过一遍图中内容
- 判定与处理:
- 通过 → 交付
- 不通过 → 在提示词中针对出错点追加强调指令(如
The formula must read exactly "a² + b² = c²" with correct superscripts),重新生成。最多重试 2 次 - 重试 2 次仍不通过 → 交付其中最好的一张,但必须明确告知用户图中哪里有错,绝不静默交付错图给学生
- 勘误回流:复核中发现的知识性错误(提示词层漏掉的,不含纯渲染乱码),按格式追加到
references/errata.md,让下次生成自动避坑
Step 7:批量生成
用户请求多个知识点时(如"初二物理上学期全部章节"):
- 自动拆解为独立知识点列表
- 为每张图分配不同主题色(同一批次不重复)
- 逐张调用
ai-image-generator,保持风格统一但色彩各异 - 每张图独立走完 Step 4 自检和 Step 6 视觉复核,不因批量而跳过;复核结果在最终汇总中逐张报告(通过/重试后通过/带瑕疵交付)
使用示例
# 单个知识点
"声现象,做张信息图"
"帮我做一张物态变化的知识卡片"
# 指定学科和年级
"初二物理 光现象"
# 跨学科
"勾股定理"
"光合作用"
# 批量
"帮我把初二物理上学期的知识点全部做成信息图"
"初二物理 声现象、物态变化、光现象、透镜,分别做一张"
注意事项
- 所有文字必须为中文
- 插图以简洁图解为主,不使用真实照片
- 每张信息图的子概念控制在 3-5 个
- 公式必须清晰标注变量含义
- 底部总结区域三选一:关键术语徽章 / 学习提示框 / 生活实例条
- 同一批次生成的多张图,色系必须不同
- 受众是学生,准确性优先于美观:每张图必须走完 Step 4 提示词自检 + Step 6 成图视觉复核才能交付;发现无法修复的知识性错误必须告知用户,不静默交付
- 章节号默认按人教版标注;用户用其他版本教材时请在输入中说明
- 此 Skill 仅生成静态信息图;动态交互演示请使用对应 Skill