
Munder Difflin「小黑」配图质检门AI 正文插图的必过项、失败信号与迭代回路【免费下载链接】munder-difflinA local multi-agent harness that works with your existing Claude Code, Codex subscriptions, allows you to run an office of agents项目地址: https://gitcode.com/GitHub_Trending/mu/munder-difflin本文以 Munder Difflin 仓库中.claude/skills/ian-xiaohei-illustrations/references/qa-checklist.md为核心拆解该项目如何把 AI 生成的正文配图质量控制编码成一份可供 Agent 逐条执行的三段式质检门——必过项、失败信号、症状到处置的映射并结合 SKILL.md 的项目级覆盖规则与 generate-images.mjs 交付流水线说明一张图从生成、复检到入库的完整链路。读完后你可以把同样的“清单式质检”模式套用到自己的 AI 生图工作流中。1. 技能结构QA 清单在工作流中的位置.claude/skills/ian-xiaohei-illustrations/目录是一个 Claude Code Skill。它的 SKILL.md 定义了五步工作流消化正文提炼核心观点、认知转折点、适合配图的位置先出配图策略shot list默认 4-8 张单张生成每张图单独生成不拼版检查与迭代——SKILL.md 明确要求“生成后检查references/qa-checklist.md”保存交付复制进assets/article-slug-illustrations/按01-topic-name.png顺序命名不覆盖已有资产。QA 清单正是第 4 步的验收依据。references/目录把风格契约拆成五个文件各管一层style-dna.md画布、颜色、留白、禁忌——清单中大部分数值约束的出处xiaohei-ip.md角色“小黑”的外形、性格、动作库与判断标准composition-patterns.md8 种基础结构类型、原创隐喻生成法与“反复刻规则”prompt-template.md单张生图提示词模板 两段图像编辑提示qa-checklist.md生成后检查与迭代规则即本文主角。assets/examples/目录放了 14 张参考图均为 1672x941 的 16:9 横版但 SKILL.md 明确其定位是“只作低频视觉校准不进入默认生成路径。不要照抄这些案例的构图、物件或标注”。2. 必过项一张图的 12 条硬门槛QA 清单的第一节列出 12 条“必过项”全部满足才算过检。按约束对象可分为四类画布与形式必过项配套量化依据是 16:9 横版与 generate-images.mjs 的SIZE 1536x102416:9 横版一致背景是干净白底style-dna.md不要米色、暖灰、纸张纹理、渐变、阴影、噪点、复古纸感简洁清爽主体不超过画面约 60%style-dna 给出更细的区间主体占画面约 40%-60%至少 35% 空白最好有一整块安静区域IP 角色必过项配套量化依据有小黑默认每张图都要出现小黑小黑承担核心动作不只是装饰xiaohei-ip.md 给出可操作的判断标准“如果去掉小黑图的核心隐喻还能完全成立说明小黑太装饰了要重写提示词让小黑成为动作主体”创意与信息密度必过项配套量化依据没有复刻旧案例构图而是为当前文章生成了新隐喻composition-patterns.md 的“原创隐喻生成法”把抽象概念换成物理动作、把系统结构换成低科技物件、让小黑承担动作并附物件池与动作池画面怪诞、有创意、有意思style-dna 的审美方向要怪诞、创意、有意思不要可爱、幼稚、死板一张图只讲一个核心结构与 SKILL.md 工作流第 3 步“每张图只讲一个核心结构”互为呼应文字与颜色纪律必过项配套量化依据中文标注少、短、能读style-dna最多 5-8 处标注每处尽量 2-8 个字橙色只用于主路径或箭头style-dna 颜色分工橙色 主流程、路径、箭头、自动化流向、从 A 到 B 的移动关系红色只用于重点、问题、提醒或结果style-dna红色 重点批注、问题、情绪点、关键提醒、结果蓝色只用于补充说明、反馈或系统状态style-dna蓝色 补充说明、脑内状态、系统状态、第二层解释且“蓝色不是每张都必须用”12 条必过项的共同设计意图是把主观审美拆成可逐条打勾的客观判据比例、底色、角色职责、隐喻原创性、密度上限、文字长度、三色用途每一项都能在图上直接指认不留“看图说话”的灰色地带。3. 失败信号10 个“一票否决”负面判据必过项是正面清单第二节“失败信号”是负面清单——出现以下任一条即判不合格重生成或局部编辑左上角有“常见坑 / Workflow / 系统架构图 / 路线图”等标题小黑像吉祥物、表情包或可爱卡通画面像 PPT、课程课件、正式流程图元素太多、箭头太多、节点太多文字变成大段解释背景有纸纹、阴影、渐变、米色、噪点真实 UI 截图或科技感界面中文错字严重或标注不可读画面太死板没有荒诞隐喻和assets/examples/里的旧案例构图过于相似。这 10 条几乎是按大模型生图的典型失败模式逐条设防的第 1 条针对模型爱“自动加标题”的产物——图上一出现类型名Workflow、系统架构图说明它退化成信息图第 2、3 条对应“怪诞产品草图”的风格边界不是吉祥物海报也不是课程课件style-dna 的“绝对不要”清单里商业插画、PPT 信息图、正式流程图、课程课件都在列第 4、5 条是必过项“一张图只讲一个核心结构”的反面表述量化上限就是“一个动作 3-5 个短标注”第 6、7 条守住“纯白 手绘线稿”的介质本身——一旦背景有纹理或出现真实 UI 截图画面就从“白纸草图”变成“设计稿”第 8 条直面当前图像模型生成中文的高频弱点所以处置策略是“优先局部编辑错得多就减少标注数量”见下节第 9 条是审美底线没有荒诞隐喻的图直接淘汰第 10 条防同质化。它把assets/examples/从“参考素材”降级为“查重基准”旧案例只提供风格密度校准构图本身被明令禁止复用除非用户明确要求复刻某张。4. 迭代方法症状到处置的映射表第三节给出 6 条“症状 → 处置”规则构成一个闭环的迭代回路症状处置动作对应的提示词手段太普通让小黑成为动作主体加入一个奇怪但成立的隐喻prompt-template.md 的“增强怪诞感”编辑提示小黑要做“解释这个概念的那件奇怪工作”而不是站在示意图旁边太复杂删节点只保留一个动作和 3-5 个短标注直接压回必过项的密度上限太可爱强调 deadpan、blank serious expression、not cute、not mascot对应 xiaohei-ip.md 的“禁止”清单不给小黑复杂服装、表情包、闪亮眼睛太 PPT去掉标题、边框、整齐网格和过多箭头改成手绘场景覆盖失败信号第 1、3、4 条太像旧案例保留核心意思换掉主物件和小黑动作呼应 composition-patterns.md 的“反复刻规则”同类主题也要换新隐喻文字错优先局部编辑错得多就重生成并减少标注数量prompt-template 提供现成的编辑提示例如只删左上角手写标题并“用同样的干净白底补齐其余一切保持精确不变”值得注意的成本梯度设计局部编辑优先重生成兜底。文字错误是最常见失败而“删掉一处错误文字”的编辑代价远小于整张重生成但当错误数量多时清单要求重生成并“减少标注数量”——本质是降低模型需要生成的中文字符总量从源头压低错字概率。这与 style-dna“标注最多 5-8 处”的上限是同一逻辑文字越少越可控。5. 交付判断一句话验收线清单最后一节把整份规则收敛成一句交付标准高质量图应该让读者先觉得“有点怪”然后 1 秒内看懂结构。如果第一眼像教程页而不是白纸上的怪诞产品草图就不合格。这是一个把主观验收操作化的双层测试先过“怪”门荒诞隐喻成立画面有记忆点再过“秒懂”门结构 1 秒可读。两个条件缺一不可——只有怪没有清晰度是装饰画只有清晰度没有怪就是失败信号第 3 条定义的“教程页”。对 Agent 执行者来说这句话可以落地成一个可重复的自问第一眼它像什么如果答案是“课件/教程/信息图”直接判死回第 4 节查症状。6. 在 Munder Difflin 中的实际运行覆盖规则与交付流水线6.1 项目级覆盖层清单不是孤立生效的SKILL.md 末尾有一节 “Local overrides (Munder Difflin blog — local overrides)”声明这 5 条项目级覆盖规则在本仓库中叠加生效小黑是黄色的身体一律填充 Munder Difflin 强调黄#FFCA54细黑手绘描边无西装无领带眼睛改为两个黑色小圆点白点眼在黄色上不显眼保留豆形身体、细腿、空表情——所有图、无例外标注用手写英文而非中文博客是英文站标注颜色只允许橙、蓝、黄绝不用红全站 no-red 规则博客成图输出到blog/src/assets/media/post-slug/且每个生成文件必须登记进blog/src/_data/media.json把对应条目的status置为ready16:9、纯白背景、一图一概念——不变。因此在本仓库应用这份 QA 清单时基础版必过项中的“中文标注少、短、能读”“红色只用于重点、问题、提醒或结果”需按覆盖层重读为英文标注、零红色。基础技能与本地覆盖的分层是阅读这份清单的前提——覆盖层只改取值语言、色板、角色配色、输出路径不改质检结构本身。6.2 清单管不住的环节由流水线兜住生图侧的真实实现是 blog/scripts/generate-images.mjs一个 manifest 驱动的批处理管线单一事实源blog/src/_data/media.json中每个 post 有hero与可选inline槽位每个槽位带file、alt、prompt、status参数模型gpt-image-2尺寸1536x1024注释标明“16:9-ish landscape; matches the blogs aspect”质量档low|medium|high对应每图估价$0.005/$0.041/$0.165CLI--posts a,b,c/--all圈定范围--quality、--inline默认只出 hero、--dry-run打印提示词与估价、零 API 调用、--force重做已 ready 的条目、--max-cost默认 25预估超限在任何 API 调用前中止、--suffix生成name-s.png对比图但不翻转 status用于质量并排比较可恢复manifest 在每张图写盘后立即回写崩溃、配额超限或 Ctrl-C 都不丢进度重跑即续传失败条目保持placeholder提示“rerun the same command to retry just those”重试对 429/5xx 做attempt * 15s的退避重试最多 3 次400 且报错含 size 时直接抛错不做猜测性重试。从源码结构看脚本本身只负责“生成成功即翻转 status”并不会自动执行 QA 清单清单的执行依赖 Agent 按 SKILL.md 第 4 步在翻转ready之前完成人工/Agent 复检。status字段因此成为质检门的天然卡点只有判定通过的图才应以ready状态进入模板渲染。6.3 博客 hero 图的另一条“手绘”路径BLOG_README.md 补充了一个重要事实博客的 hero 图实际是drawn, not AI-generated——由 blog/media-src/scene-lib.js部件 16 种场景原型与 blog/media-src/spec.js每篇的 archetype 标注在浏览器中通过blog/media-src/render.html?slugslug以 1600x900 渲染截图该页面即可重新生成任意 hero 图而generate-images.mjs只是“optional image-model pipeline”。两条路径共享同一份风格契约BLOG_README 把 style contract 直接指向 SKILL.md 的 local overrides 一节——也就是说本文这份 QA 清单是手绘路径与生图路径共用的验收标准。6.4 状态流转placeholder 到 readymedia.json的条目在status为placeholder期间模板渲染一个设计过的、按主题着色的占位块“never a broken image”脚本写完图片并把status翻成ready后模板自动改用真图无需改任何模板代码。这让“交付”这一步有了代码级检查点图片文件落盘在blog/src/assets/media/post-slug/、manifest 登记、状态翻转三者齐备才算交付完成。7. 小结一份可复用的生图质检模式把这份清单抽象开它示范了 AI 图像任务质量门的完整构造方式正面必过项12 条全部可图上指认 负面失败信号10 条逐一对应模型的典型失败模式 症状到处置的映射表6 条带“局部编辑优先”的成本梯度 一句话秒级验收线“先怪再 1 秒看懂”。再叠加两层工程保障——SKILL.md 的项目级覆盖规则只改取值不改结构和 manifest 驱动的placeholder → ready状态卡点——就得到一条可复制的链路风格契约文件化、质检规则清单化、生成管线状态化。对任何需要稳定产出风格一致的 AI 正文配图的工作流这个结构都可以直接套用。【免费下载链接】munder-difflinA local multi-agent harness that works with your existing Claude Code, Codex subscriptions, allows you to run an office of agents项目地址: https://gitcode.com/GitHub_Trending/mu/munder-difflin创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考