# MAOMOMO 配图与视觉资产规则 需要生成、准备、插入或更新配图时,先读本文件。 ## 配图交付原则 - 完整文章默认配独立 PNG:短文章 4-6 张,普通攻略 6-8 张,长教程 / 多活动整理 8-12 张。 - 不为凑数量硬加图;每张图必须服务正文。 - 每张图独立生成或准备,不要用一张拼图、长图或总图代替全部。 - 出图前先把全部图片 prompt 写入 `prompts/` 或 manifest 文件;不要在聊天里输出超长 prompt 代替文件。 - 先只生成一张样张,优先封面图;用户确认样张前不得生成剩余图片。 - 样张确认后,后续图片使用同一生图后端、同一视觉系统和同一质量配置。 - 图片生成按“一张图一个 job / 一次请求 / 一次 QA”推进;运行环境支持子 agent 时,可以一图一个子 agent 并发,但不要一次请求多张图。 - 最终原始图保存到 `origin_image/`,通过 QA 后同步到 Markdown 引用的 `assets/`。 - 生成图必须是“示意图 / 信息图 / 教程视觉”,不得伪造真实 App 截图、账单或官方页面。 - 用户提供真实截图时,优先用真实截图,并隐去姓名、账号、余额、地址、手机号、二维码、交易号等个人信息。 - 真实银行 / 券商 / 钱包截图、账单、交易记录、客服记录等默认视为敏感素材;需要上传图片 API 做编辑或重绘前,必须先向用户确认实际 API 地址 / baseURL、接口归属、是否为用户自有兼容服务以及是否允许外发。不要默认把配置里的图片 API 视为公共第三方,也不要在未确认具体接收方时上传真实截图。若用户未确认、确认不允许或安全策略 / 上下文不允许外发,即使用户要求“用 GPT Image2 美化截图”,也改用“GPT Image2 生成空白展示模板 + 本地嵌入真实截图”的流程。 - 空白模板流程:图片后端只生成不含真实截图、账单文字、交易数字和伪造 App UI 的展示框 / 卡片背景;随后用本地工具把真实截图完整嵌入预留区域。本地嵌入可以做裁切适配、圆角、阴影、边框和背景排版,但不得修改截图内部文字、金额、日期、账户、交易描述或任何证据内容。 - 使用空白模板流程时,`prompt` / manifest / `deck_spec.json` / 状态文件必须记录模板生成后端、真实截图本地嵌入方式、原截图路径和 QA 结论;最终回复说明真实截图未上传到图片接口。 - 每张图必须包含清晰可见的 `MAOMOMO` 标识。 - 每张图的可见文字必须受控:只允许出现该图指定的业务文案、`MAOMOMO` 和已核对允许出现的品牌 / 支付标识,不得添加副标题、风格标签、prompt 描述、说明文字、额外 slogan 或无关文字。 - 不要用 Playwright、HTML/CSS、SVG、Pillow、canvas、本地拼贴或手工覆盖文字替代图片生成后端。 ## 平铺水印 用户要求“水印”“平铺水印”“防盗图”“打水印”时,对最终配图生成水印副本。默认规格: - 水印文字:`MAOMOMO.COM` - 角度:45° - 颜色:自动对比色:浅底黑字 `#000000`,深底白字 `#FFFFFF` - 透明度:半透明,默认 alpha `70/255` - 排列:对角线平铺 - 工具:`uv run python scripts/maomomo_tile_watermark.py` - 密度:每张图至少可见 2 个完整 `MAOMOMO.COM`;默认 `font-size=50`、`spacing=28`。 执行示例: ```bash uv run python scripts/maomomo_tile_watermark.py \ --input assets \ --output watermarked_assets ``` 单张图: ```bash uv run python scripts/maomomo_tile_watermark.py \ --input assets/example.png \ --output watermarked_assets/example.png ``` 规则: - 水印只加到最终 QA 通过的 `assets/` 或交付副本;不要在样张确认前加水印,避免影响用户判断画面文字质量。 - 默认保留无水印原图在 `origin_image/` 和 / 或 `assets/`;水印图输出到 `watermarked_assets/`,或 GitHub 交付批次中的 `watermarked/`。 - 不要对官方截图证据原图、需要继续发给图片模型编辑的素材、尚未 QA 的图直接覆盖水印。 - `final_manifest.json` 应记录 `watermark` 字段,至少包含 `text`、`angle`、`color_rule`、`brightness_threshold`、`alpha`、`font_size`、`spacing`、`density_rule`、`output_dir` 和水印文件清单。 - 交付回复中说明是否提供水印版,以及无水印原图是否保留。 ## 可见文字与 prompt 边界 - 视觉风格只作为后台画面描述,不得成为画面文字。 - 生成用 prompt 不要写容易被模型照抄到画面里的中文风格标签,例如“暖橙金融教程风”“数据仪表盘风”“手绘便签风”“清爽编辑部风”。 - 把风格名改写成可观察的视觉描述:白底、暖橙强调、信息卡片、猫咪向导、清晰标题、留白充足、表格感、时间线、轻纸感等。 - prompt 必须写明:画面只允许出现指定业务文案、`MAOMOMO` 和 `allowed_brand_marks` 中已核对允许出现的品牌 / 支付标识;不要添加副标题、风格标签、prompt 描述、说明文字、额外 slogan 或无关文字。 - `style` 字段可保留内部风格 ID,例如 `warm-fintech-guide`,但完整 `prompt` 字段里不要把中文风格名当成可见文案写入。 推荐写法: ```text 明亮白底,暖橙强调色,干净信息卡片,友好的白橘猫作为向导,中文标题清楚,画面包含 MAOMOMO 标识。可见文字只允许出现:「先报名,再看门槛和封顶」和「MAOMOMO」。 ``` 不推荐写法: ```text MAOMOMO 暖橙金融教程风,画出一张手绘便签风仪表盘图。 ``` ## 金融卡面与支付网络核对 - 金融活动配图中只要出现信用卡、支付卡、卡组织、支付网络或银行卡样式,必须先根据官方材料、用户截图或用户提供的卡面参考图核对。 - 用户提供卡面或 Logo 参考图时,把原始素材保存到 `sources/`,例如 `sources/gba-unionpay-card-reference.png`;不要只留在聊天上下文里。 - 用户没有提供 Logo / 卡面素材,但画面需要银行、卡组织、支付机构、酒店、OTA 或活动品牌标识时,主动尽力查找准确标识,不要先默认画通用符号。 - 查找优先级:用户素材 > 官方活动页 / 条款 PDF / App 或官网截图 > 官方品牌资源页 / media kit / press kit > 官方社交账号或应用商店页面 > 可信百科或新闻配图。只有前几类无法获得时,才使用第三方汇总站,并必须交叉核对。 - 找到标识后,把原始文件、截图或网页证据保存到 `sources/`,并记录来源 URL、读取日期、用途和核对结论;不要只把来源写在聊天里。 - 在 `prompt`、manifest 和 `deck_spec.json` 中记录参考素材路径、卡组织 / 支付网络、允许出现的品牌 / 支付标识、来源 URL 和核对依据。 - 不得把银联 / UnionPay 卡画成 Mastercard、Visa、American Express 或其他卡组织;不确定时画“无卡组织标识的通用支付卡”。 - Mastercard、Visa、UnionPay、银行、支付宝、微信支付、酒店、OTA 等 Logo 或支付网络标识,只要已经由官方材料、用户素材或用户明确口径核对正确,就可以作为辅助识别出现。 - 已核对的第三方 Logo 必须尺寸克制、位置辅助,不得抢占、替代或压过 `MAOMOMO` 主标识;封面尤其要让 `MAOMOMO` 仍是最清楚的品牌锚点。 - 如果当前环境无法联网、官方素材无法读取或标识版本仍不确定,记录 blocker;除非用户确认,否则不要凭记忆画真实 Logo,改用通用卡片、通用 POS、通用酒店图标或文字描述。 - 如果官方活动限定某卡组织或指定卡面,图片 QA 必须把卡组织 / 支付网络列为必检项。 推荐记录字段: ```json { "reference_assets": ["sources/gba-unionpay-card-reference.png"], "brand_mark_sources": [ { "name": "UnionPay", "source_url": "https://example.com/official-unionpay-source", "source_type": "官方活动页 / 官方品牌资源页 / 用户素材", "checked_at": "YYYY-MM-DD" } ], "payment_network": "UnionPay / 银联", "allowed_brand_marks": ["UnionPay", "中信银行(国际) GBA 卡面识别"], "card_art_rule": "根据用户卡面参考图画银联 GBA 双币信用卡;不得出现 Mastercard 或 Visa 标识;UnionPay 标识只能小尺寸辅助出现,不能抢 MAOMOMO 主标识位置" } ``` ## 封面信息层级 - 封面只放最高优先级结论和少量核心数字,服务“读者一眼知道这篇讲什么、值不值得点开”。 - 不把复杂计算结论、全年理论上限、长公式、多重限制、详细规则或小字说明塞进封面。 - 计算过程、月度 / 年度理论上限、封顶拆解、资格分支和详细条款,应放到计算图、总览图或正文。 - 封面核心文案建议 1 句主标题 + 1-3 个短数字 / 短标签;如果超过手机端一眼可读的密度,拆到下一张图。 ## 金额与币种写法 - 发布稿、图片文案、prompt、manifest、`deck_spec.json`、alt text 和 `speech.md` 中,港币金额统一写 `HKD 1,000`。 - 不使用港币符号写法,例如 `HK$1,000`、`港币 1,000`、`1,000 港币`。 - 来源原文抽取文件、官方截图 OCR 或原文摘录可以保留来源写法;它们不作为发布内容检查对象。 - 如果来源使用港币符号,改写到发布内容时同步转换为 `HKD`。 ## 风格选择 如果用户没有指定视觉方向,生成图片前先读 `references/recommended-styles.md`,给 2-3 个可选风格,并推荐一个。确认后,整篇文章的配图保持同一套视觉身份:稳定的配色、猫咪造型、标题区、图标语言和信息密度;不同图片可以根据用途变化构图。 小红书卡片模式先确认两件事: - 比例:`3:4` 或 `9:16`。 - 视觉方向:`2D 扁平风` 或 `3D 轻拟物风`。用户没指定时,推荐 `2D 扁平风`,因为信息卡片更清爽、教程 / 规则说明更稳,也更不容易出现中文文字翻车;`3D 轻拟物风` 更适合封面、活动感和金融产品展示。 小红书卡片一旦确认 `2D` 或 `3D`,整组图片必须继承同一个 `visual_direction`,不得中途混用。 默认推荐逻辑: - 活动 / 返现 / 港卡攻略:优先 `warm-fintech-guide`。 - 规则、门槛、费用、返现计算和产品对比:优先 `data-card-dashboard`。 - SEO 长文、经验整理、品牌感更强的文章:优先 `clean-editorial`。 - 保姆式教程、避坑经验和轻量操作步骤:优先 `handdrawn-note`。 - 小红书 / 4 图看完 / 多图卡片:必须用 `xiaohongshu-vertical`,并按用户确认生成 3:4 或 9:16 竖图。 可选风格: | 风格名 | 适合场景 | 视觉方向 | |---|---|---| | `warm-fintech-guide` | 默认 MAOMOMO 金融攻略、港卡、银行活动 | 白底、暖橙强调色、干净卡片、白橘猫向导 | | `clean-professional` | 正式规则整理、开户 / 保号教程 | 浅色背景、蓝绿和暖橙强调、可信结构化卡片 | | `clean-editorial` | SEO 长文、解释型文章、站内封面 | 大标题、留白、轻杂志感、猫咪作为角落品牌元素 | | `creative-magazine` | 传播型封面、活动盘点 | 大标题、编辑部排版、强留白、原创金融视觉 | | `data-card-dashboard` | 返现计算、活动对比、费用路径、时间线 | 指标卡、表格感、仪表盘、清晰数字层级 | | `handdrawn-note` | 避坑、步骤教程、保号经验 | 手绘箭头、便签、圈注、猫咪提示牌 | | `retro-flat-illustration` | 轻松羊毛攻略、用卡姿势 | 低饱和复古扁平插画、金融小物件 | | `e-ink-editorial` | 深度解释、观点长文 | 纸感、黑白灰、少量强调色、元信息条 | | `scientific-defense` | 条款核对、规则证据链 | 严谨浅色版式、来源卡片、条件树 | | `mckinsey-brief` | 多方案对比、路径选择 | 结论先行、矩阵、取舍图、商业简报感 | | `xiaohongshu-vertical` | 小红书发布版、4 图看完、多图卡片 | 3:4 或 9:16 竖版、大字少字、强钩子、系列化版式 | 示例确认话术: ```text 我建议用 A,因为这篇是活动攻略,读者最需要快速看懂门槛、封顶和翻车点。 A. warm-fintech-guide(推荐):白底暖橙、猫咪向导、金融教程感,适合 MAOMOMO 常规文章。 B. data-card-dashboard:更强调数字卡片和计算表,适合门槛 / 返现 / 费用信息密集的文章。 C. handdrawn-note:便签和手绘箭头更明显,适合避坑经验和保姆式步骤。 你选哪个?也可以指定颜色、猫咪比例或是否更像小红书图。 ``` ## 常见配图类型 | 类型 | 用途 | |---|---| | 封面图 | 文章主题、核心利益点 / 核心问题、猫咪识别和产品场景 | | 总览图 | 活动、产品、规则或教程的核心信息总览 | | 流程图 | 开户、注册、转账、入金、申请、报名、设置路径 | | 表格图 / 对比图 | 多产品、多方案、多活动、支持 / 不支持渠道对比 | | 计算图 | 返现、收益、费用、年化、门槛和封顶测算 | | 时间线图 | 活动日期、到账时间、任务周期、持有期、截止日 | | 避坑图 | 常见翻车点、不能补救的点、费用 / 规则 / 时效风险 | | FAQ 图 | 3-5 个高频问题和简短答案 | ## 图片清单格式 生成图片前先规划清单,并同步写入 `prompts/{article_slug}_XX.json` 或图片 manifest。每个 prompt 文件至少包含:文件名、类型、放置位置、核心文案、可见文字白名单、alt text、风格、依赖素材、输出路径和完整 prompt。小红书卡片还必须包含 `aspect_ratio`、`visual_direction`、`portrait_composition_rules` 和分批交付批次。涉及信用卡、支付卡、支付网络或机构 Logo 时,还要包含参考素材、卡组织 / 支付网络、`allowed_brand_marks`、`brand_mark_sources` 和核对依据。 ```markdown | 文件名 | 类型 | 放置位置 | 核心文案 | alt text | 风格 | 依赖素材 | |---|---|---|---|---|---|---| | hong-kong-bank-account-01-cover.png | 封面 | 标题下方 | 港卡保号关键点 | MAOMOMO 港卡保号教程封面图 | warm-fintech-guide | 无 | | hong-kong-bank-account-02-flow.png | 流程图 | 操作步骤前 | 三步完成账户活跃 | 港卡保号操作流程图 | handdrawn-note | 用户截图 1 | ``` 确认用户不需要先看清单时,可以不在聊天里展开清单,但仍必须写入 prompt 文件,并遵守“先样张、后逐张生成”的门禁。最终必须让文件名、alt text 和插图位置与正文一致。 推荐单图 prompt JSON: ```json { "id": "hsbc-mastercard-alipay-campaign_01", "file_name": "hsbc-mastercard-alipay-campaign-01-cover.png", "origin_out": "origin_image/hsbc-mastercard-alipay-campaign-01-cover.png", "asset_out": "assets/hsbc-mastercard-alipay-campaign-01-cover.png", "type": "封面图", "placement": "标题下方", "core_text": "先报名,再看门槛和封顶", "visible_text_allowed": ["先报名,再看门槛和封顶", "MAOMOMO"], "alt_text": "MAOMOMO 汇丰 Mastercard 支付宝返现活动封面图", "style": "warm-fintech-guide", "aspect_ratio": "16:9", "visual_direction": "2D 扁平风", "delivery_batch": "batch-01-cover", "portrait_composition_rules": [], "required_assets": [], "reference_assets": [], "brand_mark_sources": [], "payment_network": "", "allowed_brand_marks": [], "card_art_rule": "如无官方或用户参考素材确认,画无卡组织标识的通用支付卡;已核对的品牌 / 支付标识只能辅助出现,不能抢 MAOMOMO 主标识位置", "forbidden_visible_text": ["风格标签", "prompt 描述", "额外 slogan", "无关说明文字"], "prompt": "完整图片生成 prompt,包含视觉描述、指定业务文案、可见文字限制和禁止项" } ``` 小红书卡片 prompt JSON 中,`portrait_composition_rules` 必须包含: ```json [ "native portrait composition", "no squeezed elements", "no stretched card / logo / text", "vertical layout redesigned for Xiaohongshu" ] ``` ## 文件命名 图片文件名必须 SEO 友好,并包含主题前缀: ```text origin_image/ hsbc-mastercard-alipay-campaign-01-cover.png hsbc-mastercard-alipay-campaign-02-overview.png assets/ hsbc-mastercard-alipay-campaign-01-cover.png hsbc-mastercard-alipay-campaign-02-overview.png hsbc-mastercard-alipay-campaign-03-step-guide.png hsbc-mastercard-alipay-campaign-04-comparison.png hsbc-mastercard-alipay-campaign-05-calculation.png hsbc-mastercard-alipay-campaign-06-timeline.png hsbc-mastercard-alipay-campaign-07-common-pitfalls.png hsbc-mastercard-alipay-campaign-08-faq.png ``` 规则: - 使用英文小写、数字和连字符。 - 不使用中文文件名。 - 不使用 `01-cover.png`、`02-overview.png` 这类缺少主题前缀的通用文件名。 - 后续改稿删除某个活动分支时,相关文件名、alt text、正文引用和 ZIP 中旧图都要同步清理。 ## Markdown 插图 统一使用相对路径: ```markdown ![图片说明](assets/文件名.png) ``` 插图位置: - 封面图放在标题下方。 - 总览图放在活动 / 产品介绍之后。 - 流程图放在步骤段落前后。 - 计算图放在公式或测算表格后。 - 时间线图放在日期说明后。 - 避坑图放在翻车点段落后。 - FAQ 图放在常见问题段落前后。 图片说明必须根据图片内容写,不要都写成“配图”。 `origin_image/` 不直接写进 Markdown,除非用户明确要求引用原始图目录。发布用 Markdown 默认引用 `assets/`。 ## 猫咪视觉识别 基础方向: ```text 中文金融实操信息图,干净明亮白色背景,暖橙色点缀,友好的白橘猫吉祥物,圆脸、小爪子,现代 App 信息卡片质感,清晰中文标题和卡片信息层级,实用而非奢华,包含清晰的 MAOMOMO 主标识,已核对的第三方品牌 / 支付标识只做辅助识别,不伪造真实截图。可见文字只允许出现指定业务文案、MAOMOMO 和已核对允许出现的品牌 / 支付标识。 ``` 猫咪可以: - 指向关键数字。 - 拿着通用卡片。 - 坐在手机、账本、路线图或计算器旁。 - 举“实测”“注意”“先登记”提示牌。 猫咪不能: - 穿戴第三方银行、卡组织、券商、支付机构 Logo;如果猫咪拿着带标识的卡片或支付牌,标识必须已核对、尺寸小、位置辅助,不能盖住或替代 MAOMOMO。 - 盖住关键数字、日期、步骤和风险提示。 - 变成幼稚主角,压过金融教程信息。 ## 主题追加元素 - 信用卡 / 返现:通用信用卡、小票、购物篮、返现计算器、通用支付符号;只有在官方材料或用户素材确认后,才画具体卡组织 / 支付网络 / 支付机构 Logo,且只能作为辅助识别。 - 银行账户 / 保号:账户余额仪表、保险库、日历、警示标、活跃度卡片。 - 转账 / 入金:路线箭头、HKD / EUR / USD 标签、手机转账示意界面、勾选标记。 - 券商活动:股票礼品卡、K 线图、欢迎信封、香港天际线线稿。 - 数字货币:硬件钱包、钱包 App、欧元通道、区块链节点路线;画面克制,避免暴富感。 ## 小红书图 用户说“小红书”“卡片”“多图”“4 图看完”“发小红书”“3:4”“9:16”时: - 进入小红书卡片模式,不默认生成完整文章、Markdown 或 ZIP。 - 生成多张 3:4 或 9:16 竖版 PNG,默认 4 张;不复用文章横版图。 - 出图前先确认 `2D 扁平风` / `3D 轻拟物风`;默认推荐 `2D 扁平风`。 - 每张图有 MAOMOMO 标识或猫咪水印。 - 手机端可读,大字少字。 - 默认结构:封面、核心拆解、操作流程、避坑总结。 - 风格固定为 `xiaohongshu-vertical`,同组保持同一 `visual_direction`,不直接复用横版文章图。 - prompt 必须包含 `native portrait composition`、`no squeezed elements`、`no stretched card / logo / text`、`vertical layout redesigned for Xiaohongshu`。 - 通过 QA 后写入 `final_manifest.json`;最终交付只读取 final manifest 或状态文件中的 final assets。 ## 图片 QA 每张图通过前检查: - 样张已被用户确认,后续图片没有切换生图后端或视觉风格。 - 文件真实存在,格式为 PNG。 - 小红书卡片比例为已确认的 `3:4` 或 `9:16`,不是横版图压缩或拉伸后的结果。 - 小红书卡片是原生竖版重构,元素没有压扁,卡片、Logo 和文字没有拉伸。 - `origin_image/` 原始最终图和 `assets/` 发布图对应。 - Markdown 路径能打开对应文件。 - 图片文字清楚,无乱码、错字、截断和多余文案。 - 可见文字只包含指定业务文案、`MAOMOMO` 和已核对允许出现的品牌 / 支付标识,没有副标题、风格说明文字、prompt 描述、额外 slogan 或无关说明。 - 标题、金额、币种、日期、公式、规则与最终文章口径一致;港币金额发布写法统一为 `HKD`。 - 卡组织 / 支付网络 / 机构 Logo 与官方材料或用户参考素材一致;银联 / UnionPay 不得被画成 Mastercard、Visa 或其他卡组织。 - 用户未提供 Logo / 卡面素材时,已尽力查找官方或可信来源;`sources/`、prompt、manifest 和 `deck_spec.json` 已记录标识素材、来源 URL、读取日期和核对结论。 - 第三方 Logo 没有抢占、替代或压过 MAOMOMO 主标识位置;MAOMOMO 仍然是画面主品牌识别。 - 没有出现用户已删除、已排除或禁止使用的活动分支、旧版规则、旧金额或旧标题。 - 没有真实个人信息。 - 没有伪造官方 App 页面,也没有错误、未经核对或喧宾夺主的品牌 Logo 场景。 - 没有把示意图伪装成真实截图、账单、订单、App 页面或官方页面。 - 每张图独立主题明确,不是同一画面的机械变体。 - 单张 QA 通过后,才用 `scripts/maomomo_job_state.py result` 记录结果并同步到 `assets/`;不得只生成到 `origin_image/` 后声称完成。 - 单张 QA 通过后,状态文件必须显示 `qa_status=passed`、`entered_assets=true`;GitHub 推送后必须记录 `github_pushed=true` 或对应 batch 记录。 - 最终交付前必须生成 `final_manifest.json`,且只包含通过 QA 并进入 `assets/` 的最终文件。 - `article.md` 已插入对应章节,且用脚本检查 Markdown 中所有图片路径真实存在。 - `slide_jobs.json` / `slide_run_state.json` 中没有未处理的 `pending`、`dispatched` 或 `blocked` job;如有,不能声称完整交付完成。 路径检查命令: ```bash uv run python scripts/maomomo_check_markdown_assets.py article/article.md ```