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


同一篇内容,发到不同平台时,最容易出问题的往往不是文案,而是配图:小红书首图被裁掉标题,轮播卡片风格不统一;X/Twitter 上横图缩放后看不清,截图里又塞了太多小字。
这篇文章把“生成配图”拆成一套可复用的工作流:先从内容里提取 brief,再按小红书和 X 的展示习惯生成不同尺寸,最后用脚本做裁剪、安全区、压缩和审核。你可以把它接到 AI Agent 写作流、Markdown 发布流,或者团队的日常内容生产工具里。
先定平台目标:不是一张图发全平台
小红书和 X 的浏览场景差别很大:
- 小红书更像瀑布流货架,首图承担点击入口。常见比例有竖版
3:4、方形1:1、横版4:3;面向知识卡片和教程时,优先用竖版,例如1080×1440或1242×1660。 - X/Twitter更适合横向信息图、产品发布图和链接导流图。常用推文图可以按
16:9准备,例如1200×675;也可以准备1:1方图做更稳的多端预览。
X 官方帮助页说明,发图支持 GIF、JPEG、PNG,图片会在展开显示时自动缩放。也就是说,真正上线前一定要用手机预览,不要只看本地大图。
推荐输出矩阵
一个稳定的内容团队,不应该每次从零设计。建议把一篇内容拆成这些固定产物:
- 小红书首图:
3:4,大标题 + 明确视觉钩子; - 小红书轮播内页:同样
3:4,每页只讲一个点; - X 横图:
16:9,适合摘要、架构图、产品发布; - X 方图:
1:1,适合多图推文或头像旁边的紧凑预览; - 无字底图:保留一张干净版本,方便后期改标题或二次发布。
最关键的原则是:AI 生成视觉底图,确定文字由脚本或设计工具叠加。尤其是中文标题、小号注释、代码片段,不要完全交给生图模型生成,否则错字和变形很难避免。
工作流总览
可以把整个流程设计成下面这样:
文章标题 / 摘要 / 关键词
-> 内容 brief:读者、痛点、卖点、情绪钩子
-> 平台策略:小红书 3:4;X 16:9 / 1:1
-> 生成无字底图或半成品视觉
-> 脚本叠加标题、角标、安全区参考线
-> 导出 PNG/JPG,压缩,人工预览
-> 发布到小红书、X 或排期工具
这里可以自然接入 Nbility 这类 OpenAI-compatible API 网关:聊天模型负责把文章拆成 brief,图片模型负责生成底图,同一个 Base URL 和 API Key 管理模型、账单和用量。对内容团队来说,统一入口比到处复制不同平台的 key 更容易维护。
第一步:把内容变成 brief
不要直接把整篇文章扔给生图模型。先提取一份简短、稳定的视觉 brief:
title: "给小红书/推文生成配图工作流"
audience: "AI 工具用户、独立开发者、新媒体运营"
platforms:
- "小红书:知识卡片、教程首图、轮播"
- "X:产品发布、长文导流、技术观点图"
hook: "同一篇文章,一次生成多平台配图"
visual_metaphor: "AI 设计台同时输出竖版卡片和横版推文图"
brand_style: "黑橙科技感、清晰留白、强对比、少量装饰"
constraints:
- "不要真实 Logo、二维码、API Key"
- "不要依赖模型生成小号中文"
- "人物脸、标题和产品截图放在安全区"
这份 brief 后续可以复用:给聊天模型生成 prompt、给脚本生成文件名、给审核清单判断是否跑偏。
第二步:写一个可复用 prompt 模板
适合内容配图的 prompt 不需要特别玄学,重点是结构稳定:
Use case: social media image set for an AI tools tutorial.
Platforms: Xiaohongshu portrait cover and X/Twitter landscape post image.
Scene: an AI assistant working at a design dashboard, exporting multiple cards.
Composition: keep a clear title-safe area; main subject centered enough for square crop;
style: black and orange tech palette, clean modern illustration, high contrast.
Constraints: no real logo, no QR code, no watermark, no tiny readable text, no API key.
如果你要做小红书卡片,prompt 里可以明确“portrait composition, 3:4 safe area, large blank headline space”。如果要做 X 横图,可以明确“landscape composition, 16:9, centered subject, readable at feed size”。
第三步:调用图片 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_social_base.py:
import base64
import os
from pathlib import Path
from openai import OpenAI
from dotenv import load_dotenv
load_dotenv()
client = OpenAI(
api_key=os.environ["NBILITY_API_KEY"],
base_url=os.getenv("NBILITY_BASE_URL", "https://api.nbility.dev/v1"),
)
prompt = """
Social media image set concept for an AI tools tutorial.
A friendly AI mascot exports portrait cards and landscape tweet images
from a futuristic design dashboard. Black and orange tech palette,
clear title-safe blank areas, clean modern illustration.
No real logos, no QR codes, no watermark, no readable tiny text.
"""
result = client.images.generate(
model=os.getenv("NBILITY_IMAGE_MODEL", "gpt-image-2"),
prompt=prompt,
size="1536x1024",
quality="medium",
)
image_bytes = base64.b64decode(result.data[0].b64_json)
Path("outputs/base.png").parent.mkdir(parents=True, exist_ok=True)
Path("outputs/base.png").write_bytes(image_bytes)
print("saved outputs/base.png")
OpenAI 的 Image Generation 文档也提供了同类示例:调用 images.generate,从 b64_json 里取出图片并保存成本地文件。官方 prompting guide 还建议把复杂需求写成清晰的结构:场景、主体、关键细节、限制条件,而不是一整段含糊形容词。
第四步:裁剪成小红书和 X 两套图
实际生产中,建议先生成一张横版或大尺寸底图,然后用脚本裁剪、加背景、加标题。下面示例使用 Pillow:
from pathlib import Path
from PIL import Image
SRC = Path("outputs/base.png")
OUT = Path("outputs/export")
OUT.mkdir(parents=True, exist_ok=True)
sizes = {
"xiaohongshu-cover": (1080, 1440), # 3:4
"xiaohongshu-square": (1080, 1080), # 1:1
"x-landscape": (1200, 675), # 16:9
"x-square": (1200, 1200), # 1:1
}
img = Image.open(SRC).convert("RGB")
def cover_crop(im, target_w, target_h):
src_w, src_h = im.size
target_ratio = target_w / target_h
src_ratio = src_w / src_h
if src_ratio > target_ratio:
new_w = int(src_h * target_ratio)
left = (src_w - new_w) // 2
box = (left, 0, left + new_w, src_h)
else:
new_h = int(src_w / target_ratio)
top = (src_h - new_h) // 2
box = (0, top, src_w, top + new_h)
return im.crop(box).resize((target_w, target_h))
for name, size in sizes.items():
out = cover_crop(img, *size)
out.save(OUT / f"{name}.jpg", quality=92, optimize=True)
这段脚本只做了中心裁剪。正式用时你可以继续加入标题叠加、安全区边距、品牌角标、导出 WebP/JPG、文件体积检查等逻辑。
第五步:给文字和安全区留位置
配图最常见的问题不是“不好看”,而是“发出去之后看不懂”。建议按下面规则做:
- 标题最多两行,第一屏只讲一个 hook;
- 小红书首图可以有强标题,但不要堆满正文;
- X 横图要在缩略流里也能看懂,文字数量更少;
- 人物、产品截图、关键 UI 不要贴边;
- 每套图保留一张无字底图,后续热点改标题会快很多;
- 不要在图里放真实 API Key、手机号、二维码、未授权商标。
如果要做系列化内容,最好固定 2–3 套模板:教程型、清单型、观点型。AI 每次只换主题和主视觉,整体品牌就不会散。
第六步:人工审核而不是全自动发布
自动生成不等于自动发布。上线前至少检查:
[ ] 标题没有错别字,重点信息没有被裁掉
[ ] 手机端小红书预览、X 信息流预览都能看清
[ ] 图片里没有真实密钥、二维码、内部后台、用户隐私
[ ] 没有平台禁用内容、误导性对比、侵权 Logo
[ ] 文件格式和体积符合平台上传要求
[ ] 同一组轮播的比例、配色、字体风格一致
如果团队有 AI Agent,可以让 Agent 先跑一次静态检查:读图片文件名、尺寸、体积、prompt 记录和导出目录,再把风险项列给人审。
常见问题排查
1. 小红书首图被裁掉标题
标题离边缘太近,或者原图不是按目标比例设计。解决方法:按 3:4 重新导出,并给顶部、左右两侧留出安全边距。
2. X 横图在信息流里看不清
图里文字太多。把横图当成“视觉摘要”,只保留一句主标题和一个核心视觉,长解释放到正文推文里。
3. AI 生成的中文错字很多
不要让模型生成最终中文标题。让模型生成无字底图,再用 Pillow、Canva、Figma 或自己的模板脚本叠加文字。
4. 多个平台风格不一致
先固定一套品牌 brief:主色、背景、角色、图标风格、标题区位置。每个平台只改比例和信息密度,不要每次换审美。
5. 批量生成成本不可控
先低质量或小批量出 2–4 个方向,选中后再高质量重跑。用 Nbility 这类统一网关记录用量,按项目或 API Key 分组看成本,会比手工估算可靠。
参考链接
- OpenAI Image Generation guide: https://developers.openai.com/api/docs/guides/image-generation
- OpenAI GPT Image prompting guide: https://developers.openai.com/cookbook/examples/multimodal/image-gen-models-prompting-guide
- Nbility API overview: https://nbility.dev/docs/api
- X Help Center - Posting GIFs and pictures: https://help.x.com/en/using-x/posting-gifs-and-pictures
- Canva 可画 - 小红书设计尺寸: https://www.canva.cn/sizes/little-red-book
- 稿定设计 - 小红书配图在线设计制作: https://www.gaoding.com/features/61

