学页多语言活动海报生成器
功能概述
教培小机构没有设计师、没有预算、没有时间,但旺季每周要 3-5 张招生海报;对接海外资源(外教/合作方/留学生市场)时还需要英文、阿拉伯语、越南语版本——现有工具要么不支持多语言,要么文字乱码。本技能把「设计 + 翻译 + 排版 + 合规」四件事压进一次对话:说一句话,生成合规、带品牌、可直接发朋友圈/WhatsApp/Instagram 的多语言招生海报。
核心纪律:AI 只负责文案(结构化 JSON),像素层全部交给 HTML/CSS 确定性渲染——海报上的机构名、时间、电话、价格数字一个都不能错,因此绝不用文生图直接产出带文字的海报,文字准确率 100%。
使用前提
- 运行环境:Python 3.8+(技能自带全部脚本,无需 pip 安装任何依赖)
- 出图引擎(自动检测,满足其一即可):
- 已安装 Chrome 或 Edge 浏览器(推荐,开箱即用)
- 或已安装 playwright(
pip install playwright && playwright install chromium,出 2x 高清图) - 两者都没有时自动降级交付 HTML 文件(附浏览器截图指引),功能不受阻
- 无需 API Key、无需任何连接器、零外部网络依赖(模板字体全部使用系统字体栈)
- 品牌资产(可选):机构 logo / 报名二维码的本地图片路径;没有也能出图(自动占位)
快速开始
3 步完成首次使用:
- 说需求:「帮英语启蒙班做一张春季招生海报,中英文各一张」
- 补信息:技能一次性追问缺失项(开班时间/优惠/名额),回答如「3月1日开班,前20名减200,限2个班」——机构名电话等会邀请你顺手建档,拒绝也不阻塞
- 收海报:约 1 分钟拿到 PNG(2 语言 × 2 尺寸共 4 张),直接可发朋友圈;后续说「加阿语版」「换模板」继续迭代
使用手册
核心功能与操作示例
功能 1:生成多语言招生海报
- 触发方式:用户输入「生成海报 / 做张招生海报 / 出宣传图」等
- 操作示例:
> 用户:帮美术班做张暑假招生海报,中文和英文各一张
>
> 技能:收到:美术 × 暑假班 × zh+en。还差 3 个信息一次补齐:① 开班时间 ② 优惠活动 ③ 名额限额。
>
> 用户:7月8日开课,双人同报各减100,每班限8人
>
> 技能:✅ 已生成 4 张(zh×3:4、zh×1:1、en×3:4、en×1:1),模板「活力橙·卡通风」。可以说:换模板 / 标题改成… / 加阿语版 / 按这张再来一张。 - 注意事项:语言可选 zh/en/ar/vi 任意组合;尺寸默认 3:4+1:1 两种都要
功能 2:新增语言版本(含阿拉伯语 RTL)
- 触发方式:「出英文版 / 加阿语版 / 也要越南语版」
- 操作示例:
> 用户:加个阿拉伯语版,我们要发给迪拜合作方
>
> 技能:好的,阿语版生成中(自动 RTL 镜像 + 阿语字体 + 行高适配)……✅ 新增 ar×3:4、ar×1:1 两张。机构名与联系方式取自品牌档案,CTA 已本地化为 WhatsApp 预约。 - 注意事项:阿语版自动完成布局镜像/右对齐/专用字体栈/数字保留西文,无需用户懂 RTL 规则;en/ar/vi 版是本地化改写而非直译(如「扫码」自动改 WhatsApp)
功能 3:合规扫描(广告法红线拦截)
- 触发方式:用户文案中出现违规表述,或主动说「检查合规 / 这文案有风险吗」
- 操作示例:
> 用户:标题写「保提分!名师押题命中率90%」
>
> 技能:⛔ 已拦截,未出图。命中《广告法》三条红线:
> - 「保提分」→ §24(一) 效果保证性承诺 → 建议:「分层测评 · 按月学习报告」
> - 「名师押题」→ §24(二) 明示暗示考试机构参与 → 建议:「教研团队自主研发课程体系」
> - 「命中率90%」→ 数据真实性 → 需提供证明材料
> 回复「按建议改」或自己换词,我重新扫描后出图。 - 注意事项:红线拦截不可跳过(产品底线);百分比数据等 warn 级会提示核实但不阻断
功能 4:品牌档案(一次配置全局复用)
- 触发方式:「设置品牌 / 我们机构叫XX / 电话改了」
- 操作示例:
> 用户:设置品牌:星苗英语,电话 13800000000,主色橙色,素质类
>
> 技能:✅ 品牌档案已保存(存于本机 .workbuddy/xueye-poster/brand.json,跨会话有效)。之后所有海报自动带上机构名、电话与品牌色,logo 可随时补充路径。 - 注意事项:档案标记「学科类」时,每次生成前会提示「双减」政策对学科类校外培训广告投放的限制,请确认用途合规
功能 5:换模板 / 改文案(局部迭代)
- 触发方式:「换模板 / 太花哨了换简约的 / 标题改成… / 更活泼一点」
- 操作示例:
> 用户:换简约一点的模板
>
> 技能:已切换「清新薄荷·简约风」重新出图 ✅(仅重跑渲染,文案与品牌不动,秒级完成) - 注意事项:6 套模板可选(活力橙卡通/清新薄荷简约/中国红节日/科技蓝商务/自然绿教育/黑金高端);修改不重问已确认的信息
功能 6:历史复用
- 触发方式:「上次暑假班那张 / 按那张再出一张,主题换新年」
- 操作示例:
> 用户:按上次暑假班那张,换个寒假主题
>
> 技能:找到归档 posters/07-08-art-summer/。已复用其品牌与卖点结构,节点换为寒假班,时间优惠请补充或沿用:① 沿用原优惠 ② 重新说。 - 注意事项:每次生成自动归档(PNG + 文案 JSON + 合规记录),复用时不重问已有信息
数据说明
技能在本机产生两类文件(均在用户工作区内,可随时查看/删除):
| 文件 | 位置 | 内容 |
|---|---|---|
| 品牌档案 | .workbuddy/xueye-poster/brand.json |
机构名(四语)/电话/WhatsApp/地址/logo与二维码路径/主色/品类标签(quality素质类 | subject学科类) |
| 海报归档 | posters/<日期>-<主题>/ |
PNG 成品 + HTML 源(可改字重新截图)+ cb-*.json 文案画布 + compliance-log/ 合规扫描留痕 |
品牌档案字段示例:org_name.zh="星苗英语"、org_name.en="StarSeed English"、org_name.ar="ستار سيد"、phone、whatsapp、primary_color(十六进制,覆盖模板默认色)、category。
常见问题
Q1:出图失败/没有 PNG 只有 HTML?
本机未检测到 Chrome/Edge 且未装 playwright。方案一:装 Chrome 或 Edge(最简单);方案二:pip install playwright && playwright install chromium;应急方案:浏览器打开 HTML → F12 → Ctrl+Shift+P → 输入 "screenshot full size" 手动截图。
Q2:安装后说「生成海报」没反应?
确认技能已安装在本机(~/.workbuddy/skills/xueye-poster-generator/),新开会话再试;描述里带「海报」二字可提高路由命中率。
Q3:为什么我的文案被拦下了?
命中广告法 §24 三红线(效果保证/考试机构暗示/名师状元背书)或 §9 绝对化用语。技能会给出命中词、法规依据和改写建议,替换后重扫即可。这是保护机构免受市场监管处罚的刚需能力,不可跳过。
Q4:logo 上传后海报没显示?
检查品牌档案里 logo_path 是否为有效本地路径(图片文件需存在)。路径无效时技能会用占位图标出图,不阻塞交付。
Q5:阿语版看起来是「反的」?
这是正确的。阿拉伯语从右向左书写,海报自动做了布局镜像 + 右对齐 + 专用字体,这才是符合中东用户阅读习惯的排版。
Q6:能打印吗(300dpi)?
V1 面向社交分享图(1080×1440 / 1080×1080,2x 导出)。印刷级出血位输出在后续版本规划中。
Q7:支持哪些品类?
英语启蒙/少儿美术/舞蹈形体/机器人编程/学业素养/成人职场技能/托福雅思/书法围棋等 8 大品类话术库 + 任意自定义品类(用户提供卖点即可)。
技能指令(开发者参考)
工作流总纲
意图识别 → 槽位收集(缺槽必问·一次问全) → 品牌档案检查
→ ① 文案生成(四语 copy_blocks, 遵守话术库纪律)
→ ② 合规扫描(compliance_scanner.py, blocked 则停止并给改写建议)
→ ③ 渲染出图(render_poster.py, HTML→PNG)
→ ④ 交付预览(present_files) + 归档
修改循环:「换模板」只重跑③;「改标题/文案」重跑①③;「加语言版本」只跑新语言全链路;「上次那张」读取归档复用槽位。
槽位收集(禁止连环追问)
| 槽位 | 缺省策略 |
|---|---|
| category 品类 | 必问 |
| occasion 节点 | 默认「日常插班」 |
| time 时间 | 必问 |
| offer 优惠 | 默认「免费试听」 |
| quota 名额 | 默认「小班教学」 |
| languages 语言 | 默认 zh |
| sizes 尺寸 | 默认 3:4+1:1 |
品牌档案已有的槽位(机构名/电话/地址/logo/主色)不再问;首次未建档时邀请配置,拒绝则占位继续,不阻塞。
脚本调用
# 品牌档案:查看/写入(org.* 是 org_name.* 的别名)
python scripts/init_brand.py --show
python scripts/init_brand.py --set org.zh=星苗英语 --set phone=13800000000 --set category=quality
# 合规扫描(四语,130+ 规则):exit 0=通过(含warn) / 2=blocked 停止渲染
python scripts/compliance_scanner.py --copy-blocks cb-<slug>.json --json compliance-log/<ts>.json
# 渲染出图(每语言×每尺寸各一次;ar 自动 RTL;引擎自动降级)
python scripts/render_poster.py --copy-blocks cb-<slug>.json \
--brand <brand.json路径> --template playful-orange \
--lang ar --size 3:4 --out posters/<date>-<slug>/
文案生成纪律(详细素材见 references/)
- 每语言一套 copy_blocks:headline(zh≤12字/en≤8词/ar≤10词/vi≤10词)+ selling_points×3 + cta + info_lines;
- 用户提供的卖点放首位;词典条目(references/copywriting-library.md)仅作补充与四语对照;
- 数字纪律:电话/价格/日期保留西文数字不译;不编造通过率/人数等数据;
- CTA 本地化:zh=扫码预约;en/ar/vi=Book a free trial + WhatsApp;
- 生成后必须过合规扫描才渲染;blocked 时展示命中词+依据+建议,不接受跳过。
模板与合规依据
- 模板选择/版式/RTL 强制规则/字体白名单:
references/template-guide.md - 广告法红线依据与安全替代表达:
references/compliance-guide.md - 6 套模板主题配置:
assets/templates/<id>/theme.json
边界(V1 不做,主动告知用户)
印刷级 300dpi 出血位;9:16 竖版;活动名额管理;分发追踪;多校区档案切换。用户提出时说明并建议关注后续版本。