公众号封面|公众号配图|公众号插图|AI 生图 — 公众号 AI 封面与配图生成,按文章标题与内容自动匹配画风,一稿多方案,多风格预设可复用。面向公众号编辑、自媒体、品牌设计。触发词:「封面」「配图」「插图」「生成图片」「给文章加图」「做个封面」「文章插图」「配个图」。不写正文只发一组图请走 aws-wechat-sticker;需要多环节串联(写+审+排+配图+发)请走 aws-wechat-article-main。
npx skills add https://github.com/aiworkskills/wechat-article-skills --skill aws-wechat-article-images
公众号封面 & 配图 AI 生成 —— 按文章内容自动匹配画风,一稿多方案,风格体系可复用。
> 套件说明 · 本 skill 属 aws-wechat-article-* 一条龙套件(共 9 个 slug,入口 aws-wechat-article-main)。跨 skill 的相对引用依赖同一 skills/ 目录,建议一并 clawhub install 全套。源码:<https://github.com/aiworkskills/wechat-article-skills>
本 skill 调 image_create.py 调外部图像 API 生成封面与正文配图。会把图片提示词(可能含文章主题片段)发给用户配置的图像生成端点。 具体行为:
aws.env 的 IMAGE_MODEL_API_KEYAuthorization: Bearer 头发送到 image_model.base_url 指定端点(常见为 DALL-E、gpt-image 兼容 /v1/images/generations,或多模态模型 /v1/chat/completions,具体由用户配置)imgs/prompts/*.md(可能包含文章标题、章节摘要).aws-article/config.yaml、本篇 article.yaml、article.md、imgs/prompts/*.md、.aws-article/products/{产品名}/images/*(业务配图库,本篇涉及用户业务时优先复用)imgs/*.{png,webp}、可选 img_analysis.mdpython3 {baseDir}/scripts/image_create.py、user_image_prepare.py建议:用专用 key(最低权限、独立计费),避免使用 account 级 master key。
本 skill 是 aws-wechat-article-* 一条龙公众号套件的配图环节(入口 aws-wechat-article-main)。工作流中的若干步骤会读取同级 ../aws-wechat-article-main/references/*.md 等共享文档(首次引导、env/config 示例、articlescreening schema 等)。
skills/ 根目录时,跨 skill 引用都能读到。file not found;本 skill 内的生图脚本仍可用。完整 9 slug 清单见 源码仓库。
完整长文从选题到发布 → aws-wechat-article-main;图片消息/九宫格等多图推送 → aws-wechat-sticker。
读取文章中的配图标记,按 Type × Style 体系生成图片。专注于长文配图,贴图请用 sticker。
Agent 执行:确定本 SKILL.md 所在目录为 {baseDir}。
| 脚本 | 用途 |
|------|------|
| scripts/image_create.py | 专用生图 API:读 .aws-article/config.yaml 的 image_model + 仓库根 aws.env 的 IMAGE_MODEL_API_KEY|
| scripts/user_image_prepare.py | 用户供图模式:确保本篇 imgs/ 存在并生成 img_analysis.md 模板(封面仅 1 张) |
任何操作执行前,必须按 首次引导 执行其中的 「检测顺序」。检测通过后才能进行以下操作(或用户明确书面确认「本次不检查」):
从选题到发布的前置规则见 aws-wechat-article-main/SKILL.md;本 skill 只描述配图步骤。
图片模型:image_model(provider、base_url、model、default_size、default_quality 等)在 config.yaml;IMAGE_MODEL_API_KEY 在 aws.env。键名对照 {baseDir}/../aws-wechat-article-main/references/env.example.yaml。
base_url 须为完整端点路径,脚本根据路径判断调用模式:
https://xxx.com/v1/images/generations — DALL-E / gpt-image 等https://xxx.com/v1/chat/completions — Gemini 等多模态模型(通过中转站生图)交互约定:可提示用户上述项是否已填;一条龙下通常已通过 validate_env.py。须遵守 main 的智能体行为约束——未通过环境校验且未获用户明确「本次例外」时,不得假装已走专用生图 API。
.md 自包含视觉关键词。| 类型 | 要求 |
|------|------|
| 封面 | 必须通过 image_create.py 生成(generate 或 batch 读 imgs/prompts/*.md),产出并保存为文章目录下的 cover.png(或 cover.jpg / cover.jpeg / cover.webp)。禁止将 .aws-article/products/{产品名}/images/(或其它素材库文件)直接复制为 cover.* 充当封面。例外:用户明确上传封面文件并声明「封面只用这一张」时,可跳过脚本,须在 img_analysis.md 与审稿记录中注明「用户指定封面」。 |
| 正文 | 优先使用业务配图库:.aws-article/products/{相关产品}/images/(先读同名 .md 再复制到本篇 imgs/ 或引用路径),见下文「正文配图来源优先级」。缺图时再走 image_create.py 或 Agent 降级生图。 |
> 说明:全局 config.yaml 的 image_source: user 表示「正文以用户/素材引用为主」;不豁免上述「封面须脚本生成」规则,除非用户同时提供了封面文件并声明仅用该封面。
配图进度:
- [ ] 第1步:环境检查 + 本篇约束与文章
- [ ] 第2步:解析配图标记
- [ ] 第3步:确定风格
- [ ] 第4步:生成配图方案
- [ ] 第5步:展示方案并等待确认 ⛔
- [ ] 第6步:生成图片(**脚本失败时**见同节「调用失败」分支,勿静默吞掉报错)
- [ ] 第7步:插入文章
仅适用于正文插图(不含封面;封面见上文「封面 vs 正文」)。在为正文 placeholder 调用 image_create.py、写入 imgs/prompts/ 之前,须先判断是否可用本地业务配图库,避免业务相关文章(教程 / 产品介绍 / 案例 / 自家界面截图)「有现成业务配图却重新生成」:
ls .aws-article/products/,进入相关产品的 images/ 子目录,列出并阅读 同名 .md(含路径与画面说明),按主题匹配后,在 article.md 中直接引用对应 .png / .webp(或复制到本篇 imgs/ 再引用)。与正文严格相关才用,避免硬凑。image_source: user:用户提供的图或上述引用策略,走「用户供图模式」与 img_analysis.md(正文部分)。imgs/prompts/ 与 image_create.py(或 Agent 降级生图)。> 说明:业务配图库属「仓库内业务资源」,不必等用户手动上传才查;与「用户供图模式」并列,而非仅附属于后者。
.aws-article/config.yaml — cover_aspect、cover_style、image_density、caption_style、multi_image_count、tone 等以之为准(完整字段见 articlescreening-schema.md 与 config.example.yaml)。article.yaml,读取 default_cover_image_style、default_article_image_style(应为单元素列表,代表本篇已选预设)及 cover_image 等字段。article.md(或当前流程规定的正文来源)。image_source: user(全局或本篇)时,进入「用户供图模式」:先创建本篇 imgs/ 并生成/更新 img_analysis.md,记录每张图的内容分析、建议章节与推荐用途。提取所有 !类型:描述。实证 类型提示用户提供素材或从 .aws-article/products/{相关产品}/images/ 搜索(业务配图库)。
当用户上传图片并指定主题时,按以下顺序执行:
{article_dir}/imgs/ 存在,并将用户图片放入该目录。{article_dir}/img_analysis.md(每图至少包含:文件名、图片内容、建议章节、推荐用途、图注建议)。img_analysis.md 中“推荐用途:封面”必须且只能出现 1 次;其余图片用途应为“正文”。article.yaml:image_source: user(从模型生图切换到用户供图状态)。generated / user。imgs/淘米.png),不再使用 placeholder。顺序说明:imgs/ 落图 → 分析并写好 img_analysis.md → 再跑 write.py;写稿时以 img_analysis.md 为准,把图片插到与内容匹配的章节位置。
当用户明确说「这篇文章配图不满意,换成我上传的新图并重新发草稿箱」时,按以下流程:
drafts/YYYYMMDD-slug/)。imgs/,并更新 img_analysis.md(仍需满足“封面仅 1 张”)。article.yaml.image_source 更新为 user。img_analysis.md 重新映射图片到 article.md 对应章节(允许重排章节以匹配图序)。format.py 重新生成 article.html(不要只改旧 html 局部)。article.md / article.html 无 placeholder,且引用图片文件均存在。publish.py full(publish_method: draft 时写入草稿箱)。可用素材库(与上文「配图来源优先级」一致):
.aws-article/products/{产品名}/images/:业务配图库(产品截图、品牌素材等);本篇涉及用户业务时优先读同名 .md 再选图。若已用业务配图满足正文,可不再走生图 API。封面与正文配图分别确定风格,走各自的预设目录。
预设发现:Agent 扫描两个目录合并可用封面预设列表:
{baseDir}/references/cover-styles/(随 skill 安装).aws-article/presets/cover-styles/(用户创建或预设包导入)加载优先级:
article.yaml.default_cover_image_style(单元素列表)→ 从内置或 .aws-article/presets/cover-styles/<名>.md 加载(用户文件同名优先于内置)tone / article_category 从可用封面预设中自动推荐(规则见 auto-selection.md)每个封面预设 .md 自包含视觉关键词(Prompt 要点),无须引用外部 Style 维度。Schema 见 cover-styles/README.md。
预设发现:Agent 扫描 .aws-article/presets/image-styles/ 获取可用正文配图预设。
加载优先级:
article.yaml.default_article_image_style(单元素列表)→ 加载 .aws-article/presets/image-styles/<名>.mdtone 自动推荐 Type 和视觉风格(规则见 auto-selection.md),视觉风格为 Agent 内部决策为每张图生成方案(类型、风格、prompt 要点)。
封面 prompt frontmatter 必须包含 aspect:从 config.yaml 的 cover_aspect 读取(如 2.35:1),写入 YAML frontmatter。image_create.py 据此转换为实际像素尺寸;缺少 aspect 会导致 fallback 到 1:1。
图片内文字:画面中出现的文字必须为中文。在 prompt 里直接写出要显示的中文文案(如「传统对话AI」「OpenClaw」),禁止只写 “labels in Chinese” 或 “Chinese or English OK”,否则模型会生成英文。
Prompt 构建:references/image-styles/prompt-construction.md
封面:见「封面 vs 正文」— 默认必须先写好 imgs/prompts/ 中封面 prompt(含 aspect 与 config.yaml 的 cover_aspect 一致),再执行 image_create.py generate … -o ../cover.png(或等价输出路径)。
生成方式(优先级,正文):
scripts/image_create.py)— 依赖 config.yaml 的 image_model + aws.env 的 IMAGE_MODEL_API_KEY[NO_MODEL])且当前 Agent 支持图片生成、并已获用户明确同意代生图 → Agent 读取 imgs/prompts/*.md 中的 prompt + frontmatter(size/quality),用自身多模态能力按相同 prompt 生图 → 告知用户 ℹ️ 图片模型未配置,本次由当前对话模型直接生图(使用相同配图方案) → 生成后正常执行第 7 步(插入文章)image_source=user 或用户明确”使用我上传的图片”时,不调用 image_create.py,改为”读图分析 + 写稿引用 + 重排版”必须告知用户当前使用的方式:
ℹ️ 使用 image_create.py 调用专用生图模型({model})ℹ️ 图片模型未配置,本次由当前对话模型直接生图(使用相同配图方案)ℹ️ 本次未走 image_create.py(原因:…)⛔ 故障降级(退出码 1)时的终点:只做到第 4 步(或第 5 步)。产出 imgs/prompts/*.md 与方案;不执行「替换 article 中的 placeholder」或「修复 HTML」。若 imgs/README.md 尚不存在或需补充当前方案的说明,可创建/更新(如何配置 aws.env / config.yaml、如何跑 image_create.py batch、如何在 article.html 中替换);若已存在且已涵盖当前方案,不必重写。
注意:退出码 2(模型未配置)且 Agent 支持图片生成、并已获用户明确同意代生图时,不受上述终点限制——Agent 降级生图后继续执行第 7 步。
调用专用 API 时(在仓库根执行,{baseDir} 按上表解析;路径按本篇 imgs/ 调整):
python {baseDir}/scripts/image_create.py batch drafts/YYYYMMDD-slug/imgs/prompts/ -o drafts/YYYYMMDD-slug/imgs/
单张:python {baseDir}/scripts/image_create.py generate imgs/prompts/01-cover.md -o imgs/01-cover.png
连通性自检:python {baseDir}/scripts/image_create.py test
图片规格:references/specs.md
image_create.py 调用失败时(智能体必选分支)只要执行了 image_create.py 且非零退出或 stderr 有 API/网络错误,就必须走本节,不得只说「生图失败」而不分类、不摘要报错。
运行脚本后须把终端 stderr 中的具体报错摘要给用户(含 ❌、HTTP 状态码、【配置/认证】、网络错误(可重试)、[NO_MODEL] 等关键行),勿只说「失败」。
| 类型 | 判断线索 | 智能体动作 |
|------|----------|------------|
| 未配置 | 退出码 2、[NO_MODEL] | Agent 支持图片生成且用户明确同意代生图 → 读取 imgs/prompts/*.md 中的 prompt + frontmatter(size/quality),用自身多模态能力按相同 prompt 生图并继续第 7 步。Agent 不支持图片生成,或 Agent 代生图失败 → 明确告知“我当前不能完成生图”,给用户二选一:配置图片模型后重试,或本篇不配图继续(保留 prompts 并在结果中标注无配图)。 |
| 网络类 | URLError、网络错误(可重试)、超时、临时 502/503 | 必须自动再试 1 次(可短暂等待后重跑同一命令)。第二次仍为网络类 → 可降级为 Agent 多模态生图 或仅保留 prompts;须明确告知用户本次未走专用 API。 |
| 配置/凭证类 | 401/403、图片模型配置不完整、【配置/认证】 | 不要静默降级。列出须检查项(config.yaml 的 image_model、aws.env 的 IMAGE_MODEL_API_KEY、端点、权限),请用户改正后重跑。用户明确打字接受本次仅用 Agent/仅 prompts 时,再按 main「本次例外」处理。 |
| 业务/参数类 | 【请求参数】、400、返回体提示 model/size 不支持 | 将响应摘要给用户;可改 config.yaml 或 env 中的 model/尺寸后再试;仍失败则与用户商定是否 Agent 生图。 |
禁止:配置明显错误时静默改用 Agent 却不说明;网络降级后不告知「本次未走专用生图」。
仅当已生成图片时执行:替换 placeholder 为实际图片路径,输出到 imgs/。
封面排除:封面图(![封面:...])仅用于微信文章封面上传,禁止作为 <img> 嵌入 HTML 正文。替换 placeholder 时跳过封面标记行(或直接删除该行),封面图单独复制到文章根目录 cover.{ext}。publish.py 也支持从 imgs/ 目录自动发现封面图(cover.* 或 *-cover.*)。
修复 HTML 的触发条件:仅当在 article.html 中确实存在 href="placeholder" 或 placeholder 被渲染成可点击链接时,才将误转的 <a> 改为 <img> 或占位说明;不要默认每次都执行「修复流程图占位」或「修复 HTML」。
| 读取 | 产出 |
|------|------|
| article.md、.aws-article/config.yaml、本篇可选 article.yaml 中的标记与配图约束 | imgs/(outline + prompts + 图片;未走 API 时为 prompts + 可选 imgs/README.md) |
Analyze text and images for harmful content with customizable blocklists.
Azure AI Content Understanding SDK for Python. Use for multimodal content extraction from documents, images, audio, and video.
Azure OpenAI SDK for .NET. Client library for Azure OpenAI and OpenAI services. Use for chat completions, embeddings, image generation, audio transcription, and assistants.
Azure AI Voice Live SDK for .NET. Build real-time voice AI applications with bidirectional WebSocket communication.
Build real-time voice AI applications with bidirectional WebSocket communication.
Azure Speech to Text REST API for short audio (Python). Use for simple speech recognition of audio files up to 60 seconds without the Speech SDK.
Expert at handling file uploads and cloud storage. Covers S3, Cloudflare R2, presigned URLs, multipart uploads, and image optimization. Knows how to handle large files without blocking.
Expert Mermaid diagram creation, validation, and rendering with dual-engine output (SVG/PNG/ASCII). Supports all 20+ diagram types including C4 architecture, AWS architecture-beta with service icons, flowcharts, sequence, ERD, state, class, mindmap, timeline, git graph, sankey, and more. Features code-to-diagram analysis, batch rendering, 15+ themes, and syntax validation. Use when users ask to create diagrams, visualize architecture, render mermaid files, generate ASCII diagrams, document system flows, model databases, draw AWS infrastructure, analyze code structure, or anything involving "mermaid", "diagram", "flowchart", "architecture diagram", "sequence diagram", "ERD", "C4", "ASCII diagram". Do NOT use for non-Mermaid image generation, data plotting with chart libraries, or general documentation writing.
Take aiworkskills/aws-wechat-article-images from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.