Communitygithub.com

amitdeshmukh/banger-ads

如何为任何产品或品牌制作能引发真实情感、让陌生人也能完全理解的广告和短片,并通过AI视频管线(图像模型角色表、任意视觉风格的十秒视频板、可选的TTS旁白、HyperFrames叠加层)进行制作。

banger-ads 是什么?

该技能是一个完整的广告制作方法,涵盖从创意构思到最终渲染的全流程,专为AI代理设计,用于生成情感驱动、理解清晰的商业广告或短片。它支持两种核心格式:叙事故事片(如Face Down示例)和无声分割画幅片(如One Day示例),并内置了严格的“冷读者”测试以确保广告对陌生人有效。技能包含详细的脚本规则、导演审批流程以及基于Nano Banana、Gemini Omni等工具的低成本视频管线(约$10/条)。用户只需提供产品或品牌信息,技能会引导完成信息采集、概念生成、脚本编写、旁白生成、逐镜头制作和最终交付。

兼容平台✓Claude Code~Codex CLI~Cursor✓Gemini CLI
npx skills add amitdeshmukh/banger-ads

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

Banger广告

一则广告是:一个人、一个时钟、一个数字。产品是结尾处的一句低语。本技能包含一套方法,用于制作能让人产生感受并理解某事的广告;包含一位苛刻导演在两部真实制作中给出的修改意见;以及一条视频管线,能以任何视觉风格、以约10美元的成本渲染出完成品。这里不预设任何产品、角色或外观;这些由brief提供。两个完整的制作是已完成的示例:Face Down v5,一部叙事故事片(references/face-down-example.md),以及One Day,一部无声分割画幅片,逐镜头构建(references/one-day-example.md)。它们涵盖了本管线所能制作的两种格式。

两种格式

在信息采集时选择其一;它们的编写和构建方式不同。

  1. 故事片(Face Down)。一个人、一个时钟、一个数字、一位叙述者。下面的banger规则就是它的规则。时长60到80秒。
  2. 日间片(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;规则是通用的。

  1. 从困境内部开始。 第一行是一个时刻,带有一个时间。“凌晨两点十四分。那是Dana的手机。”描述人物的第一行不会吸引任何人。
  2. 人物说话。 旁白听起来像在厨房餐桌上说的话。数字是对话。
  3. 杀手级台词要保留到成片。 当剪辑太长时,删减填充内容或让影片更长时间。导演接受了80秒,而原定“大约45秒”。导演拒绝了一个为了达到时长而剪掉最佳台词的版本。
  4. 场景是观众曾经置身过的。 问:谁需要在第一个镜头中看到自己?一个在线商店胜过冲压工厂,因为每个人都遇到过结账失败。
  5. 产品被隐去,然后明确定义一次,比场景更大。 前三分之一不出现名字。然后一句话说明它对于整个业务的作用,如果brief中有就用它的原话,绝不要用一句话将其缩小到它所在的单一场景。
  6. 一个姿态承载整部影片。 手机屏幕朝下。拇指在玻璃上。这个姿态是高潮,并且需要静默。
  7. 结尾重新定义开头。 第一个画面再次出现,但已改变。
  8. 声音以品牌名称结束。 URL显示在屏幕上。没人说“dot com”。
  9. 全片没有专业术语。 使用一个会网购的退休教师第一次听就能理解的日常用语。参见references/cold-reader.md中的术语列表。
  10. 观众从未听说过该产品。 在前十秒确立人物及其行为,在屏幕上展示问题,明确定义产品一次,说出每一步,最后以产品为观众做了什么来结尾。
  11. 使用平实英语结构。 如果一个短语放在报纸上会显得奇怪,那么它出现在广告里也是奇怪的。
  12. 每一句听到或看到的台词,都是导演的话或得到其明确同意。 沉默不被视为同意。未签署前不渲染任何内容。绝不发明报价、价格、试用期或时长。
  13. 一次一个镜头。 导演在下一个镜头之前批准每个镜头(“我希望逐个授权”)。将每个镜头作为独立合成,这样修改只需一分钟渲染,在组装之前单独展示。
  14. 屏幕上的每一行文字都是一个完整的句子。 标签、药丸列表和中间点连串会让冷读者失败(“作为冷读者,我无法与之产生共鸣”)。人物是谁、他们在做什么,每个都用完整句子。
  15. 产品提供帮助;它从不监视。 “监视你的业务”、“监视的AI”、“密切关注”读起来像监控,一位导演禁止使用它们,认为它们具有敌意。将AI写作帮助。取代它们的标语格式是:“帮助运营你的业务的AI。”品牌指南中保存了确切措辞。
  16. 导演逐边读取画幅。 半边的颗粒感、硬边遮罩、笔记本电脑模板、走错方向的人物:导演在第一次观看时就看到了它们。在发送之前裁剪边缘并比较区域;参见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中的提示已准备好用于正式对比。两部完成的影片在其示例文件中完整描述。

参考资料

本技能包含的文件

  • 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、设备、结构、人物、素材、屏幕、字幕、逐镜头构建、冷读测试、以及...

相关技能