Story Ad Weaver — 内嵌式推广文案织造
概述
将推广信息(产品、品牌、服务、活动)织入一个完整、独立成立的故事中:读者读到的是"一个好看的故事",推广点作为情节道具、场景背景或对话内容自然出现,不破坏叙事沉浸感。最终交付一份单文件 HTML——精美主题化排版、配图以 base64 内嵌、零外部依赖,可直接分享/发布。
输入收集(缺失项用默认值,仅在关键信息不明时追问)
| 参数 | 说明 | 默认值 |
|---|---|---|
| 推广主题 | 产品/品牌/服务及核心卖点 | 必填,缺失则追问 |
| 推广重点 | 最想让读者记住的 1-3 个点 | 主题中最突出的卖点 |
| 故事类型 | 生活场景/职场/情感/旅行/亲子/美食探店/怀旧… | 生活场景 |
| 目标读者 | 年龄层、消费习惯、阅读平台 | 依据推广主题推断 |
| 篇幅 | 正文字数 | 800–1200 字 |
| 配图数量 | 生成图片数 | 2–3 张 |
| 植入强度 | 隐性(仅出现)→ 显性(含使用感受) | 中等 |
工作流程
第 1 步:叙事设计
先读 references/implant-techniques.md,完成四件事:
- 选故事内核:设计一个与产品无强行关联、自身就能成立的完整故事(有人物、动机、转折、结局)。产品是故事的"道具",不是"主角"——除非用户明确要求品牌主角型。
- 定植入手法组合:至少使用两种手法(情节植入 + 对话植入 / 道具植入 + 场景植入等),将推广重点拆分到故事的不同位置,避免信息集中在一段。
- 设计情绪曲线:开头 100 字内建立代入感,中段展开冲突/转折,结尾落在情绪与回味上;推广重点的"最强触点"放在情绪高点之后(读者对情节的信任转移到产品上)。
- 划场景转换点:列出故事的全部场景切换处(时间/地点/人物变化),并为每一处预先指定过渡方式(时间标志句、人物动作摆渡句、感官呼应等,手法见
references/prose-quality.md)——禁止动笔后临时硬切。
第 1.5 步:事实核查(动笔前,硬性流程,用户定稿规则)
推广对象涉及现实世界的客观事实时,必须先用 WebSearch/WebFetch 核实,禁止凭印象编写。
- 列事实断言清单:从叙事设计中提取所有会写进正文的事实性信息——开业/成立/运营时间、地点、规模数字、历史沿革、价格、人物/机构名称、荣誉奖项等。
- 逐条检索核实:每条断言都要有来源(官方渠道、权威媒体、近期报道);核实时间断言时以当下时间为参考线(如"新开""十年前"这类表述必须与当前日期对得上)。
- 无来源的模糊化:核实不到的细节一律降级为不涉事实的模糊表述("新开的"→直接不提时间属性),宁可少写一个具体细节,不写一个可能错的细节。
- 正文写完后二次核对:对照清单逐句扫描成稿,确认每一处事实性断言与核实结果一致;数字与时间表述逐个重读。
第 2 步:撰写故事正文
写作硬规则(违反任何一条都会让读者"闻到广告味"):
- 产品最晚在第 2/3 处才自然登场,首次出现时它只是场景中一件平常的东西("顺手拿的""朋友带来的""抽屉里翻出来的")。
- 卖点拆碎:每个卖点只借一个具体细节呈现(口感、一个数据、一次体验),绝不罗列参数、绝不出现"强烈推荐""性价比之王""匠心"等广告语。
- 必须写缺点或不完美:一处轻微的吐槽或限制("等得有点久""味道偏甜,换 Klein 少放糖"),真实感是软广的生命线。
- 对话承载推荐:关键推广点尽量由"人物之口"说出,而非叙述者直白夸赞。
- 对话独占一行(用户定稿规则):每轮对话单独成段——HTML 中每个"引语(+说话人动作)"必须独占一个
<p>,严禁把多轮对话连排挤在同一段里。中文叙事的排版惯例是"谁说了一句就另起一行",多句对话混排在一段会显得密集失真。叙述过渡句可留在对话段内句首/句尾,但两句引语不得同段。 - 品牌名出现次数 ≤ 5 次,其中至少 1 次出现在配角对话里。
- 结尾不做号召(CTA),停在故事余韵上;若用户明确要求,可用一行极轻的口吻带过(如文末小字)。
- 写完后自检:把产品名替换成竞品名,故事是否依然通顺?若通顺度过高说明植入太弱,若明显违和说明植入太硬——调整到"替换后会有一两处轻微违和"的程度。
语言质量硬规则(用户定稿要求:语句通顺、用词准确、无语法错误、段落连贯、场景转换不生硬;详细手法与病句类型见 references/prose-quality.md):
- 通读即校对:初稿完成后必须从头到尾通读一遍再定稿——读不顺口的地方就是病句,逐处修改。重点排查:成分残缺(缺主语/宾语)、搭配不当("增加质量"应为"提高质量")、句式杂糅、语序不当、错别字与同音字误用。
- 句子长度克制:单句以不超过 40 字为宜,超过 60 字的长句必须拆分或理顺;一句里只装一件事,禁止多层从句嵌套。
- 指代明确:人称代词(她/他/它)与指示代词(这/那)的所指必须无歧义;两个人物同场时,避免连续两句用"她"开头指代不同人。
- 段落衔接有钩子:相邻段落用承接手段衔接——尾首呼应(上段末尾的意象在下段开头接续)、同一人物动作顺延、或转折/递进词(可是、后来、直到)。禁止两段之间毫无关联地各自为政。
- 场景转换必须过渡:时间/地点/人物跳转处必须有一句"摆渡句"带过去(如"第二天早上八点""中午拐进颐和路一带""回到车上她才开口"),禁止从甲场景直接硬切到乙场景;配图位置即天然的场景转换点,figure 前一段的收尾要为画面铺垫。
- 节奏张弛:叙述段与对话段交替,连续 3 段以上的纯叙述中间应插入对话或短句调节;情绪高点前后用短句收紧,铺垫处用长句舒展。
第 3 步:生成配图
按叙事节点生成图片(如场景氛围图、产品在真实使用场景中的特写、情绪收尾图):
- 通过 ToolSearch 加载图片生成工具(ImageGen)。
- 每张图的提示词要求:统一画风(根据故事类型选:胶片感生活摄影/温暖水彩/清新插画等)、自然光、真实生活质感,画面中品牌元素占比小且融入环境,禁止大字报式产品海报构图。
- 画风必须跟随故事的时代与场景设定(用户实测反馈):都市现代题材用明亮通透的当代生活方式摄影(editorial 风、大窗城市天际线、现代家居),不要用泛黄胶片怀旧风——画面"土气"与故事设定违和会直接被否;怀旧胶片仅用于故事本身设定在旧时光的情形。
- 人物图优先背影、侧影、手部特写或虚化面部,降低 AI 人脸违和感。
- 同一角色跨图一致性(用户定稿规则,2026-10-10 修订):多张配图出现同一人物时,人物形象必须完全一致,装束服饰可按情节需要调整——脸换了读者会当成两个故事,衣服换了读者只会当成"换了天"。规则拆成"锁死项"与"可变项"两类:- 锁死项(跨图逐字复用,禁止换措辞):年龄、脸型五官特征、发型+发色、体型、肤色。动笔前写一份"角色形象卡"只含这五项,所有含该角色的提示词逐字复用同一段描述短语;多个角色各写各的卡。
- 可变项(按情节指定):服装、配饰、鞋履。在设定卡中为每张图预先列好"该图穿什么"(随场景/季节/情节变化,如居家→外出→雨具),生成该图时在提示词中单独写明当套装束。
- 图生图锁脸 + 显式换装:先生成第一张含该角色的图,之后含同一角色的图一律用图生图(
image1传第一张作参考图 + 新场景提示词)锁定长相。⚠️ 若该图服装与参考图不同,提示词必须显式写明换装(如"keep the same face and hairstyle, but change her outfit to ..."),否则模型会照搬参考图的衣服;换装后仍需逐张确认发型发色没被带偏。 - 人物年龄必须与故事设定相符(如"初中生妈妈"是 30 多岁的年轻母亲,禁止生成中老年面容),交付前逐张对照形象卡检查:形象五项全对 + 服装符合该图情节,缺一即重生成。
- 注意:并行生成多图时output_dir参数以最后一次调用为准(图片可能全部落在同一目录),生成后按文件名前缀识别内容并与叙事节点对应,手动重命名为 scene_01、scene_02… 再继续。
- 【硬性规定】成品图严禁携带任何水印,包括右下角"AI生成 WORKBUDDY>"水印。实测结论:
- ImageGen 的footnote:""参数无法禁用水印;
- 图生图编辑去除也无效(生成管线会把水印重新加上);
- 可靠方案是图像后处理:scripts/remove_watermark.py自动定位右下角水印并处理。
- 修补 vs 裁切的分级策略(用户定稿规则):默认先用纹理修补(不改变构图),适用于地面/墙面/桌面等纹理连续区域;当修补区域是皮肤、衣物、大面积渐变时,粘贴色块会明显可见——逐张目检右下角,发现修补痕迹就改用整体裁切兜底remove_watermark.py --crop-mode(检测水印包围盒后裁掉其以下全部区域,零痕迹,构图损失约底部 10-15% 可接受)。
- 无需单独调用:scripts/embed_images.py内嵌时默认自动去水印(检测 + 几何回退双保险)。已用 --crop-mode 裁切过(或确认无水印)的图片再内嵌必须加--no-dewm——否则 embed 的固定框回退会对干净图片二次修补、重新引入痕迹。仅在处理用户提供的、确认无水印的外部图片时也用--no-dewm关闭。
第 4 步:组装 HTML
- 读
references/style-themes.md,根据推广内容的特质选择主题配色与版式基调(美食→暖橙木色、科技→深蓝紫、母婴→柔粉奶油、茶饮→抹茶绿、文旅→青绿国风…),可微调。 - 复制
assets/template.html作为底稿,填入标题、故事正文(按段落分组)、配图占位符{{IMG:1}}、{{IMG:2}}…,并按所选主题改写 CSS 变量(--primary、--bg、--accent等)。
- 核对项(易错):<figure>数量必须等于配图数量,每个{{IMG:n}}编号连续不跳号;embed_images.py 对缺失编号会报错退出(exit 3),但"写漏 figure"不会报错,需组装时自查。 - 运行内嵌脚本将占位符替换为 base64 数据:
python "<技能目录>/scripts/embed_images.py" <html文件> --images-dir <图片目录>
脚本会把 {{IMG:n}} 替换为对应 images/ 目录中第 n 张图(按文件名自然排序)的 data:image/...;base64 URI,并顺带校验 HTML 无外部引用。
第 5 步:交付前自检
- [ ] HTML 单文件打开,无任何 http(s) 外链资源(字体/图/脚本),无 CDN 依赖
- [ ] 所有图片为 base64 内嵌且正常显示(检查 data URI 完整未截断)
- [ ] 所有图片无任何水印(含右下角"AI生成 WORKBUDDY>",逐张目检右下角确认;修补残留的色块/模糊块同样视为未通过,需改用
--crop-mode裁切兜底后重新内嵌) - [ ] 角色跨图一致性(用户定稿规则,2026-10-10):同一角色在所有配图中年龄/脸型/发型发色/体型/肤色完全一致;服装可不同但须与该图情节及正文描述对应(如正文写了雨具/外套,图中要有);图生图换装后发型发色未被参考图带偏;逐张对照形象卡检查
- [ ] 推广点在故事中出现 ≥ 2 处、手法 ≥ 2 种、无广告语堆砌
- [ ] 正文叙事流畅独立成立,广告痕迹自检通过
- [ ] 语言质量通读检查(用户定稿要求):从头到尾朗读式通读全文——无病句、无错别字、无搭配不当、无指代歧义;每个场景转换处有过渡句,相邻段落衔接自然不生硬;发现一处改一处后再复查一遍
- [ ] 事实断言逐条核对(用户定稿规则,2026-10-09):成稿中所有事实性断言(运营时间、地点、规模、历史、价格等)与第 1.5 步核实结果一致;以当下时间为参考线复查"新开/十年前"等时间表述;核实不到的细节必须已模糊化处理
- [ ] 响应式达标:内容区 max-width 820px、字号 clamp 缩放(按 assets/template.html 的响应式规范),在约 375px 与 1440px 两档宽度下目检正常
- [ ] 移动端阅读体验:图片自适应宽度
- 输出文件命名为
story-ad-<主题关键词>.html,完成后用 present_files 交付。
资源清单
references/implant-techniques.md— 植入手法库(情节/场景/对话/道具/感官植入)与反广告痕迹清单,第 1-2 步必读references/prose-quality.md— 语言质量细则:常见病句类型、段落衔接与场景过渡手法库、通读自检方法,第 1-2 步动笔前与第 5 步自检时必读references/style-themes.md— 按推广内容特质分类的主题配色与版式方案,第 4 步必读assets/template.html— 自包含 HTML 底稿(CSS 变量驱动主题、响应式、图片占位符)scripts/embed_images.py— 去水印(默认)+ 压缩 + 图片 base64 内嵌 + 外链自检脚本scripts/remove_watermark.py— 右下角"AI生成"水印去除(可独立使用;已被 embed_images.py 默认调用)