con un clic
article-illustrator
// Use when illustrating a Markdown article with high-finish editorial visuals, visual-bible planning, structured prompts, optional Qiniu upload, and inserted image references for article publishing workflows.
// Use when illustrating a Markdown article with high-finish editorial visuals, visual-bible planning, structured prompts, optional Qiniu upload, and inserted image references for article publishing workflows.
Use when converting Markdown into WeChat-compatible inline HTML with theme styles for preview, copy-paste, or downstream draft publishing.
Use when publishing HTML articles to WeChat Official Account drafts, especially when you need cover upload, automatic cover generation, body image rewriting, CSS-variable compatibility, or draft metadata like author and comment settings.
Use when generating a complete WeChat article from a topic, with optional source research, evidence tracking, illustration, HTML conversion, and draft-box publishing.
| name | article-illustrator |
| version | 1.2.0 |
| description | Use when illustrating a Markdown article with high-finish editorial visuals, visual-bible planning, structured prompts, optional Qiniu upload, and inserted image references for article publishing workflows. |
| inputs | [{"name":"article_path","type":"string","required":true,"description":"文章 Markdown 文件路径(如 articles/my-topic/article.md)"},{"name":"slug","type":"string","required":false,"description":"输出目录标识(kebab-case)。若不提供,从文章标题自动推导","default":""},{"name":"density","type":"string","required":false,"description":"配图密度:minimal(1-2 张)| balanced(每主要章节一张)| rich(尽量多配)","default":"balanced"},{"name":"upload","type":"boolean","required":false,"description":"是否上传到七牛云图床并替换为 CDN URL","default":false},{"name":"aspect_ratio","type":"string","required":false,"description":"图片宽高比,如 16:9、4:3、1:1","default":"16:9"},{"name":"prompt_profile","type":"string","required":false,"description":"提示词配置档案。默认 `nano-banana`,强调高完成度编辑视觉与强风格统一","default":"nano-banana"},{"name":"text_language","type":"string","required":false,"description":"图片内默认文字语言。推荐 `zh-CN`","default":"zh-CN"},{"name":"english_terms_whitelist","type":"array","required":false,"description":"允许在图片中保留英文展示的术语白名单,如产品名、协议名、缩写","default":[]},{"name":"image_provider","type":"string","required":false,"description":"生图通道,默认 `xiaomi`。支持 Gemini 官方直连、Gemini 原生代理,或 Xiaomi Gemini 兼容接口","default":"xiaomi"},{"name":"image_model","type":"string","required":false,"description":"生图模型名称。默认使用接口调用时的 `gemini-3.1-flash-image-preview`","default":"gemini-3.1-flash-image-preview"},{"name":"image_base_url","type":"string","required":false,"description":"生图 API 基础地址。可传入 Xiaomi Gemini 兼容接口、官方 Gemini 地址或自建代理地址;未提供时由运行环境决定默认值"}] |
| outputs | [{"name":"illustrated_article_path","type":"string","description":"插入图片引用后的文章副本路径(article.illustrated.md)"},{"name":"illustrations_dir","type":"string","description":"生成图片所在的目录路径"},{"name":"outline_path","type":"string","description":"配图规划文件路径(outline.md)"},{"name":"visual_bible_path","type":"string","description":"文章级视觉基线文件路径(visual-bible.md)"},{"name":"image_count","type":"integer","description":"成功生成的图片数量"},{"name":"failed_count","type":"integer","description":"生成失败的图片数量"},{"name":"uploaded_urls","type":"array","description":"上传成功的 CDN URL 列表(仅 upload=true 时有值)"}] |
为任意 Markdown 文章自动规划并生成配图。技能默认采用“高完成度编辑视觉”作为 全局质量基线:不是简单插画,不是装饰图标拼贴,也不是低信息密度草图。系统会先 为文章生成统一的 visual bible,再为每张图生成结构化提示词,使同一篇文章的配图 共享统一风格语言,同时根据章节内容调整构图、信息重点和版式。
默认优先兼容 Gemini Nano Banana 工作流,并默认走 Xiaomi Gemini 兼容接口;同时支持 Gemini 原生代理 / 中转站模式与官方 Gemini 接口。
wechat-writing 技能的 Step 6 调用(with_illustrations=true)GEMINI_API_KEY 或 GOOGLE_API_KEYIMAGE_PROVIDER=gemini、IMAGE_API_KEY、可选 IMAGE_BASE_URLIMAGE_PROVIDER=xiaomi 或 XIAOMI_API_KEY,可选 XIAOMI_BASE_URL.env 中的 QINIU_ACCESS_KEY / QINIU_SECRET_KEY / QINIU_BUCKET / QINIU_DOMAIN)目标:理解文章结构,确定配图数量、位置与表达方式
操作:
article_path 的完整内容## / ###)、段落数、代码块位置density 确定配图策略:
minimal:仅为最核心的 1-2 个信息点配图balanced:每个 ## 级主要章节配一张图rich:每 300 字左右或每个重要段落配一张图slug:
slug:直接使用kebab-case{article_dir}/illustrations/{slug}/输出:文章结构分析结果、配图位置列表
目标:为整篇文章建立统一视觉基线,并生成每张图的规划信息
操作:
visual_bible,保存到 {article_dir}/illustrations/{slug}/visual-bible.mdvisual_bible 必须覆盖:
quality_baseline:统一采用高完成度编辑视觉 / 专题配图标准visual_theme:本篇文章的整体风格方向color_system:主色、辅色、强调色、背景倾向graphic_language:图形语言、线条/材质/光感、信息层级方式layout_discipline:页面留白、模块密度、标题区与内容区节奏text_policy:默认简体中文;仅 english_terms_whitelist 中的术语保留英文negative_rules:禁止简单画图、低幼卡通、无意义装饰、英文乱码、随意混搭风格position:插入位置(在哪个章节/段落之后)purpose:这张图要传达什么信息image_type:对比图 / 流程图 / 架构图 / 数据图 / 场景图 / 编辑专题视觉core_message:本图唯一核心表达content_blocks:画面中必须出现的内容块text_blocks:图中需要出现的标题、标签、注释(默认中文)english_terms_used:本图允许出现的英文术语子集layout_hint:布局方向与信息分区filename:输出文件名(格式:NN-简短描述.png)alt_text:Markdown 图片的 alt 文本{article_dir}/illustrations/{slug}/outline.md{article_dir}/illustrations/{slug}/prompts/outline.md 格式:
---
article: <article_path>
slug: <slug>
density: <density>
aspect_ratio: <ratio>
prompt_profile: <profile>
text_language: <language>
image_provider: <provider>
image_model: <model>
image_count: <N>
generated_at: <ISO timestamp>
---
输出:visual_bible_path、outline_path
目标:根据 visual_bible + outline 生成高质量图片文件
操作:
visual_bible任务定位:这是可直接用于公众号文章的成品级专题视觉风格锚点:复用本篇文章统一视觉语言画面主体:核心对象、信息模块、前中后景关系版式结构:标题区、内容区、对比区、流程区、数据区的组织方式信息层级:主标题、次要标签、补充说明的优先级文字规则:默认所有可见文字使用简体中文;仅白名单术语保留英文质量要求:丰富细节、清晰层级、强版式感、避免模板感禁止项:低幼、空泛、装饰性过强、无意义图标堆砌、英文乱码{article_dir}/illustrations/{slug}/prompts/ 目录scripts/image-gen.ts--prompt "<提示词内容>" --output "<输出路径>" --ar <宽高比>--provider gemini|google|xiaomi|openai--model <模型名>--base-url <Gemini 原生代理基础地址>--api-key <临时 key>--image-size <清晰度/尺寸标识>(如 Xiaomi 的 1K)--ref <参考图路径>(Gemini 多模态场景)node scripts/illustrate-article.ts --article <article.md>
--image-provider xiaomi --image-model gemini-3-pro-image-preview --image-size 1K输出:图片文件列表、失败列表
触发条件:upload=true
目标:将生成的图片上传到七牛云,获取 CDN URL
操作:
.envbun run scripts/qiniu-upload.ts --file <本地路径> --key <远程路径>
illustrations/{slug}/{filename}输出:uploaded_urls 列表(CDN URL 或 null)
目标:创建带有图片引用的文章副本
操作:
article_path 为 article.illustrated.md(同目录)<!-- IMAGE PLACEHOLDER: {filename} — {purpose} -->
illustrated_article_path输出:illustrated_article_path
article.md
|
v
Step 1: 分析文章结构 -> 配图位置列表
|
v
Step 2: 生成 visual-bible.md + outline.md
|
v
Step 3: 生成结构化 prompts -> illustrations/{slug}/*.png
|
v
Step 4: (--upload) 上传七牛云 -> CDN URLs
|
v
Step 5: 插入副本 -> article.illustrated.md
| 失败场景 | 处理方式 |
|---|---|
| 文章文件不存在 | 立即报错退出 |
| Gemini / 代理配置缺失 | 提示用户配置 IMAGE_PROVIDER、IMAGE_API_KEY、可选 IMAGE_BASE_URL,或回退到官方 GEMINI_API_KEY |
| Xiaomi 接口配置缺失 | 提示用户配置 IMAGE_PROVIDER=xiaomi 或 XIAOMI_API_KEY,并按需设置 XIAOMI_BASE_URL / XIAOMI_IMAGE_SIZE |
| 单张图片生成失败 | 重试一次;仍失败记录跳过,继续下一张 |
| 文字过多导致效果差 | 精简标题/标签/注释长度后重试 |
| 七牛云配置缺失 | 提示用户配置技能根目录 .env,跳过上传步骤 |
| 七牛云上传失败 | 保留本地路径,记录错误,继续下一张 |
| slug 目录已存在 | 直接使用(覆盖同名文件) |
默认 Nano Banana 风格配图:
article_path: articles/playwright-introduction/article.md
density: balanced
prompt_profile: nano-banana
text_language: zh-CN
image_provider: xiaomi
image_model: gemini-3.1-flash-image-preview
image_base_url: https://your-compatible-endpoint.example/v1beta
image_size: 1K
upload: false
通过 Gemini 原生代理生图:
article_path: articles/playwright-introduction/article.md
density: balanced
image_provider: gemini
image_model: gemini-3.1-flash-image-preview
image_base_url: https://your-relay.example.com/v1beta
upload: false
通过 Xiaomi Gemini 兼容接口生图:
article_path: articles/playwright-introduction/article.md
density: balanced
image_provider: xiaomi
image_model: gemini-3.1-flash-image-preview
image_base_url: https://your-compatible-endpoint.example/v1beta
image_size: 1K
upload: false
指定英文白名单术语:
article_path: articles/playwright-introduction/article.md
english_terms_whitelist:
- Playwright
- Chromium
- Firefox
- WebKit
article.illustrated.md),不修改原文/ 分隔符(本地模式)prompts/ 目录,便于追溯和手动调整后重新生成bun run scripts/plan-illustrations.ts --article <article.md> 自动生成 visual-bible.md、outline.md 和 prompts/node scripts/illustrate-article.ts --article <article.md> 一键完成规划、出图和 article.illustrated.md 生成image_provider=xiaomi 与自定义 image_base_url 配置;开源仓库不预设任何私有中转地址