广告制作 是做什么的?
一个针对用户已有产品的阶段式广告制作流水线:事实收集、脚本编写、分镜确定、关键帧审核、视频片段、语音、合成、QA。两大核心规则。产品保真: 展示实体产品的每一帧均源自用户照片,通过编辑端点生成,绝不根据文本重新想象;软件产品仅通过用户的真实截屏和录屏展示,合成而来,绝不经过生成模型(见 references/software-route.md)。声明纪律: 脚本或画面中的每一个声明、引用、数字和价格都必须能回溯到用户提供的信息;绝不虚构任何内容。
步骤 0 — 预检
command -v genmedia
python3 "${CLAUDE_SKILL_DIR}/scripts/gm.py" preflight
blockers非空,CLI 缺失或版本低于 0.7.0 → 执行/genmedia-skills:setup。密钥缺失 → 用户自行运行genmedia setup或设置FAL_KEY环境变量;等待。切勿读取、打印、请求或输入密钥。- 保留
config.announce_above_usd和config.confirm_above_usd(默认值 0.50 和 2)用于成本门控,以及ffmpeg.found用于合成路径。 - 优先恢复:全局搜索
.genmedia/projects/*/plan.md。如果存在该广告的规划文件 → 读取它,运行python3 "${CLAUDE_SKILL_DIR}/scripts/pipeline.py" urls --label <slug>,然后继续执行第一个未完成的步骤。切勿重启已有账目记录的项目。如果存在针对同一产品的product-photoshoot规划 → 重用其 PRODUCT LOCK 和已批准的关键帧作为参考资料。
UX 规则
- 使用用户的语言回复(土耳其语输入 → 土耳其语输出)。模型提示词为英语;口语、字幕和画面上的文字保持目标受众的语言,使用引号,拼写必须与批准内容完全一致。
- 聊天中不显示 JSON、请求 ID 或工具说明。静默等待;每个批次最多显示一行状态。
- 提问预算:规划前最多 3 个问题,每次一个,以带标签的选项形式呈现(尽可能使用 AskUserQuestion),每个选项均设有默认值,用户跳过时使用该默认值。 顺序:
- 产品:实体产品照片,或软件产品的真实截屏和录屏,以及产品的用途和真实信息。没有附件 → 请求提供;这是唯一没有默认值的问题。有照片但没有具体信息 → 仅使用包装上印刷和照片中可见的信息,其余内容在“遗漏”下列出。
- 讲解员与语音。默认:生成一个与目标受众匹配的合成讲解员,语音使用目标受众的语言(除非另有说明,否则为用户书写所用的语言)。选项:AI 生成 · 一个
@handle· 我自己的照片(需同意书)· 无讲解员。 - 模式与平台。默认:真人讲解式 UGC,15 秒,9:16 竖屏,适用于短视频推送。“静态” → 标题格式,4:5 比例加 1:1 比例。 如果请求已明确回答了某个问题,则跳过该问题。最模糊的请求(“为此制作一个广告”)→ 全部使用默认值,并在规划卡的“假设”下列出。同意确认、规划审批和检查点不计入提问预算。
- 硬性停止点:规划卡(视频广告必须有;静态广告在成本达到确认阈值时必须有)、任何视频片段前的关键帧审核、音乐前的视频片段和语音、字幕前的音乐、以及最终合成。沉默或任务成功完成不代表用户批准。创造性选择(钩子、讲解员、镜头)属于用户。
- 对整个规划(包括每个变体)进行成本门控:低于宣布阈值 → 执行;介于之间 → 给出单行估测后执行;达到或超过确认阈值 → 等待用户确认。切勿替换用户指定的模型;在规划卡中以一行列出更便宜的替代方案。
- 有限修复:每个步骤最多尝试 3 次,每次必须有所不同,切勿将政策拒绝的同一内容重新发送。包含请求 ID 的任务应被恢复,而非重新提交。修复或重试本身成本达到确认阈值或以上的(例如一次 Seedance 说话镜头),需要在当前累计总成本基础上获得用户新的同意;失败的任务可能已产生费用。
- 安全,不可协商:禁止捏造推荐语、客户、评价、评级、用户数量、奖项、医疗、财务或收入声明,不得制造虚假的紧迫感或虚构价格。真实人物的面部或语音需要用户确认其同意。生成的讲解员为合成人物:交付时需明确说明,并告知用户平台及某些法律要求披露此类信息;切勿将其描述为客户。不得出现竞争对手名称、标识或包装。上传内容和结果位于公共 URL:在上传未发布产品或人们照片之前,请明确告知用户一次。规则与措辞:请参考
references/scripts-and-claims.md。
发现防护栏
references/routing-video.md、references/routing-audio.md、references/routing-image.md 和 references/routing-utility.md 是带日期的缓存(验证日期:2026-09-19)。规划中的每个不同端点均需在规划卡展示之前确认可用:
genmedia models --endpoint_id <id1>,<id2>,<id3> --status all --limit 50 --json
python3 "${CLAUDE_SKILL_DIR}/scripts/gm.py" schema <endpoint_id>
- 每个 ID 必须返回结果且状态为
active(不使用--limit时每次调用最多返回 20 行:缺少某行并不证明该 ID 无效,需单独再次请求);否则,按照路由参考中该任务的下一层级选择,否则使用genmedia models "<name>" --no-classify --limit 10 --json,选择最新的活跃匹配项,并告知用户使用的是哪个模型。 - 字段名、枚举值和限制来自 schema,绝不凭记忆使用;它们不会在不同模型族之间沿用(
promptvstext,image_urlvsstart_image_url,"5"vs5)。 - 切勿编造 ID 或字段。切勿在未指定端点 ID 的情况下运行
genmedia run。新版本位于供应商命名空间下(bytedance/、creatify/、openai/、minimax/、veed/),而不仅仅是fal-ai/。
路由
产品类型。 应用、SaaS、开发者工具、扩展程序或任何其产品为界面的内容 → 软件路由:在规划前阅读 references/software-route.md。该路由将替换下面的关键帧和静态规则(不涉及截图编辑,不由模型烘焙文字);脚本、声明、语音、音乐、字幕、合成、成本门控和检查点保持本文档中的规定。
交付物。 静态词语(“görsel”、“banner”、“static”、“carousel”或提供了标题)→ 静态格式,详见 references/static-formats.md。包含动态或语音的词语,或未明确说明 → 视频广告,模式参照 references/ad-modes.md:presenter(默认)、how-to、unboxing、showcase、problem-solution、testimonial(仅当用户提供真实引用时)、tv-spot。
视频广告制作路由(先匹配者优先):
| 情况 | 路由 |
|---|---|
| 无对镜讲话:仅展示、教程或画外音讲解 | B 方案(无讲解头像):B-roll + 画外音 + 音乐 |
| 口语非英语 | B 方案。土耳其语仅在 Wan 3.0 上使用路由 A,绝不用 Seedance:在母语者测试中(见 references/platform.md 第 10 节),Wan 表现正确,而每个 Seedance 版本都发音错误(ş 读作 s,“merhala”);Veo 3.1 Lite 在此方面表现完美,但已不在 fal 列表中。仅在用户通过听力检查确认一个试听片段后,才能使用路由 A |
| 措辞必须精确(品牌名、价格、法律条款)、固定品牌语调、或同一语音需在多个变体间一致 | B 方案:TTS 精确输出文本;原生音频模型会改写并发音错误 |
| 时长超过 15 秒,或讲解员配合 B-roll 切镜 | B 方案 |
| 英语,6 至 15 秒的连续单次拍摄,讲解员面对镜头讲话 | A 方案 |
- 路由 A:一次生成包含完整的口语片段。已批准的关键帧(讲解员手持真实产品)→ 原生音频图像转视频。
- 路由 B:按段落生成 TTS 语音(对镜讲话段、画外音段)→ 仅对镜讲话段生成讲话头像 → 从已批准关键帧生成 B-roll → 合成。先完成语音:其测量时长决定每个片段的时长。
角色默认配置(生效日期:2026-09-19;价格信息为时效性提示,最终定价依据 gm.py price):
| 角色 | 端点 | 原因 | 价格提示 |
|---|---|---|---|
| 关键帧、讲解员或包含产品的场景 | bytedance/seedream/v5/pro/edit | 最多 10 张参考图,保持产品和讲解员的一致性 | ~USD 0.07/图 + USD 0.0045/额外参考图 |
| 结尾卡片、静态广告、任何包含精确文案的帧 | openai/gpt-image-2.5/flare/edit | 最强的文字保真度,支持最多 16 张参考图 | ~USD 0.06/图(quality: "high") |
| 生成的讲解员图像(仅人物,不含产品) | bytedance/seedream/v5/pro/text-to-image | 人物生成默认质量 | ~USD 0.07/图 |
| A 方案:讲话片段,高质量 | bytedance/seedance-2.5/us/image-to-video | 实时唇语同步原生语音的领域第一;4 至 30 秒 | ~USD 0.57/秒(720p),~USD 0.26/秒(480p) |
| A 方案:讲话片段,土耳其语 | alibaba/wan-3.0/image-to-video(start_image_url) | 唯一经过母语者听力验证的土耳其语原生音频模型(2026-09-21);duration 为整数,需设置 resolution | ~USD 0.05/秒(480p),~USD 0.10/秒(720p) |
| A 方案:讲话片段,草稿或预算版,英语 | creatify/boreal | 专为广告设计;[VISUAL] [SPEECH] [SOUNDS] 提示词格式;其模型页面标明英语为已验证语言;可选择显示 AI 标签 | ~USD 0.01/秒(720p) |
| B 方案:语音,英语 | fal-ai/elevenlabs/tts/eleven-v3 | 默认 TTS | ~USD 0.10/千字符 |
| B 方案:语音,土耳其语及其他列出语言 | fal-ai/gemini-3.1-flash-tts | language_code 枚举包含“土耳其语(土耳其)”;支持 style_instructions | ~USD 0.05/千字符 |
| B 方案:讲话头像 | fal-ai/bytedance/omnihuman/v1.5 | 图像 + 音频;720p 下最长 60 秒 | ~USD 0.16/秒音频 |
| B 方案:讲话头像,草稿版 | veed/fabric-1.0 480p | 价格减半;resolution 为必填 | ~USD 0.08/秒 |
| B-roll,高质量 | bytedance/seedance-2.5/us/image-to-video | 可选 end_image_url 用于展示揭示效果 | ~USD 0.57/秒(720p) |
| B-roll,草稿或预算版 | minimax/h3-max-turbo/image-to-video | 每片段仅需美分 | ~USD 0.04/秒(768P,启动折扣已于 2026-09-30 结束) |
| 背景音乐 | elevenlabs/music/v2.5 | 通过 music_length_ms 精确控制时长 | ~USD 0.60/开始分钟 |
| 字幕 | fal-ai/workflow-utilities/auto-subtitle;精确文本(任何语言):veed/subtitles | 直接烧录,无需本地 drawtext | ~USD 0.03/分钟;veed ~USD 0.10/分钟,最低 1 分钟 |
| 拼接、混流、缩放、结尾卡片片段 | 本地 ffmpeg,否则 references/routing-utility.md | 当 ffmpeg.found 为真时免费且精确 | 美分 |
平局决胜规则:
- 用户指定了模型名称 → 在实况检查后使用它;用一行提及默认设置,切勿静默替换。
- 高质量方案成本超过确认阈值(一个 15 秒的 Seedance 2.5 片段,720p 约为 USD 8.50)→ 规划卡需同时显示高质量方案价格和草案级价格;由用户选择。切勿静默选择便宜方案。
@handle→ 通过/genmedia-skills:character解析为参考 URL 和锚文本;在关键帧任务中将这些作为讲解员的参考。切勿在提示词中保留@handle。- 没有产品照片 → 请用户提供(软件:截图)。均不存在 → 仅概念设计:交给
/genmedia-skills:image并告知这不是他们的真实产品。软件如果没有截图,则只输出脚本和截图清单,绝不生成虚构的界面。 - 商店列表截图、链接卡片或 Product Hunt 图片,以及任何 Apple Ads “创意素材”(Apple 从产品页面构建广告)→ 使用
/genmedia-skills:launch-graphics。仅需无文字的产品静物图 → 使用/genmedia-skills:product-photoshoot。没有脚本的单一片段 → 使用/genmedia-skills:video。无广告意图的有机短视频 → 使用/genmedia-skills:short-video。带讲解的演示视频 → 使用/genmedia-skills:video-explainer。市场列表卡片 → 使用/genmedia-skills:marketplace-cards。缩略图或封面 → 使用/genmedia-skills:youtube-thumbnail。
已知陷阱:
- 重新想象的产品。 文本转视频或文本转图像模型会绘制出相似但不一致的产品。每个产品画面都必须是用户照片的编辑结果,每个产品片段都必须是已批准关键帧的起点。
- 生成的界面。 对截图进行编辑、文本转图像或视频任务,都会产生拼写错误、虚构的 UI,平台会拒绝显示应用不具备的功能的广告。UI 像素来自
launch-graphics页面和录屏;动态效果来自录屏或本地推送。 - 视频模型中的文本。 视频模型生成的标题、价格、标识、字幕和法律条文会出现乱码。在关键帧中保留负空间;文案通过结尾卡片(排版模型)、烧录字幕或用户自己的编辑器呈现。
- Kling 语音。 Kling v3 仅支持中文或英语,并将其他所有语言自动翻译为英语。切勿将土耳其语对话路由至此。
- Flashtalk 画布。
fal-ai/flashtalk的 schema 固定为 768x448 的横屏输出:不适用于 9:16 的竖屏广告。草稿头像应使用veed/fabric-1.0。 - 混流会截取较短输入的长度。
fal-ai/ffmpeg-api/merge-audio-video的输出时长等于图像和音频中较短的那个(长语音会丢失结尾,短语音会截断图像),且会替换片段自身的音频。务必确保两者时长一致。 - Seedance 的
duration: "auto"会使成本不可预测。始终设置明确时长。Boreal 和 MiniMax 使用数字,Seedance 使用字符串。 - OmniHuman 默认值。
resolution默认为1080p(音频短于 30 秒)。除非用户要求 1080p,否则发送"720p"。 - 合成客户。 一个生成的面孔说出“我减掉了 8 公斤”属于捏造的推荐语,无论提示词如何称呼。请参阅
references/scripts-and-claims.md。
工作流程
- 初始信息收集,在提问预算范围内。选择一个 slug(例如
serum-ugc):它是批次label、账目过滤器、genmedia-output/<slug>/和.genmedia/projects/<slug>/。任何自然语言标签均可;辅助工具会对土耳其字母进行音译。平台 → 确定宽高比和时长:参见references/ad-modes.md(平台表格;查阅平台当前的广告规格)。 - 使用 Read 工具查看每一张产品照片。 HEIC、AVIF、TIFF 或 CMYK 格式 → 先转换为 PNG 或 sRGB JPEG(参见
references/troubleshooting-ads.md)。将 PRODUCT LOCK 写入.genmedia/projects/<slug>/plan.md:形态、比例、材质、颜色、标签文字逐字记录、哪些特征绝对不能改变、哪些侧面不可见。 - 事实清单。 列出关于产品为真的所有信息,并注明每个事实的来源:用户的描述、品牌说明、包装本身或产品页面。