公众号爆款封面设计
概述
基于公开网络渠道收集同赛道爆款文章的封面案例,通过 AI 图像分析总结高转化视觉规律,生成贴合文章内容、符合平台流量审美的封面设计方案(含案例+生图提示词),并使用自己的封面生图服务(kexiangai.com)API 一键生成封面图。
仅在主Agent中执行,不派发给子Agent。
API Key 说明
本 Skill 仅依赖一个 API:封面生图服务(kexiangai.com,自己的服务)。
| 用途 | 环境变量 | 获取地址 | 说明 |
|---|---|---|---|
| 封面图生成 | X_API_KEY |
kexiangai.com | 自己的生图服务,生成封面图 |
X_API_KEY 获取与新用户额度提示
当检测到用户尚未配置 X_API_KEY 时,必须提示:
> 请前往 kexiangai.com 注册/登录并获取你自己的 x-api-key,不要使用他人的 Key。新用户注册即赠送 1 积分,按当前单张封面约 0.2 积分的消耗计算,约可生成 5 张图。
同时说明:生图会消耗账户积分,正式调用前必须展示请求参数与预计消耗,并等待用户确认。不得在未确认时调用 API。
X_API_KEY 读取优先级(从高到低)
- 本次对话显式输入的
x-api-key - 环境变量
X_API_KEY - 本地持久化文件
~/.config/image2-official/.env(使用--use-local-key时读取)
触发规则
| 场景 | 处理方式 |
|---|---|
| 用户提供内容主题/赛道 | 执行任务流程 |
| 用户提供明确标题 | 执行任务流程(标题原样入图) |
| 用户提供一篇文章(无明确封面标题) | 执行任务流程,先走「步骤1B:文章解析」提炼标题并经用户确认 |
| 用户要求生成封面方案 | 执行任务流程 |
| 用户上传文案或图片要求分析 | 执行任务流程 |
| 用户询问技能功能/用法 | 仅介绍技能 |
| 用户未提供明确创作主题 | 仅介绍技能 |
术语规范
统一使用"爆款封面",禁止使用:爆炸封面→爆款封面、爆炸数据→爆款数据、抓取数据→获取/查询数据、抓取封面→获取封面。
案例来源
封面案例收集仅使用以下方式,禁止使用需要授权/付费的第三方数据 API,禁止脑补数据:
- 公开网络搜索:使用 WebSearch 搜索同赛道爆款公众号文章,提取公开可见的封面图 URL、文章标题、链接
- 用户提供:用户主动上传的参考封面图/文章
案例不足(<5 个)时明确告知用户,不强行凑数。
前置准备
- 依赖:
curl、python3 - 凭证:环境变量
X_API_KEY(生图服务) - 无需任何外部数据 API Key
操作流程
步骤1:意图解析(按输入模式分流)
先判定输入模式:A = 用户给了明确标题,B = 用户给了一篇文章(无明确封面标题)。
步骤1A:明确标题输入
结构化解析用户需求,提取以下维度:
| 维度 | 说明 | 示例 |
|---|---|---|
| 文章标题 | 用户给出的标题原文(必须原样提取,一字不改) | FDE的前世今生 |
| 内容主题 | 优先领域词 | 前端、编程、美食、职场 |
| 内容类型 | 内容形式 | 干货、测评、种草、教程 |
| 风格偏好 | 视觉/调性 | 专业、吸引点击、情绪、极简 |
| 核心关键词 | 搜索关键词 | 前端开发、学习笔记、编程 |
提取2-5个核心关键词(逗号分隔),优先细分领域词,结合风格偏好补充场景词。然后直接进入步骤2。
步骤1B:文章输入(从文章生成封面)
用户给的是一篇文章/长文案、没有明确封面标题时,多一层「读文 → 提炼标题 → 用户确认标题」收敛流程:
1. 读文提炼——通读全文,提取四个关键信息:
| 提取项 | 用途 |
|---|---|
| 核心主题 | 文章到底讲什么 → 决定封面视觉主体 |
| 最强钩子 | 最有冲击力的观点/金句/冲突点 → 封面标题候选来源 |
| 目标读者 | 决定封面调性(极客风 vs 大众风) |
| 情绪基调 | 怀旧/激昂/理性/趣味 → 决定配色和视觉风格 |
2. 生成封面标题候选——按以下优先级产出 2-3 个候选标题(附各自理由和适配风格建议):
| 优先级 | 来源 | 说明 |
|---|---|---|
| 1 | 文章原标题 | 仅当它够短、够抓人时直接采用 |
| 2 | 核心观点压缩 | 从文章核心观点压缩成 6-10 字封面大字(封面字数比正文标题更受限,太长会缩小失去冲击力) |
| 3 | 文内金句 | 直接用文章里最有共鸣的一句话 |
3. 用户确认标题(必须停下等待)——⚠️ 标题是要烧进图里的,标题选错 = 图白生成(消耗积分)。输出候选标题列表后停止,等用户拍板后才能继续步骤2。禁止跳过确认直接生成。
步骤2:公开案例收集
使用 WebSearch 搜索同赛道爆款公众号文章,收集封面案例:
搜索建议(可多次搜索组合):
- "<核心关键词> 公众号 爆款 文章"
- "<核心关键词> 公众号 封面 案例"
- "<内容主题> 10w+ 文章"
每条案例提取:
| 字段 | 说明 |
|------|------|
| title | 文章标题 |
| url | 文章链接(mp.weixin.qq.com 优先) |
| imageUrl | 封面图 URL(mmbiz.qpic.cn 等,可直接访问) |
用户上传了参考图时,一并纳入案例池。
步骤3:智能匹配筛选
| 案例量 | 处理 |
|---|---|
| ≥10个 | 直接使用 |
| 5-9个 | 补充搜索词重新收集,合并去重 |
| <5个 | 告知用户案例不足,用现有案例 + 设计经验输出方案 |
筛选规则:优先选择同赛道、近期的文章;过滤无封面图、封面图无法访问的条目;按主题相关度排序取前20条。
步骤4:AI图像分析与特征提取
- 汇总案例池中的封面图 URL
- 逐张分析封面图(使用原生图片理解能力,直接访问 imageUrl)
7维度分析:
| 维度 | 分析内容 |
|---|---|
| 文字内容 | 是否有文字、内容、字体大小、位置、颜色、醒目程度 |
| 主体元素 | 人物/产品/场景/图案等主要视觉元素 |
| 色彩特征 | 主色调、配色方案、对比度、冷暖色调 |
| 构图布局 | 画面结构、元素分布、主体位置、留白处理 |
| 视觉风格 | 实拍/插画/拼贴/极简/炫酷等风格类型 |
| 点击吸引力 | 痛点/好奇/美感/实用——为什么吸引点击 |
| 尺寸检测 | 宽x高,是否合格(≥10px) |
图片过滤规则:
- 空白图片(纯色块、无内容):标注"需过滤",后续所有环节排除
- 小尺寸图片(宽或高 <10px):全部过滤
- 输出前二次检查:确保无空白/小尺寸图片混入
分类汇总:将相似风格的封面归为同一类,统计特征规律(分类前先过滤空白图片)。
步骤5:输出HTML分析报告与设计方案
使用 references/report_template.html(JS渲染型模板),只需注入 JSON 数据,禁止在输出时临时生成完整 HTML。
- 复制模板到输出文件:
cp references/report_template.html ./爆款封面分析报告_{关键词}.html - 将分析结果组装为 JSON 对象(格式见
references/report_template.md) - 用 SearchReplace 在输出文件(非模板原文件)中将
__REPORT_DATA__的默认空值替换为实际 JSON - 执行
open ./爆款封面分析报告_{关键词}.html在浏览器中打开
JSON 结构(只需填充以下字段,无需生成任何 HTML):
{
"keyword": "用户关键词",
"analysisCount": 20,
"styles": [{ "name": "", "count": 0, "coreVisual": "", "features": "", "covers": [] }],
"plans": [{ "name": "", "coreVisual": "", "case": { "imageUrl": "", "url": "", "title": "", "author": "", "reads": "" }, "prompt": "" }]
}
| 要求 | 说明 |
|---|---|
| 模板 | references/report_template.html(JS 渲染型,样式/防盗链已内置) |
| 数据格式 | 详见 references/report_template.md JSON 数据结构章节 |
| 封面展示 | 按风格类型分类,每类最多5张 |
| 案例参考 | imageUrl 原始值 + 标题(url链接) + 可选作者/阅读数 |
| 生图提示词 | 必须包含标题原文(引号锁定、一字不差),视觉围绕标题语义设计;严格遵循 2.35:1 横版比例(生图服务使用 21:9 比例近似) |
步骤6:用户选择方案并生成封面图
⚠️ 先询问用户,等回复后再生成——不要在用户选择前就生成封面图!
第一阶段(输出报告后立即执行):HTML模板末尾已包含方案选择区域,展示报告后停止,等待用户回复。
第二阶段(用户回复后执行):
- 确认用户选择的方案(1/2/3)及其生图提示词,并检查提示词已按「生图提示词构建规范」用引号锁定标题原文
- 如用户上传了图片,用原生图片理解能力分析,并使用
img2img模式生成 - 使用封面生图服务(kexiangai.com)API 生成封面图
- 生成后必须检查图中标题文字是否与标题原文一字不差;有错字/变形时按规范展示翻车图并等用户确认,禁止自动重试
生图参数映射
| 封面需求 | 生图参数 | 值 |
|---|---|---|
| 比例 | size |
21:9(最接近 2.35:1 的支持比例) |
| 模式(纯文字生图) | modelType |
text2img |
| 模式(有参考图) | modelType |
img2img |
| 模式(改图编辑) | modelType |
imgEdit |
| 分辨率 | resolution |
2k(推荐,兼顾质量和成本) |
| 质量 | quality |
medium(默认,用户可指定 high) |
| 输出格式 | output_format |
png |
| 模型 | modelName |
GPT-Image-2-Official(固定) |
生图调用方式
方式1:使用封装脚本 gen_cover.sh(推荐)
# 纯文字生图(text2img)
X_API_KEY='你的key' ./scripts/gen_cover.sh --prompt "生图提示词"
# 带参考图生图(img2img)
X_API_KEY='你的key' ./scripts/gen_cover.sh --prompt "生图提示词" --image-url "https://example.com/ref.jpg"
# 编辑模式(imgEdit)
X_API_KEY='你的key' ./scripts/gen_cover.sh --prompt "修改描述" --image-url "https://example.com/src.png" --mode imgEdit
# 使用本地持久化 key
./scripts/gen_cover.sh --prompt "生图提示词" --use-local-key
# 高质量 4k
X_API_KEY='你的key' ./scripts/gen_cover.sh --prompt "生图提示词" --resolution 4k --quality high
方式2:直接使用 create_task.sh
# text2img 封面生成
X_API_KEY='你的key' ./scripts/create_task.sh \
--mode text2img --prompt "提示词" \
--size "21:9" --resolution 2k --quality medium --output-format png
# img2img 封面生成(有参考图)
X_API_KEY='你的key' ./scripts/create_task.sh \
--mode img2img --prompt "提示词" \
--size "21:9" --resolution 2k --quality medium --output-format png \
--image-url "https://example.com/ref.jpg"
方式3:直接调用 curl
详见 references/api-guide.md。
- 脚本创建任务后自动轮询查询,直到返回最终结果
- 成功后直接展示生成的封面图,不需要HTML包裹
生图提示词构建规范
封面图必须直接完整展示文章标题原文(由生图模型把文字渲染到图上),而不是只画缩写字母、留白等待后期叠加。提示词按以下三层结构构建:
- 标题锁定(最重要):把用户提供的标题原文用引号原样写入提示词,明确要求「画面主体文字为《{标题原文}》」,标题内容、字数一字不差,禁止模型自行改写、缩写、翻译或只取缩写字母
- 视觉设计:围绕标题的语义重新理解和设计配图元素(主体、配色、构图、风格)——视觉必须服务于标题含义,做到"字是确定的、画面是根据标题设计的"
- 固定后缀:
画面主体文字为「{标题原文}」,标题文字必须清晰、准确、无错字。{方案视觉描述}。横版封面图,比例21:9,适用于微信公众号封面。画面清晰,主体突出。
中文文字渲染风险:AI 模型渲染汉字(尤其 5 字以上短语)有概率出现错字、变形或乱码。生成后必须检查标题文字是否正确;若翻车,将翻车图展示给用户并说明问题,等待用户明确同意后才可再次生成(禁止自动重试)。
步骤7:输出前自检
| 检查项 | 内容 |
|---|---|
| 标题入图 | 提示词已用引号锁定标题原文(一字不差),视觉围绕标题语义设计 |
| 文章输入 | 若输入为文章:已读文提炼、产出2-3个标题候选、并经用户确认后才继续 |
| 风格类型 | 每类有:名称、频次、核心视觉、关键特征、封面示例 |
| 三个方案 | 各有风格名称、核心视觉、案例参考(不重复)、生图提示词 |
| 封面图链接 | 使用收集到的 imageUrl 原始值 |
| 图片过滤 | 无空白图片、无小尺寸图片 |
| 用户交互 | 已询问方案选择并等待回复 |
| 生图调用 | 使用自己的生图服务(21:9 比例) |
| Key 安全 | x-api-key 在日志/回显中仅掩码展示 |
CRITICAL:生图防重复与防自动重试
绝对禁止自动重试(最高优先级)
- 一次用户请求 = 最多一次生图 API 创建调用。无论成功还是失败,都不允许自动发起第二次。
- 脚本执行失败(语法错误、bug、参数错误)时禁止自动修复后重新执行——必须先向用户报告失败原因和完整错误信息,等待用户明确同意后才能再次执行。
- API 返回错误(401/403/429/5xx/网络超时等)时禁止自动重试——必须向用户报告错误信息,等待用户明确同意后才能再次执行。
- 任务状态为 failed/timeout 时禁止自动重试——必须向用户报告失败原因,等待用户明确同意后才能再次执行。
- 唯一允许再次执行的条件:用户明确说出"重试""再试一次""重新生成""修复后重跑"等指令。
- 轮询查询接口(GET)不属于重试——创建成功后的状态轮询是正常流程,应继续执行直到终态。
调用前确认
调用生图 API 前,必须先输出"请求摘要 + 预计积分消耗提醒",并等待用户确认(如"确认生成")。仅在用户确认后才执行创建调用。
注意事项
- 封面必须直接渲染标题原文(引号锁定、一字不差),不采用"只画缩写/留白后期叠字"方案;视觉元素围绕标题语义设计
- 封面图容器比例 2.35:1 (900x383),生图服务使用 21:9 比例近似生成
- HTML添加防盗链 meta 标签
<meta name="referrer" content="no-referrer"> - 案例参考仅保留标题与(可选的)阅读数,不展示第三方平台标识
- 封面图用
<a>标签包裹可点击跳转大图,方案标题用 url 字段链接 - 图像分析使用原生图片理解能力,直接访问封面URL,逐张分析
- 不得泄露完整
x-api-key,日志与回显仅允许掩码展示(如af6c****857a) - 生图 API 创建的是异步任务:创建成功后必须继续调用查询接口,直到任务结束(成功或失败)
标准错误处理
生图 API
- 缺少
X_API_KEY:提示前往 kexiangai.com 注册/登录并获取自己的x-api-key;提醒新用户注册赠送 1 积分,按当前单图约 0.2 积分计算,约可生成 5 张图;可用scripts/set_key.sh持久化 - 缺少
prompt:提示补充提示词后再创建 - 401/403:提示 key 无效、过期或权限不足
- 429:提示限流,不自动重试
- 5xx:提示服务异常,建议用户确认后重试一次
- 查询阶段超时:提示任务可能仍在执行中,可继续按任务 ID 查询
案例收集
- 公开搜索无结果:更换搜索词重试1-2次,仍无结果则明确告知用户
- 案例不足5个:告知用户数据不足,基于现有案例 + 设计经验输出方案
目录结构
wechat-cover-image2/
├── SKILL.md # 本文件
├── scripts/
│ ├── create_task.sh # 生图服务通用任务创建+查询
│ ├── gen_cover.sh # 封面专用生图封装(默认21:9)
│ └── set_key.sh # 生图服务 API Key 持久化
├── references/
│ ├── report_template.html # HTML分析报告模板(JS渲染型)
│ ├── report_template.md # 报告JSON数据结构说明
│ └── api-guide.md # 生图服务 API 接口文档
└── assets/
└── default-cover.jpg # 默认封面图
参考资料
- 生图服务 API:https://kexiangai.com
- wenyan-cli(发布到公众号):见 wechat-publisher skill
- 微信公众号 API 文档:https://developers.weixin.qq.com/doc/offiaccount/