Marketing Poster Generator
营销主题 → AI 直出材质字体海报(2-3 变体)→ 用户选择 → 文字校验 → 交付
CRITICAL RULES
- 最终产出必须是可直接发布的 PNG 图片。
- 文字由 ImageGen 直接渲染为材质化字体——文字是画面的一部分,不是叠加层。
- 禁止使用 Pillow 合成文字。
- 必须有二次确认环节:先生成 2-3 张变体让用户选择。
- 必须有文字校验环节:选定后逐字核对,错字则重试。
- 每次生成同一尺寸出 2-3 张不同变体(同材质,变构图/场景/光影)。
- 输出语言跟随用户输入语言。
- design-tokens.json 是可选输入——有则用其色彩约束 prompt。
Chain Context
上游读取(Phase 0.5,在 Phase 1 之前执行)
按以下顺序尝试读取上下文,找到即提取可复用字段并告知用户已沿用:
- 扫描会话中的
<!-- spark-context:brief -->/<!-- spark-context:board -->marker - 读取项目目录
spark-output/context/brief.json/spark-output/context/board.json - 都没有则跳过,按无上下文流程执行(Phase 1 正常问用户)
从 brief 提取:project_name、brand_tone、target_user → 预填 Phase 1 的营销主题和品牌调性
从 board 提取:design-tokens.json 路径 → 跳过 Phase 1 第 4 问,自动消费 tokens 色彩约束 prompt
告知用户:"检测到 [brief / board] 上下文(来自 [文件 / 会话 marker]),已沿用以下字段:[字段列表],可继续或修改。"
下游输出(Phase 5.5,在 Phase 5 交付之后执行)
Step 1 · 写盘(必做):调用 Write 工具把完整 JSON 写到 spark-output/context/poster.json
Step 2 · 自检行:输出 ✅ poster.json 已写盘到 spark-output/context/poster.json
Step 3 · 紧凑 marker(必须在 chat 中输出):
⛔ 即使 Step 1 写盘成功,也必须在 chat 中输出以下 marker(让下游 Skill 在纯对话场景下也能发现 poster 上下文):
<!-- spark-context:poster ref="spark-output/context/poster.json" -->
Poster 已保存:project=[项目名],material=[材质],sizes=[尺寸列表],text_verified=[pass/retry/flaw]
<!-- /spark-context:poster -->
Step 4 · 更新链路面板(如 _shared/dashboard-template.html 存在):扫描 spark-output/context/*.json 聚合状态,克隆模板到 spark-output/dashboard.html 并注入。面板生成失败不阻断 Skill 完成。
Step 5 · Handoff 提示(必须输出,紧跟 Step 4 之后):
✅ 营销海报已完成([N] 张成品 PNG + 文字校验 [pass/accepted-with-flaw])
📊 链路面板已更新:spark-output/dashboard.html
📋 下一步建议:
1. 🎯 推荐:`/设计提案` — 把海报主视觉装进决策者汇报
2. 💡 备选:`/Web页面设计` — 把海报嵌入营销落地页
3. 💡 备选:`/设计复盘` — 营销活动结束后复盘效果
执行流程
Phase 1: 收集需求
用 AskUserQuestion 一次性确认(已知的跳过):
- 营销主题:一句话描述
- 目标尺寸:16:9 / 3:4 / 1:1 / 9:16
- 文案内容:标题(必填,建议 ≤ 8 字最佳)、副标题(可选)
- design-tokens 路径(可选)
数字混排风险告知(必做):如果用户提供的标题或副标题含数字(如"199元""5折""618"),必须在 Phase 1 主动告知:
"含数字的文案 AI 渲染出错率较高。建议:纯中文核心文案交给 AI 材质化渲染,数字利益点(如'满199减50')建议后期用设计工具叠加,确保准确无误。" 用户确认后再进入 Phase 2。如果用户坚持要 AI 渲染数字混排文案,则正常执行但在 Phase 4 校验时重点关注数字部分。
Phase 2: 确定材质风格
自动匹配规则(agent 根据主题判断,告知用户选了什么及原因):
| 材质 ID | 视觉效果 | 适用场景 |
|---|---|---|
| neon | 霓虹灯管发光,光晕溢出砖墙 | 夜店/酒吧/潮牌/夜经济 |
| ice | 透明冰雕,水珠+棱镜折射 | 冷饮/冰品/夏季促销 |
| wood-carve | 3D木刻立体,木纹+凿痕 | 咖啡馆/手作/茶室/自然品牌 |
| ink-wash | 水墨飞白毛笔+金墨飞溅 | 中秋/春节/茶/文化品牌 |
| glass-morph | 磨砂玻璃透光+彩虹折射 | SaaS/AI/科技发布 |
| floral | 真花填充字形,花瓣溢出笔画 | 美妆/春季/母亲节/婚庆 |
| gold-foil | 3D金属立体,金箔反光 | 周年庆/高端/奢侈/地产 |
| brush-gold | 毛笔书法+金色飞白 | 传统节庆/白酒/国潮 |
如主题模糊或有多个可能匹配,用 AskUserQuestion 让用户从 2-3 个候选材质中选。
Phase 3: 生成海报(2-3 张变体)
Prompt 结构(LOCKED):
[场景类型] promotional poster,
large Chinese text "[标题全文]" [材质 prompt 关键词],
[副标题处理:below it "[副标题]" in [对比风格描述]],
[场景/产品/背景描述],
[光影/氛围/色调],
[整体风格修饰词],
[构图指令]
材质 Prompt 关键词(LOCKED,从此处原文复制):
- neon:
as glowing neon sign lettering in [color] neon tubes mounted on dark brick wall, realistic neon tube glow effect with light bleeding onto the wall - ice:
rendered as realistic translucent ice sculpture lettering with frost crystals and water droplets on the surface, prismatic light refractions - wood-carve:
as hand-carved wooden letterpress type with visible wood grain texture and chisel marks, warm honey-colored wood material - ink-wash:
in flowing watercolor ink wash calligraphy with splashes of gold and crimson pigment bleeding at the edges, rice paper texture background - glass-morph:
in frosted glass morphism lettering with translucent blurred background showing through, subtle rainbow light refraction at edges, soft white glow outline and depth shadow - floral:
composed of and filled with real flowers - roses, peonies, cherry blossoms growing in the shape of each character, botanical typography with leaves and petals forming the strokes - gold-foil:
in luxurious gold foil 3D lettering with metallic reflection, embossed with depth, catches warm ambient light - brush-gold:
in bold brush calligraphy style with dynamic brush strokes, gold and black ink with gold splashes and ink splatters
副标题对比风格建议(自动选取与主标题材质形成对比):
- neon 主标题 → 副标题用
smaller cool [对比色] neon - ice →
smaller frosted glass text - wood-carve →
smaller burnt wood pyrography style - ink-wash →
elegant thin brush strokes - glass-morph →
thin transparent acrylic text - floral →
delicate gold thin serif - gold-foil →
refined thin white serif - brush-gold →
smaller elegant regular weight text
ImageGen 尺寸映射(LOCKED):
- 16:9 →
1792x1024 - 3:4 →
1024x1536 - 1:1 →
1024x1024 - 9:16 →
1024x1792
3.1 并行生成 2-3 张变体(同材质,变场景/构图/光影方向)。
3.2 用 present_files 展示给用户,用 AskUserQuestion 让用户选择(或要求全部重来/换材质)。
Phase 4: 文字校验(二次校验,必须执行)
用户选定后,agent 必须逐字核对标题和副标题:
- 读取选定图片(用 Read tool 查看)
- 将图中文字与用户原始文案逐字比对
- 判定结果:
- 全部正确 → 进入 Phase 5
- 有错字/缺字/多字/笔画异常 → 用相同 prompt 重新生成(重试),最多重试 2 次
- 重试 2 次仍有误 → 告知用户具体哪个字有问题,提供选项:(a) 接受瑕疵 (b) 换一个材质重试 (c) 缩短标题重试
常见错误类型(校验重点):
- 多一笔/少一笔(如"品"变三个口但位置歪)
- 整字替换(如"萃"变"翠")
- 镜像/旋转(笔画方向不对)
- 模糊不可辨(材质遮挡了笔画)
Phase 5: 交付
present_files 交付选定的完成品 PNG。
Pitfalls
- 标题 ≤ 8 字 效果最好;> 10 字出错率显著上升,应建议用户缩短
- 数字混排(如"5折""199元")比纯中文出错率高——校验时重点关注
- 每种材质有"最佳搭配场景"(如 ice+冷饮, neon+暗夜),不要跨调性硬配
- 副标题字数建议 ≤ 12 字,太长会被模型忽略或变形
- AI 文字有随机性——同一 prompt 每次生成结果不同,通常重试即可修正错字
- 如用户需要多尺寸输出,每个尺寸需独立生成(AI直出无法复用)
- neon 材质在横图(16:9)下效果最佳,竖图(9:16)容易构图失衡
- 构图指令中加
subject positioned in [位置]可引导文字/场景分布
材质-场景自动匹配速查
| 主题关键词 | 推荐材质 |
|---|---|
| 夏日/冰/凉/冷饮 | ice |
| 咖啡/手作/木/茶 | wood-carve |
| 中秋/春节/国风/茶 | ink-wash 或 brush-gold |
| 科技/AI/发布/SaaS | glass-morph |
| 花/春/美妆/母亲节 | floral |
| 周年/庆典/高端/奢品 | gold-foil |
| 夜/酒/潮/电音 | neon |
| 白酒/国潮/书法 | brush-gold |