微信公众号封面图Image GenerationGPT Image内容工作流Nbility

给公众号文章自动生成封面图

从文章标题、摘要、关键词到 900×383 头条封面、383×383 分享封面和 1283×383 组合图,搭建一套可复用的公众号封面自动生成工作流。

给公众号文章自动生成封面图

给公众号文章自动生成封面图封面

公众号文章写完以后,最容易卡住的不是正文,而是封面:标题已经定了,但封面不知道画什么;AI 生出来一张图,放进后台又发现头条封面被裁掉一半;聊天转发卡片里只剩一个看不清的小角落。

这篇文章不讲“审美玄学”,而是把公众号封面拆成一个可自动化的流程:从文章标题和摘要提取视觉方向,用生图 API 生成底图,再按微信公众号的展示场景导出头条封面、分享封面和组合封面。你可以把它接到自己的 Markdown 写作、公众号排版、AI Agent 内容生产流程里。

先弄清楚:公众号其实有两种封面

微信开放社区的教程里明确提到,公众号封面至少要考虑两类展示:

  • 头条封面:比例 2.35:1,推荐尺寸 900×383 px,用于文章推送和推荐展示。
  • 分享封面:比例 1:1,推荐尺寸 383×383 px,用于公众号主页、聊天转发和朋友圈转发卡片。

另一个微信开放社区的图文消息编辑方法里还提到:封面图片必须上传,支持 bmppngjpegjpggif,封面图片大小在 10M 以内;大图建议尺寸曾写作 900×500,上传后会被压缩为宽 640 像素的缩略图。实际做封面时,建议按当前后台裁剪入口和展示场景来检查,不要只相信一张设计稿。

最稳的做法是:同时准备 900×383 的头条图和 383×383 的分享图。如果你想在公众号后台用同一张图完成两种裁剪,可以制作一张 1283×383 的组合图:左侧放头条封面区域,右侧放分享封面区域。

公众号封面自动生成流程

为什么适合用 AI 自动生成

公众号封面有几个特点,刚好适合自动化:

  1. 文章本身已经有标题、摘要、关键词,可以直接变成视觉 brief;
  2. 封面多为概念图、人物场景、产品氛围图,不一定需要真实摄影;
  3. 同一账号通常有固定风格,prompt 模板可以复用;
  4. 一篇文章可能需要多个版本:正式封面、分享卡片、小红书二改图、推文配图;
  5. 运营更关心“能不能快速生成 3 个可选方向”,而不是一次就完美。

这里可以自然接入 Nbility 这类 OpenAI-compatible API 网关:文字模型负责从文章提炼 brief,图片模型负责生成视觉底图,最后脚本裁剪导出。好处是 Base URL、API Key、用量记录和模型切换都在一个入口里管理。

推荐工作流

一个实用的自动化流程可以这样设计:

文章 Markdown / 标题 / 摘要
  -> 提取主题、读者、情绪钩子、禁用元素
  -> 生成封面 prompt
  -> 调用图片生成 API 得到底图
  -> 裁剪/排版为 900×383、383×383、1283×383
  -> 人工快速挑选与微调
  -> 上传公众号后台并发送手机预览

不要让 AI 直接决定所有东西。比较稳的分工是:

  • AI 负责生成 2–4 个视觉方向;
  • 脚本负责尺寸、裁剪、安全区、压缩;
  • 人负责最终标题、敏感信息、品牌一致性和点击预期。

第一步:把文章变成封面 brief

给封面生成模型的输入不要只有标题。建议先提取这几项:

title: "给公众号文章自动生成封面图"
summary: "介绍如何用 AI 从文章标题和摘要生成公众号头条封面、分享封面和组合图。"
audience: "公众号运营、新媒体编辑、独立开发者、AI 内容团队"
hook: "写完文章后,封面不再卡半小时"
visual_metaphor: "AI 助手在设计台上生成多张封面草稿"
brand_style: "黑橙色、科技感、清晰留白、中文标题空间"
constraints:
  - "不要生成真实品牌 Logo"
  - "不要生成二维码、真实个人头像、API Key"
  - "不要依赖模型生成小号中文文字"

这一步可以用聊天模型完成,也可以简单用人工模板。关键是:封面不是“文章标题的同义改写”,而是给读者一个点击理由。

第二步:生成底图 prompt

一个稳定的封面 prompt 可以按这个结构写:

用途:微信公众号文章封面,科技/AI 教程类。
主体:AI 助手在桌面屏幕上生成多张文章封面草稿。
构图:横版,左侧留出中文标题空间,右侧为主视觉;同时保证中心裁剪成 1:1 时仍有完整主体。
风格:黑橙色科技感,清晰、干净、现代插画,不要过度拥挤。
限制:不要真实 Logo,不要二维码,不要水印,不要可读小字,不要 API Key。

如果你用生图模型生成带中文大字的封面,可能会遇到字形错误、笔画混乱、错别字等问题。更稳的方式是:AI 只生成无字底图,标题由脚本或设计工具后加

第三步:调用生图 API

下面是一个最小 Python 示例。它使用 OpenAI-compatible SDK 写法,只要把 Base URL 指向 Nbility 即可:

python -m venv .venv
source .venv/bin/activate
pip install openai python-dotenv pillow

.env

NBILITY_API_KEY=[REDACTED]
NBILITY_BASE_URL=https://api.nbility.dev/v1
NBILITY_IMAGE_MODEL=gpt-image-2

generate_cover_base.py

import base64
import os
from pathlib import Path

from dotenv import load_dotenv
from openai import OpenAI

load_dotenv()

client = OpenAI(
    api_key=os.environ["NBILITY_API_KEY"],
    base_url=os.environ.get("NBILITY_BASE_URL", "https://api.nbility.dev/v1"),
)

prompt = """
WeChat Official Account article cover background for an AI tutorial.
A friendly AI assistant designing multiple article cover drafts on a desktop screen.
Composition: horizontal cover, clean title space on the left, main visual on the right,
and still recognizable when center-cropped to a square sharing card.
Style: modern tech illustration, black and orange palette, soft glow, clean layout.
Constraints: no readable text, no real logos, no QR code, no watermark, no API keys.
"""

result = client.images.generate(
    model=os.environ.get("NBILITY_IMAGE_MODEL", "gpt-image-2"),
    prompt=prompt,
    size="1536x1024",
    quality="medium",
)

Path("cover-base.png").write_bytes(base64.b64decode(result.data[0].b64_json))
print("saved cover-base.png")

这里先生成 1536×1024 的底图,再用脚本裁剪到公众号需要的比例。直接要求模型输出 900×383 也可以,但很多模型对超宽扁比例的构图稳定性不如先生成高清底图再裁剪。

第四步:裁剪成公众号需要的尺寸

使用 Pillow 自动导出三张图:

  • cover-wide.png900×383,头条封面;
  • cover-square.png383×383,分享封面;
  • cover-combo.png1283×383,组合封面,方便在公众号后台分别裁剪。

export_wechat_covers.py

from pathlib import Path
from PIL import Image, ImageDraw, ImageFont

SRC = Path("cover-base.png")
OUT = Path("dist")
OUT.mkdir(exist_ok=True)

TITLE = "AI 自动封面"
SUBTITLE = "写完文章,一键出图"

img = Image.open(SRC).convert("RGB")

# 先做一个横版封面:居中裁剪成 900×383 的比例
wide_ratio = 900 / 383
w, h = img.size
if w / h > wide_ratio:
    new_w = int(h * wide_ratio)
    left = (w - new_w) // 2
    img_wide_src = img.crop((left, 0, left + new_w, h))
else:
    new_h = int(w / wide_ratio)
    top = (h - new_h) // 2
    img_wide_src = img.crop((0, top, w, top + new_h))

wide = img_wide_src.resize((900, 383), Image.LANCZOS)

# 叠加半透明标题区,避免标题压在复杂背景上
draw = ImageDraw.Draw(wide, "RGBA")
draw.rounded_rectangle((36, 58, 390, 280), radius=24, fill=(15, 23, 42, 190))

# 生产环境建议指定思源黑体 / PingFang / Noto Sans CJK
try:
    font_title = ImageFont.truetype("/usr/share/fonts/truetype/noto/NotoSansCJK-Bold.ttc", 54)
    font_sub = ImageFont.truetype("/usr/share/fonts/truetype/noto/NotoSansCJK-Regular.ttc", 26)
except Exception:
    font_title = ImageFont.load_default()
    font_sub = ImageFont.load_default()

draw.text((64, 95), TITLE, font=font_title, fill=(255, 255, 255, 255))
draw.text((68, 185), SUBTITLE, font=font_sub, fill=(251, 146, 60, 255))
wide.save(OUT / "cover-wide.png", quality=95)

# 分享封面:从横版中裁一个方形区域,优先保留主视觉
square = wide.crop((450, 0, 833, 383))
square.save(OUT / "cover-square.png", quality=95)

# 组合图:左 900×383 + 右 383×383
combo = Image.new("RGB", (1283, 383), "white")
combo.paste(wide, (0, 0))
combo.paste(square, (900, 0))
combo.save(OUT / "cover-combo.png", quality=95)

print("exported dist/cover-wide.png, dist/cover-square.png, dist/cover-combo.png")

如果你发现分享卡片里主体不完整,就改 square = wide.crop(...) 的坐标。很多封面翻车不是因为 AI 图不好,而是因为 1:1 裁剪区域没有提前设计。

第五步:发布前检查

公众号封面上线检查清单

上传公众号后台前,建议逐项检查:

  • 头条封面是否按 2.35:1 裁剪;
  • 分享封面是否按 1:1 裁剪;
  • 标题在手机小图里是否还能看清;
  • 重要人物、产品、图标有没有贴边;
  • 背景有没有生成奇怪文字、假 Logo、水印、二维码;
  • 图片大小是否在后台限制内;
  • 发送手机预览后,检查会话、公众号主页、聊天转发卡片三个场景。

如果你是团队协作,可以把封面状态分成:draftselecteduploadedpreviewedpublished。这样 AI Agent 批量生成多篇文章时,不会把草稿图误当最终图。

常见问题

1. 为什么 AI 生成的封面字不好看?

很多图像模型已经能生成更可靠的文字,但中文标题仍然可能出错。公众号封面建议让 AI 生成无字底图,再用脚本、Figma、Canva 或稿定设计叠加标题。

2. 为什么头条图好看,转发卡片不好看?

因为头条图是横版,分享卡片是 1:1。设计时要保证主视觉在方形裁剪区里仍然完整。最简单的方法是导出 cover-square.png 单独检查。

3. 一篇文章要生成几张候选图?

建议 3 张以内。太多会增加选择成本。更好的策略是先生成 3 个方向,选定一个方向后再做 1–2 次局部迭代。

4. 怎么控制成本?

先用较低质量或中等质量生成草稿,最终版本再提高质量。把文章标题、用户、任务 ID、图片尺寸和模型名记录下来,后续可以在 Nbility 的统一用量入口里做成本归因。

5. 能不能完全自动发布?

封面可以高度自动化,但最终发布前仍建议人工预览。封面涉及品牌、安全、误导性信息和平台裁剪效果,最后一步不要省。

一套可复用的目录结构

wechat-cover-workflow/
├── articles/
│   └── example.md
├── prompts/
│   └── cover_prompt_template.txt
├── outputs/
│   └── 2026-05-27-example/
│       ├── cover-base.png
│       ├── cover-wide.png
│       ├── cover-square.png
│       └── cover-combo.png
├── generate_cover_base.py
└── export_wechat_covers.py

后续如果你要把它接入 AI Agent,可以让 Agent 负责读取 Markdown、生成 brief、调用生图脚本、导出尺寸、写入发布清单。这样每篇文章写完后,封面不再是额外负担,而是内容流水线的一部分。

参考链接

相关文章

给小红书/推文生成配图工作流
小红书XTwitter

给小红书/推文生成配图工作流

从标题、卖点和平台尺寸出发,用 AI 生成小红书首图、轮播卡片和 X/Twitter 推文配图,并用脚本控制安全区、比例、导出和审核。

GPT-image / 多模态生图 API 新手教程
GPT ImageImage GenerationMultimodal

GPT-image / 多模态生图 API 新手教程

从文本生图、参考图编辑、Base URL、b64_json 保存到错误排查,带你用 OpenAI-compatible API 搭好第一条可复用的图片生成工作流。

用 Nbility 跑通你的 Agent 工作流

获取 API Key,统一接入 OpenAI 兼容模型和开发工具。

管理 API Key