爆款封面导演
Overview
封面的目标是「在 1-2 寸缩略图里让人停下来」,而不是「大图好看」。动手前先内化三条:
- 缩略图是唯一评审标准。 封面 99% 的时间以 200-400px 宽的小图出现。
所有字号、留白、对比度的决策都要按「缩到这么小还读不读得清」来判,
不是按全尺寸效果。图片再精致,缩成拇指大看不清就白做。 - 封面与标题是互补关系,不是重复关系。 标题已经在卡片下方的,
封面再放一遍就是浪费。封面要补充标题给不了的东西:情绪、悬念、人脸、对比。
定稿前问自己:这张图拿走标题还剩什么?答案为空就是一张废图。 - 先把版式定下来,再去生图。 直接用生图模型撞,十次有九次文字跑飞、构图失控。
正确顺序是:brief → 版式稿(SVG,所见即所得)→ 确认 → 再喂生图模型。
版式稿能把「文字在哪、多大、什么色」焊死,生图只在背景里自由发挥。
常见反模式:封面塞三行小字(缩略图全糊);把标题原样贴进封面(双倍浪费);
让生图模型自由生成中文文字(多半错字乱码,见第 5 步的处理方式)。
视觉质量红线:只有「纯色背景 + 居中黑字 + 一根短线 + 胶囊 badge」的稿子一律不算完成——
那是 PPT 默认页,不是封面。合格的版式稿必须同时具备:明确的视觉焦点、至少两级字号对比、
非对称或几何构成、以及至少一个质感层(渐变 / 纹理 / 星芒 / 编号水印)。
生成后务必实际渲染成图片看一眼,只做 XML 合法性检查是查不出「丑」的。
工作流
第 1 步:定平台与画布
| 平台 | 画布 | 关键约束 |
|---|---|---|
| 小红书 | 1080×1440(3:4) | 双列 feed 缩略约 350px 宽;标题建议 ≤ 12 字 |
| 公众号 | 900×383(2.35:1) | 会话卡片缩略约 250px 宽;标题建议 ≤ 10 字,放左侧安全区 |
| 视频号 | 1080×1260(6:7) | 转发进私域场景多;要能脱离标题独立成立 |
| 抖音 | 1080×1920(9:16) | 标题由视频文案承担,封面大字 ≤ 8 字,越短越好 |
| B站 | 1280×720(16:9) | 信息流缩略约 320px 宽;标题+封面组合,封面补视觉钩子 |
缺省必须先问平台——同一内容换平台等于重做构图。
第 2 步:跑封面 brief 体检
python3 scripts/cover_draft.py brief.json --check-only
python3 scripts/cover_draft.py brief.json --check-only --json
brief 结构(第 4 步同款):
{
"platform": "xiaohongshu",
"template": "poster-bold",
"headline": "二胎妈妈3分钟出门妆",
"subline": "手残党也能学会",
"badge": "保姆级教程",
"palette": "cream",
"highlight": "3分钟"
}
highlight 可选:标题里要打荧光笔高亮的关键词(如「3分钟」「5千」)。
留空时脚本自动提取标题里的数字短语。关键词被当作不可折行单元,
不会出现「3分 / 钟」这种把词拆断的丑断行;无数字短语时末行整行换强调色。
脚本检查六项:标题字数、副标题字数、模板与平台匹配度、缩略图可读性预估(按字号规则)、
模板必填项是否齐全、合规风险词(绝对化/夸大用语)。产出逐项通过/警告/错误清单。
判定规则:出现「错误」项必须改完再进入下一步;「警告」项需人工确认。
判定线是机械的,不接受「我觉得还行」——缩略图可读性失分就是无人点击。
注意:等比例放大画布不能改善可读性,脚本算的是「字号 / 画布宽」的比值,
唯一有效的修复是减字或换占画面更大的模板。
第 3 步:选版式模板与色板
内置 4 个模板(见 references/cover-layout-patterns.md 的效果对照与适用场景):
| 模板 | 结构 | 适用 |
|---|---|---|
poster-bold |
杂志大字报:左对齐超大标题 + 荧光笔关键词高亮 + 斜切色域 | 干货、教程、强观点 |
split-contrast |
斜切对比:双色斜分 + 编号水印 + VS 徽章 + 删除线 | 测评、改造、对比类 |
data-card |
数据海报:满版色域 + 同心圆 + 超大渐变数字 + 进度条 | 数据、榜单、盘点类 |
safezone-blank |
无字留白构图:抽象构成底图,左侧干净、右侧主体承载区 | 公众号(文字在卡片下方) |
色板 6 组:暖纸朱红(cream)、黑金荧光(energy)、克莱因蓝(business)、
墨绿香槟(gold)、薄荷墨绿(forest)、电光紫粉(night)。
选色板看内容情绪:生活教程选 cream,强观点选 energy,商务选 business,高端品选 gold/night。
每套色板自带深底与反白字,切换色板不会出现白字压白底。
版式稿不是线框图。 渲染层内置完整视觉设计系统:渐变背景、斜切色域、点阵纹理、
星芒、同心圆、荧光笔高亮、编号水印、编辑式 kicker(短线 + 大字距小字,替代廉价胶囊)、
底部信息条与数据进度条。元素清单与用法见 references/cover-layout-patterns.md 第三节。
所有 SVG 内部 id 带「平台-模板-色板」唯一后缀,多份稿子内联同一页面不会串色。
第 4 步:生成 SVG 版式稿
python3 scripts/cover_draft.py brief.json --out cover.svg
python3 scripts/cover_draft.py brief.json --out cover.svg --clean
python3 scripts/cover_draft.py brief.json --json
产出按平台画布渲染的完整平面封面:文字位置、字号、渐变背景、几何构成、
纹理与装饰层全部焊死,加 --clean 后是可以直接发布的成品,不是待上色的草稿。
草稿标注(安全区虚线 + 元信息)集中在 <g id="draft-annotations"> 一个分组里,
--clean 或删掉这一个分组即得干净成品。
这个 SVG 有三重用途:
- 直接当成品封面发布——四类模板都是完整设计稿,
--clean转 PNG 即可用 - 当设计稿迭代——改 brief 的
highlight/palette/template再生成,直到版式满意 - 当参考图喂生图模型——让模型「参照这个构图」生成无字底图,文字层继续用 SVG 叠加
验收规则:把 SVG 渲染后缩小到 320px 宽,标题必须一眼可读、安全区无遮挡。
读不清就加大字号或减字,不达标不进下一步。
第 5 步:产出投喂生图模型的提示词
中文版生图模型(即梦、可灵)与英文版(ChatGPT Images / Images 2.6)的提示词结构不同,
模板见 references/image-prompt-templates.md(含三套完整示例、负向词清单、
以及 2026-11 上线的 Images 2.6 新能力对照表:原生 SVG 导出、局部重绘、
Flare/Sunburst 双变体、complexity 参数、GIF 动图)。三条硬规则:
- 中文字不交给模型自由生成——生图模型生成中文基本错字乱码。
正确做法:让模型生成「无字背景+按版式稿留白的底图」,文字用 SVG 或后期加上去。
唯一例外:单字或 2-3 个超大字(如「瘦」「爆」)成功率较高,可尝试。 - 把版式稿的核心约束写进提示词:构图方向、留白位置、主色调、主体位置,
不要让模型自己发挥版式。 - 情绪与风格分开写:情绪词(紧迫/治愈/高级)影响色调与光效,
风格词(扁平插画/实拍感/3D 渲染)影响质感,两类不要混写。
第 6 步:发布前最后检查
- 缩略图 320px 宽复测:标题一眼可读
- 封面与标题互补:删除重复信息
- 文字未超出安全区(各平台模板已标注)
- 合规:无未授权人像/Logo/品牌元素,无绝对化用语(广告法风险)
硬性约束
| 约束 | 值 | 违反后果 |
|---|---|---|
| 小红书标题 | ≤ 12 字 | 缩略图里读不完 |
| 公众号标题 | ≤ 10 字 | 会话卡片放不下 |
| 抖音封面字 | ≤ 8 字 | 信息流里糊成一片 |
| 标题字号 | ≥ 画布宽的 4-6%(大字报类) | 缩略图不可读 |
| 中文字生成 | 不交给生图模型 | 错字乱码 |
| 安全区 | 标题不得越界 | 被平台 UI 遮挡 |
| 绝对化用语 | 不上封面 | 广告法风险 |
脚本索引
| 脚本 | 用途 |
|---|---|
scripts/cover_draft.py |
封面 brief 体检(--check-only)+ 按平台画布生成完整视觉设计封面(--out);--json 输出结构化结果(含 SVG 字符串与折行结果) |
用法:
python3 scripts/cover_draft.py brief.json --check-only # 体检
python3 scripts/cover_draft.py brief.json --out cover.svg # 生成版式稿
python3 scripts/cover_draft.py brief.json --json # 结构化输出(供 Agent 解析,含 SVG 字符串)
python3 scripts/cover_draft.py brief.json --out final.svg --clean # 去标注,可直接发布
退出码:0 无错误项 / 1 存在错误项 / 2 输入错误。零依赖,只读本地,不联网;
唯一写操作是 --out 指定的 SVG 文件(--json 单独使用时只回传字符串,不落盘)。
常见错误
| 现象 | 原因 | 处理 |
|---|---|---|
| 版式稿字糊看不清 | 字号按全尺寸判断 | 按缩略图 320px 复核,加大字号或减字 |
| 封面和标题说一样的话 | 重复信息 | 封面补情绪/悬念/人脸,标题管信息 |
| 生图出中文错字 | 让模型自由生成中文 | 只生成无字底图,文字用 SVG 加 |
| 换平台后封面乱 | 直接复用构图 | 按第 1 步重定画布,重跑第 2 步 |
| 模板报错「缺字段」 | 所选模板需要 badge/subline 等 | 补齐或换模板(见模板必填项表) |
| 色板看着别扭 | 情绪与内容不符 | 按第 3 步的情绪-色板对照重选 |
| 封面像 PPT 默认页(纯色底+居中黑字) | 只做了结构合法,没做视觉设计 | 按 Overview 的视觉质量红线逐项核对,并实际渲染成图片复核 |
| 「3分钟」被折成「3分 / 钟」 | 数字短语被逐字折行打断 | 设置 highlight,该词会作为不可折行单元处理 |
| 多张 SVG 放同一页面后串色 | 渐变/纹理 id 冲突 | 已修复:所有 id 带平台-模板-色板唯一后缀 |