Banger广告
一则广告是:一个人、一个时钟、一个数字。产品是结尾处的一句低语。本技能包含一套方法,用于制作能让人产生感受并理解某事的广告;包含一位苛刻导演在两部真实制作中给出的修改意见;以及一条视频管线,能以任何视觉风格、以约10美元的成本渲染出完成品。这里不预设任何产品、角色或外观;这些由brief提供。两个完整的制作是已完成的示例:Face Down v5,一部叙事故事片(references/face-down-example.md),以及One Day,一部无声分割画幅片,逐镜头构建(references/one-day-example.md)。它们涵盖了本管线所能制作的两种格式。
两种格式
在信息采集时选择其一;它们的编写和构建方式不同。
- 故事片(Face Down)。一个人、一个时钟、一个数字、一位叙述者。下面的banger规则就是它的规则。时长60到80秒。
- 日间片(One Day)。无旁白。一个画幅,分为两半:左边是人物生活,右边是产品真实屏幕的工作;来自多个行业的数个人物,横跨一天;每条字幕包含三句话。它的规则:每人至少10秒(45秒内五人“对人类来说处理速度太快”);每个屏幕展示产品所做的一项真实工作,使用产品自身的token;字幕是陌生人能理解的完整句子;一个城市规模的开幕,然后切到第一个人;没有承载信息的镜头都要剪掉(空场景被剪掉:“它们的目的是什么?”);结尾是产品承诺,用三行文字显示在一个屏幕上,然后是品牌标识。结构来自Qwen 3.8发布片,映射在
references/reference-films.md中。
当导演提供参考片(“就跟这个一模一样”),先映射它(references/reference-films.md),复制骨架,但绝不复制人物或台词。
所有规则之上的规则
Banger规则产生情感。它们不产生理解。广告两者都需要。Face Down v4被导演称为“这也太炸了”,但却无法让陌生人说出角色的问题是什么、她为什么醒着、产品做什么、产品能为你做什么。所以冷读者(references/cold-reader.md)是两者之间的门:一个没有上下文的观众在导演看到脚本之前解释广告,在渲染之前再做一次。感觉对了但解释不出来的脚本,还没完成。
一位苛刻导演的判断标准
这些规则来自一位导演在两部影片中的修改意见,按此顺序。一个未能通过前三项的草稿,无论多干净,都显得“平淡”。示例来自Face Down;规则是通用的。
- 从困境内部开始。 第一行是一个时刻,带有一个时间。“凌晨两点十四分。那是Dana的手机。”描述人物的第一行不会吸引任何人。
- 人物说话。 旁白听起来像在厨房餐桌上说的话。数字是对话。
- 杀手级台词要保留到成片。 当剪辑太长时,删减填充内容或让影片更长时间。导演接受了80秒,而原定“大约45秒”。导演拒绝了一个为了达到时长而剪掉最佳台词的版本。
- 场景是观众曾经置身过的。 问:谁需要在第一个镜头中看到自己?一个在线商店胜过冲压工厂,因为每个人都遇到过结账失败。
- 产品被隐去,然后明确定义一次,比场景更大。 前三分之一不出现名字。然后一句话说明它对于整个业务的作用,如果brief中有就用它的原话,绝不要用一句话将其缩小到它所在的单一场景。
- 一个姿态承载整部影片。 手机屏幕朝下。拇指在玻璃上。这个姿态是高潮,并且需要静默。
- 结尾重新定义开头。 第一个画面再次出现,但已改变。
- 声音以品牌名称结束。 URL显示在屏幕上。没人说“dot com”。
- 全片没有专业术语。 使用一个会网购的退休教师第一次听就能理解的日常用语。参见
references/cold-reader.md中的术语列表。 - 观众从未听说过该产品。 在前十秒确立人物及其行为,在屏幕上展示问题,明确定义产品一次,说出每一步,最后以产品为观众做了什么来结尾。
- 使用平实英语结构。 如果一个短语放在报纸上会显得奇怪,那么它出现在广告里也是奇怪的。
- 每一句听到或看到的台词,都是导演的话或得到其明确同意。 沉默不被视为同意。未签署前不渲染任何内容。绝不发明报价、价格、试用期或时长。
- 一次一个镜头。 导演在下一个镜头之前批准每个镜头(“我希望逐个授权”)。将每个镜头作为独立合成,这样修改只需一分钟渲染,在组装之前单独展示。
- 屏幕上的每一行文字都是一个完整的句子。 标签、药丸列表和中间点连串会让冷读者失败(“作为冷读者,我无法与之产生共鸣”)。人物是谁、他们在做什么,每个都用完整句子。
- 产品提供帮助;它从不监视。 “监视你的业务”、“监视的AI”、“密切关注”读起来像监控,一位导演禁止使用它们,认为它们具有敌意。将AI写作帮助。取代它们的标语格式是:“帮助运营你的业务的AI。”品牌指南中保存了确切措辞。
- 导演逐边读取画幅。 半边的颗粒感、硬边遮罩、笔记本电脑模板、走错方向的人物:导演在第一次观看时就看到了它们。在发送之前裁剪边缘并比较区域;参见
references/production-runbook.md,“One Day中学到的教训”。
工作流
1. 信息采集,每次首先执行
导演可能从未制作过广告。引导他们完成references/intake.md:分六批共25个问题(我们在卖什么;谁在看、在哪里看;故事;声音;外观;资金、时间和签字)。每个问题都说明了其重要性、默认值和一个Face Down示例。一次问三到四个问题,在可能的地方使用AskUserQuestion工具,这样选择是可点击的,推荐的选项放在第一位,并跳过导演已回答的内容。将答案及每个假设写入projects/<film>/brief.md(基于assets/brief-template.md),展示它,并在概念确定之前获得确认。brief是合同;每个后续步骤都从中读取。
在编写任何内容之前,信息采集必须确定的事项:
- 产品和品牌。 导演口中的产品,品牌规则所在的位置(如果有品牌指南就用它;否则用其网站),可以宣称的内容,绝不能说的话。除非导演提供,否则不提供任何报价。
- 受众。 默认:一个从未听说过该产品、对品类只有模糊了解的陌生人。
- 平台和时长。 默认:一部电视和网络通用的影片,60到80秒;一个无声的网站首页循环是单独剪辑版本。
- 故事。 人物、场景、带有时间的痛点、产品的步骤、姿态、真实数字。
- 声音。 叙述者或角色;已命名的Gemini TTS语音;任何需要逐字使用的台词;声音以品牌名称结束。
- 视觉风格。 一个段落,将成为bible的
style_guide:照片级真实感、动画、插画、混合。管线不限定风格。 - 艺术指导。 素材之上的一切都由导演决定:通知、卡片、时间码、结尾处理、Logo开启或关闭、文字标记和描边、色彩语法。Face Down的决策(最后几帧上的叠加、没有猫、居中文本、仅URL下方一条酸绿色粉笔描边)是指导的示例,而非默认值。
- 资金和签字。 预算上限(默认$15),审批检查点(sheet、测试镜头、完整版本、渲染),每句听得见或看得见的文字的逐行签字,测试观众。
2. 概念
提供三到六个概念。每个概念是一种情感隐藏一个功能。格式:logline、四句话的影片描述、情感、隐藏的功能、为什么会被分享。推荐一个。references/concepts.md包含概念格式和任何概念必须通过的五个测试。
产生好概念的规则:仅限个人利害关系(睡眠、孩子、工作、被记住的名字);反派是时间;恐惧然后释然;手和脸;声音设计承载痛苦和愉悦。
3. 脚本
使用references/copy-rules.md中的故事片结构编写节拍及时间:困境内部的钩子、具体细节的困境、产品命名和定义的发现、带有数字和时间线的转变、姿态的静默、以名称结尾的结尾。每个数字都来自真实场景。用日常词汇描述机制,每一步按顺序。品牌在三分之一处出现在屏幕上,显示在角色阅读的卡片上。前五秒五个钩子,每种类型一个。通过禁止模式检查、填充词检查、术语检查。在脑中大声朗读。
以表格形式(节拍、时间、镜头、台词、屏幕文字)向导演展示脚本,并在其下方附上“so-what”链条。逐行请求签字批准。
4. 冷读测试
在旁白和屏幕文字上运行references/cold-reader.md两次,由两位观众进行。解释性反馈、四个问题、术语列表、信心度。未达标的脚本返回给作者。不可跳过。
5. 旁白
一条音轨,一个命名的语音,逐行生成并由scripts/narrate.py放置在对应cue点。控制节奏(“大约每分钟160个词,停顿小于三分之一秒”),限制停顿长度,以测量到的结束时间为cue链,如果同步需要,在一行长台词上使用5%的变速。每行按文本缓存,因此更改行只会重新生成该行。检查同步:制作镜头时间段与行时间段的对照表。
6. 制作
管线位于Video目录;references/production-runbook.md包含命令、成本及所有注意事项。流程:手动编写bible.json和shots.json(任意风格、任意角色),使用--assets-only生成角色表,然后按照runbook中“Omni 1.1 Flash”部分的一次性顺序:每个镜头的首/尾关键帧(作为联系表批准),每个镜头的360p草稿(逐镜头批准),然后以交付分辨率进行一次最终渲染,使用scripts/post_cut.py(修剪、调色、逐镜头边缘裁剪、最后一帧定格、语音混音),然后使用assets/hf-overlay-template.html的HyperFrames叠加层,使用品牌的字体和调色板。在任何付费运行之前打印shots.json。在剪辑前,将每个生成的镜头观看至最后一帧。
对于日间片,或者当导演希望逐个批准每个镜头时:每个镜头一个HyperFrames合成(assets/hf-clip-open-template.html、assets/hf-clip-vignette-template.html、assets/hf-clip-tail-template.html),单独渲染,使用PNG帧提取,并通过ffmpeg concat(assets/one-day-concat.txt)组装。素材:每个Omni镜头的最佳七秒以运动插值减慢到十秒, 使用lanczos烘焙裁剪,绝不在CSS中缩放。屏幕:使用产品自身的设计token和真实组件布局在HTML中构建,屏幕上显示Python而非SQL,绘制设备而非使用模板。命令和所有注意事项在references/production-runbook.md的“One Day中学到的教训”部分。
7. 与导演审核
发送sheet、测试片段、联系表,然后以小于7MB的预览编码发送渲染版本,并附上母版路径。当需要决策时,在同一消息中重述每个选项及其后果。当导演回答“好的”时,说明你选择了哪个选项。导演会快速打断并说明原因;接受修改,修复它,用一句话说明问题所在。在声称某个工具无法做到某事之前,在会话中阅读其文档。
电视播出审核
声明映射到已上线的代码或brief。角色是虚构的;不得明示或暗示任何客户。字幕、4:3字幕安全区、广播响度(-24 LKFS 美国,-23 LUFS 欧盟)。1080p播出:从720p母版上采样,或在MiniMax H3上以2K重新生成主镜头。
状态
根据Face Down制作起草并使其产品无关,然后在第二部真实广告One Day上测试,其修改意见已融入(规则13到16、第二种格式、逐镜头构建、runbook的“One Day中学到的教训”部分)。evals/evals.json中的提示已准备好用于正式对比。两部完成的影片在其示例文件中完整描述。
参考资料
- Nano Banana角色一致性,12个有效的提示(2026指南):https://www.nenobanana.com/blogs/nano-banana-character-consistency-12-prompts-that-actually-work--2026-guide。sheet锚点来源。
- Rob Palmer的广告文案技能:https://robpalmer.com/blog/claude-code-ad-copy-skill 和 https://github.com/robpalmer99/claude-code-copywriting-skills。
- Gemini Omni Flash文档:https://ai.google.dev/gemini-api/docs/omni。
- MiniMax H3视频API:https://platform.minimax.io/docs/guides/video-generation.md。
本技能包含的文件
references/intake.md:面向首次制作广告的导演的25个信息采集问题,内含原因、默认值和示例。首先运行。references/copy-rules.md:在品牌规则下的直接回应方法、钩子类型、清单、语域、时长。references/cold-reader.md:解释性反馈测试、标准、术语列表。references/production-runbook.md:Nano Banana、Omni、Gemini TTS、MiniMax H3、ffmpeg、HyperFrames、shell的命令、成本、注意事项。references/concepts.md:概念格式、好概念从何而来、五个测试。references/face-down-example.md:Face Down v5的完整构建,从头到尾(brief、方向、世界、镜头、带cue的旁白、带时间的屏幕元素、冷读测试、命令、成本、交付物),下方附有每轮修改的历史。构建故事片时从这里开始。references/one-day-example.md:One Day的完整构建,无声分割画幅片:brief、设备、结构、人物、素材、屏幕、字幕、逐镜头构建、冷读测试、以及...