garden-skills 实战:用 GPT Image 2 结构化模板生成品牌识别系统板(Brand Identity Board)
garden-skills 实战:用 GPT Image 2 结构化模板生成品牌识别系统板(Brand Identity Board)
品牌识别系统板(Brand Identity Board / VI Summary)是"用一张图讲清楚一个品牌完整视觉资产"的核心工具:logo、配色、字体、应用场景四要素同屏呈现,既是品牌提案的第一页,也是设计师作品集中最见功底的单页。本文基于 garden-skills 仓库中 gpt-image-2 技能下的 品牌识别系统板模板,完整讲解该模板的设计理念、可直接复用的 JSON 提示词、三个变体模式,并结合 SKILL.md 中定义的 A/B/C 三种运行模式与 generate.js 脚本调用链,给出从"用户一句话"到"一张可交付品牌板"的完整实操路径。读完本文,你将能直接用结构化 JSON 参数生成 VI summary、品牌提案 board 与品牌指南封面,并掌握自动补全、极简与高密度三种常见变体的写法。
模板定位:一张图承载完整品牌识别系统
该模板解决的是"用户提到 VI / 品牌识别 / 品牌系统 / brand board / brand guideline cover,希望一张图展示品牌全套"这类需求。它产出的是一张多区块大图:
- 品牌 logo + 字体 + 配色 + 应用场景四要素
- 等效于 VI 摘要单页、品牌提案 board、品牌指南 cover、设计师 case study 单页
模板在视觉特征上强调"系统感 + 专业感":一张大图分多区块,logo 应用 + 配色板 + 字体规范 + 实物 mockup 并置,通常带 grid 辅助线与 label 标注,整体风格偏冷静、不过度装饰。
适用范围与使用边界
模板文件明确了三大适用场景:
- 品牌识别系统板(VI summary)
- 品牌提案 board
- 设计师作品集 single page
同时明确划定了不要使用的边界,避免与同仓库相近模板混淆:
- 吉祥物品牌套装 → 用 mascot-brand-kit.md
- 单个海报 → 用 poster-and-campaigns/brand-poster.md
- 包装 mockup 单图 → 用 cosmetic-packaging.md
这一"何时使用 / 不要使用"的双向界定,正是 prompt-writing.md 中要求的单模板标准结构,也是 Agent 在 SKILL.md 模板索引第 13 类 Branding & Packaging 下精准选模板的依据。
缺失信息优先提问顺序
模板给出了一套精确的提问顺序,Agent 在信息不足时按此依次澄清,而不是笼统地问"你想要什么风格":
- 品牌名 + 一句定位
- 行业 / 受众
- logo 主形态(文字 / 图形 / 组合)
- 主色 1-2 个
- 字体偏好(衬线 / 无衬线 / 手写)
- 是否需要包装 / 名片 / 海报 mockup
这与 SKILL.md 的"询问规则"一致:模板缺失关键变量时,应当根据模板字段精确提问。
主模板:四分区品牌识别系统板 JSON 详解
主模板把一张 3:4 竖版大图拆成四个功能区块,每个区块用 regions 下的一个子对象承载,这是整个模板的灵魂。完整 JSON 如下:
{
"type": "品牌识别系统板",
"goal": "生成一张可作为 VI summary / brand board 的品牌识别系统单页",
"brand": {
"name": "{argument name=\"brand name\" default=\"AURORA\"}",
"tagline": "{argument name=\"tagline\" default=\"光,让生活柔软\"}",
"industry": "{argument name=\"industry\" default=\"家居灯光\"}",
"personality": "{argument name=\"personality\" default=\"温柔、现代、克制\"}"
},
"regions": {
"logo": {
"position": "{argument name=\"logo position\" default=\"左上大区\"}",
"primary_logo": "{argument name=\"primary logo\" default=\"AURORA 字标 + 圆形光晕图形\"}",
"secondary_logos": ["黑白单色版", "图形版(无文字)", "竖排版"],
"background_test": "深底 / 浅底各展示一次"
},
"color_palette": {
"position": "{argument name=\"color position\" default=\"右上\"}",
"primary": [
"{argument name=\"primary color 1\" default=\"#0F4C81 海军蓝\"}",
"{argument name=\"primary color 2\" default=\"#FFD166 暖金\"}"
],
"secondary": [
"{argument name=\"secondary color 1\" default=\"#F4F1EA 米白\"}",
"{argument name=\"secondary color 2\" default=\"#222 深灰\"}"
],
"swatch_design": "色块 + HEX + 中文名"
},
"typography": {
"position": "{argument name=\"type position\" default=\"左下\"}",
"headline_font": "{argument name=\"headline font\" default=\"现代 serif(如 Playfair Display)\"}",
"body_font": "{argument name=\"body font\" default=\"中文圆体 + 英文 sans\"}",
"demo_block": "Aa Bb Cc 1234 + 一句中文 + 一句英文"
},
"applications": {
"position": "{argument name=\"app position\" default=\"右下\"}",
"mockups": [
"{argument name=\"mockup 1\" default=\"名片正反面\"}",
"{argument name=\"mockup 2\" default=\"产品包装盒\"}",
"{argument name=\"mockup 3\" default=\"app icon + 闪屏\"}"
]
}
},
"style": {
"art_style": "{argument name=\"art style\" default=\"现代极简 brand board,米色背景 + 微纸纹\"}",
"grid": "细灰色辅助线"
},
"aspect_ratio": "{argument name=\"aspect ratio\" default=\"3:4\"}",
"constraints": {
"must_keep": [
"4 个区块边界清晰",
"logo 区始终居首位",
"配色板 ≤ 6 色 + HEX 可读",
"应用 mockup 风格统一"
],
"avoid": [
"塞太多元素导致每区无呼吸感",
"字体超过 2 种家族",
"颜色超过 6 种",
"缺少 HEX 编号"
]
}
}
区块职责与参数解读
brand 区块:定义品牌身份的四要素——name(品牌名)、tagline(一句定位语)、industry(行业)、personality(性格关键词)。这四者是后续 logo、配色、字体决策的输入,属于"必问"的核心参数。
logo 区块:这是整张板的主视觉,要求"始终居首位"。primary_logo 描述主 logo 形态(文字 / 图形 / 组合),secondary_logos 列出衍生版本(黑白单色版、图形无文字版、竖排版),background_test 要求"深底 / 浅底各展示一次"——这是品牌板区别于普通海报的关键:它要验证 logo 在不同底上的可读性。
color_palette 区块:主色 2 个 + 辅助色 2 个,共 ≤ 6 色。swatch_design 明确要求"色块 + HEX + 中文名",HEX 编号是硬性约束,缺了 HEX 标注即失败。
typography 区块:headline_font 标题字体 + body_font 正文字体,且要求不超过 2 种字体家族。demo_block 演示块必须是"西文样本(Aa Bb Cc 1234)+ 一句中文 + 一句英文"的组合,验证中西文混排效果。
applications 区块:3 个应用 mockup(名片正反面 / 产品包装盒 / app icon + 闪屏),要求风格统一,这是"品牌落地产物"的直观证据。
constraints:成败开关
must_keep 定义必须出现的东西,avoid 定义必须避免的东西,二者缺一不可:
- must_keep:4 个区块边界清晰、logo 区居首位、配色 ≤ 6 色且 HEX 可读、mockup 风格统一
- avoid:每区无呼吸感(塞太多)、字体 > 2 家族、颜色 > 6 种、缺 HEX 编号
这一"必须 / 避免"双约束结构在 prompt-writing.md 的 JSON 骨架规范中有明确定义:constraints 用于明确必须出现什么、必须避免什么、最终结果更像什么。
参数策略与自动补全:三类参数的分工
模板把参数分为三档,对应不同的处理方式:
| 参数类型 | 内容 | 处理方式 |
|---|---|---|
| 必问 | 品牌名、行业、主色、定位 | 缺失时按提问顺序主动询问 |
| 可默认 | layout、字体推荐、应用 mockup | 直接用默认值,不打扰用户 |
| 可随机 | mockup 实物细节 | 在风格范围内合理随机生成 |
自动补全策略进一步定义了"偷懒式输入"的展开规则:
- 用户只给品牌名 + 行业 + 一种性格关键词 → 自动展开 logo + 配色 + 字体 + 3 个 mockup
- 默认"现代极简"风格
- 默认竖版 3:4
参数写法遵循 prompt-writing.md 的统一格式 {argument name="..." default="..."}:name 简洁明确,default 给出一个可直接工作的默认值,即使后续经常随机化的字段也应先给出合理默认。
三种变体:极简、高密度与自动补全
变体 1:极致极简 brand board(仅 logo + 颜色)
当用户只想要一张"干净到极致"的品牌板时,砍掉 typography 与 applications 区块,用瑞士平面 / Japanese minimal 作为风格约束:
{
"type": "极简 brand board",
"regions": {
"logo": {"primary_logo": "字标 + 极简图形", "background_test": "白底 + 纯黑底"},
"color_palette": {"primary": ["#000", "#FFF", "#FFD166"]},
"typography": {"demo_block": "Aa Bb"},
"applications": null
},
"constraints": {
"must_feel": "瑞士平面 / Japanese minimal"
}
}
注意这里的 "applications": null 用法——显式置空表示该区块不渲染。颜色压到 3 个(黑 / 白 / 一个强调色),整体只剩 logo 与配色两个焦点。
变体 2:高密度 brand board(含语气、icon 系统)
面向"完整可印刷 brand book cover"的需求,在主模板基础上追加 extras 区块,增加 icon 系统与品牌语气(tone of voice),并将应用 mockup 扩到 5 个:
{
"type": "高密度 brand board",
"regions": {
"logo": {"primary_logo": "..."},
"color_palette": {"primary": ["..."], "secondary": ["..."]},
"typography": {"demo_block": "..."},
"applications": {"mockups": ["名片", "包装", "海报", "app icon", "网站 hero"]}
},
"extras": {
"icon_system": "12 个统一风格图标网格",
"tone_of_voice": "3 句品牌语气示例"
},
"constraints": {
"must_feel": "完整可印刷 brand book cover"
}
}
高密度变体的风险在于塞太满,因此 constraints 里必须坚持"完整可印刷 brand book cover"这一感觉锚点,同时仍受主模板"≤6 色、≤2 字体家族"的硬约束。
变体 3:自动补全模式
当用户说"你来补全"或"先给我一个 demo"时,使用 auto-fill 模式。它不描述具体画面,只声明规则——用户给品牌名 + 行业 + 一句性格描述,Agent 自动决定 logo / 配色 / 字体 / 应用 mockup:
{
"type": "Brand board 自动补全",
"mode": "auto-fill",
"rule": "用户给品牌名 + 行业 + 一句性格描述,自动决定 logo / 配色 / 字体 / 应用 mockup",
"constraints": {
"must_feel": "可作为客户提案首页"
}
}
实战案例:从模板 JSON 到真实品牌板
仓库案例库 website/gpt-image2-website/public/case/branding-and-packaging/brand-identity-board/ 中保存了两个按本模板实际生成的案例 JSON,可作为最佳实践范本。
案例 A:新中式茶饮品牌"清篱"
1.json 把品牌板应用于"新中式冲饮与草本小罐茶":
- brand:清篱 / "一味草木,半日清欢" / 性格"克制、温润、可信赖、略文人气质"
- logo 区:以"清"字行书骨架 + 三片篱叶组成圆形章,横排字标 + 英文 CHING LI,衍生版含纯图形圆章、竖排组合、深绿底反白;左浅米底 + 右深松绿底各放一版主组合做背景测试
- 配色:
#2F4F4F 松烟绿、#C7B89E 米汤白为主色,#8C9A8E 鼠尾草灰绿、#1A1A1A 墨点黑为辅助,色块设计为"圆角色块 + HEX + 中文名 + 5% 白细边" - 字体:标题用类似思源宋的现代 serif + Cormorant 气质英文衬线,正文用类似 PingFang 的 clean sans;demo 块"Aa 清茶回甘 · Brew calm,0123456789"
- 应用:名片正反面、牛皮纸小罐茶包装筒、公众号封面图缩略
- 约束:HEX 数字清晰可读、≤6 主色、四区边界不糊、mockup 统一左上 45° 软光;避免书法字在 mockup 上乱缩放、同屏 >2 字体家族
这个案例完整演示了"文人气质"如何通过 logo 形态(行书 + 圆章)、配色(松烟绿 + 米汤白)和字体(思源宋 + Cormorant)三层协同表达。
案例 B:社区咖啡馆"砖缝光 Bricklight"
2.json 展示风格自由度:同样一个模板,换成"实在、好聊、不装"的独立精品咖啡,视觉语言变为温暖工业风:
- logo:B 与 L 共用笔触形成砖缝,斜向光束负形穿缝而过;衍生版含仅光束 + 砖线图标、横排长字标、单黑反白烧橙底
- 配色:
#1E1E1E 燧石黑、#D36135 窑变橙主色 +#EDE6DB 米窑白、#5C6670 钢蓝灰辅助;色块改为长条色带 + HEX + 用途小字("主背景""强强调") - 应用:外带纸杯 + 热杯套、门头发光字夜间 mockup、微信小程序码立牌
- 约束:HEX 与色块对应、四区呼吸感、杯上 logo 不跨杯缝可识别区;避免过强锈迹脏渍纹理、超过 6 个品牌色点
两个案例说明:模板的 regions 骨架是稳定的,变的是 brand 四要素与每个区块的具体内容——这正是"结构化模板 + 参数填充"设计哲学的价值。
从渲染到出图:结合脚本的完整调用链
按 SKILL.md 的定义,模板 JSON 是提示词结构模板,不是 API 请求体。三种运行模式下,最终交给图像模型的都是渲染后的 prompt 字符串。整个工作流分 8 步:
- 跑 check-mode.js 确定模式(A / B / C)
- 判断任务是生图还是改图
- 识别属于哪个分类目录(本例为 Branding & Packaging 下的 brand-identity-board)
- 只读取对应模板文件
- 严格遵循模板格式(JSON 主模板)
- 把用户输入映射到模板参数,关键信息不足时按提问顺序澄清
- 按模式分叉:Mode A 调脚本出图;Mode B 交给宿主图像工具;Mode C 落盘 prompt 并展示给用户
- 一句话告知用户:当前模式、prompt 落在哪、图落在哪
Mode A 下直接出图(Garden 本地生图)
当环境变量 ENABLE_GARDEN_IMAGEGEN 为真且存在 OPENAI_API_KEY 时,先渲染好 JSON 模板中的参数,保存为 prompt 文件,再调用 generate.js:
node skills/gpt-image-2/scripts/generate.js \
--promptfile garden-gpt-image-2/prompt/brand-identity-board-20261001-030000.md \
--size 1024x1024 \
--quality high
从 shared.js 的源码可以看到这条链路的底层实现:
buildPayload()(generate.js)把 prompt、model、size、quality 等组装成 JSON bodypostJson()(shared.js)向${OPENAI_BASE_URL || "https://api.openai.com/v1"}/images/generations发起请求extractGeneratedBytes()(shared.js)优先解析data[0].b64_json,兼容data[0].urlsaveImage()/savePrompt()自动创建目录并落盘
默认命名规则为 garden-gpt-image-2/prompt/<task-slug>-<timestamp>.md 与 garden-gpt-image-2/image/<task-slug>-<timestamp>.png,slugify() 会从 prompt 提取短名称。默认输出目录若不存在,脚本会自动创建。
Mode B / C 下如何使用
- Mode B(宿主有图像工具):不调用脚本,把渲染好的 prompt 直接传给宿主的
image_generation类工具,prompt 副本按需保存 - Mode C(纯顾问):把最终 prompt 保存到
garden-gpt-image-2/prompt/,在对话中完整展示给用户,并附一句"丢进 ChatGPT / Midjourney / DALL·E 等工具执行"的建议,同时明确告知"已生成可复用 prompt,请用你的图像工具执行",不得假装出图成功
避免事项清单
模板文件在最后给出了 6 条高频失败点,这些既是生成时的约束,也是事后验收的自查清单:
- 不要让 logo 区被压缩到不显眼(logo 区必须居首位)
- 不要让配色 > 6 种(含辅助色)
- 不要让字体 > 2 个家族
- 不要让 mockup 过于花哨破坏专业感
- 不要漏掉 HEX 标注
- 不要让背景出现强烈纹理(保持"系统感 + 专业感"的冷静基调)
与 mascot-brand-kit.md、cosmetic-packaging.md 等相邻模板相比,品牌识别系统板最显著的特征是冷静、克制、以系统完整性为第一目标:它是"品牌资产的目录页",不是情绪表达页,任何过度的装饰、纹理、花色都会稀释"专业感"这个核心价值主张。掌握了四分区骨架、三档参数策略与避免事项清单,你就能把任意品牌的 VI 需求稳定地渲染成一张可交付、可提案、可进作品集的品牌识别系统板。