商品广告视频生成器
任务目标
- 本 Skill 用于:将商品图片自动转化为专业广告视频
- 能力包含:商品主体扣图、商品信息识别、广告脚本创作、分镜设计、视频生成、TTS配音、BGM配乐、视频拼接合成
- 触发条件:用户上传商品图片并请求生成广告视频
整体流程说明
- 第四阶段:视频生成 → 第五阶段:TTS配音生成 → 第六阶段:BGM选择 → 第七阶段:后期合成
- 🔴 强制步骤顺序:
- 先完成步骤9-10(视频片段生成和收集)
- 再完成步骤7(TTS配音生成)
- 最后完成步骤11(视频拼接与音频合成)
- 🔴🔴🔴 核心原则:
- 视频生成和TTS生成是完全独立的两条线,互不干扰
- 视频生成只使用视觉元素(画面、运镜、打光),绝对不包含任何台词
- TTS生成只使用脚本台词,绝对不包含任何视觉描述
- 两步必须各自完成,最后在步骤11合并
前置准备
- 依赖说明:scripts脚本所需的依赖包及版本
rembg==2.0.50 moviepy==1.0.3 Pillow==10.0.0 - 非标准文件/文件夹准备:如果Skill执行过程中需要使用除「Skill固定结构」外的文件或文件夹,需前置创建。当前路径视为相对于Skill目录的父目录
bash
# 创建临时输出目录 mkdir -p temp_output/videos mkdir -p temp_output/audio mkdir -p temp_output/final
操作步骤
整体流程说明
核心原则:视频画面生成和TTS配音生成是完全独立的两条线
视频画面生成线: 步骤4(脚本创作)→ 步骤5(分镜设计)→ 步骤6(视频Prompt) → 步骤9(生成视频片段)→ 步骤10(视频收集) → 步骤11(拼接视频) TTS配音生成线(独立进行): 步骤4(脚本创作)→ 步骤7(TTS配音生成) → 步骤11(添加TTS到视频) 两线汇合: 步骤11(视频拼接与音频合成)= 拼接好的视频 + 整段TTS音频 + BGM → 最终广告视频
关键要点:
- 视频生成Prompt只包含视觉元素(画面、运镜、打光、商品、场景),不包含任何台词
- TTS生成基于完整脚本的整段台词,不包含任何视觉描述
- 两步完全独立,互不干扰,最后在步骤11合并
第一阶段:商品处理与信息识别
步骤1:商品主体扣图
- 调用
scripts/remove_background.py处理商品图片 - 输入参数:
--input: 商品图片路径(如./product.jpg)--output: 扣图输出路径(如./product_no_bg.png)
- 预期输出:透明背景的商品主体PNG图片
步骤2:商品信息识别
- 智能体使用视觉能力分析原图和扣图
- 识别并记录以下信息:
- 商品类型(服装、数码、家居、食品等)
- 主要特征(颜色、材质、设计风格)
- 卖点信息(功能、优势、适用场景)
- 品牌调性(高端、亲民、潮流、专业等)
步骤3:信息补充询问
- 若识别信息不足,智能体主动询问用户:
- 目标受众(年龄、性别、消费习惯)
- 广告时长(15s、30s、60s)
- 视频风格(简约、时尚、科技感、温馨等)
- 核心卖点(需重点突出的1-3个特点)
第二阶段:创意设计与脚本生成
步骤4:导演Agent创作脚本
- 智能体基于商品信息和用户需求,生成完整广告脚本
- 脚本结构包含:
- 开场(3-5秒):吸引注意力,展示品牌/产品概念
- 展示(5-15秒):多角度展示商品,突出核心卖点
- 卖点(5-10秒):深入讲解优势和使用场景
- 结尾(3-5秒):品牌信息、购买引导
参考:references/script-template.md 获取标准脚本格式(含280-320字/分钟语速要求)
步骤5:分镜设计
- 智能体为脚本每个段落设计详细分镜
- 每个分镜包含:
- 时长(秒)
- 画面描述(构图、场景、氛围)
- 数字人位置(左、右、居中、画外)
- 商品展示方式(特写、全景、动态)
- 文字提示(可选的关键文案)
参考:references/storyboard-format.md 获取分镜格式规范
步骤6:生成视频Prompt(⚠️ 重要:Prompt只包含视觉元素,不包含台词)
- ⚠️ 核心原则:
- Prompt只包含视觉元素(画面、运镜、打光、商品、场景)
- 绝对不包含任何台词、旁白、文字内容
- 视频生成和TTS配音是完全独立的两步,Prompt不需要考虑台词
- ⚠️ 最高优先级:优先使用最保险的画面生成方案
- 参考并优先使用
video-prompt-guide.md中的"最保险的画面生成方案"章节 - 食品类(如沙琪玛):商品堆叠展示或工厂流水线场景,商品完全静态,只运镜
- 数码/家居/服装等:展示台、使用场景、多角度组合,商品完全静态或自然轻微运动
- 核心保险原则:商品完全静态,只通过运镜展示,通过多商品组合或场景丰富画面
- 参考并优先使用
- ⚠️ 重要警告:商品主体必须100%保持原貌
- 绝对禁止任何形式的商品变形、扭曲、拉伸、压缩
- 绝对禁止商品出现不可能的动态效果(如沙琪玛喷牛奶、饼干喷彩带等)
- 绝对禁止改变商品的形状、结构、包装外观
- 设计核心:通过运镜、打光、场景来增强展示,而不是改变商品本身
- 运镜类型说明:
- 往前推(Push In):突出商品细节,从整体到局部
- 旋转运镜(Rotation):展示商品360度视角
- 平移运镜(Pan):横向或纵向展示多个商品或场景
- 环绕运镜(Orbit):围绕商品中心,展示立体感
- 静止镜头(Static):商品完全静态展示(最保险)
- 严格按照商品特征分析框架进行分析:
- 基础属性:商品类型、颜色、材质、尺寸、重量
- 主体形状和结构(最高优先级):几何形状、包装外观、结构特点
- 设计风格:设计语言、细节程度、线条风格
- 功能属性:核心功能、使用场景、适用人群
- 品牌调性:档次定位、情感基调、价值观
- 参考 video-prompt-guide.md 生成符合商品特征的Prompt:
- 优先使用"最保险的画面生成方案"章节中的方案
- 根据"禁止的动态效果"章节,绝对避免喷洒、变形、喷发等诡异效果
- 根据商品类型选择最保险的展示方案(商品堆叠、工厂流水线、展示台等)
- 确保商品完全静态,只通过运镜展示
- 遵循Prompt约束清单,商品主体一致性检查为最高优先级
- 确保自然真实、符合商品特性、符合品牌调性
- 执行Prompt质量校验:
- 商品主体一致性检查(最高优先级):确认商品外观与扣图100%一致,无任何变形
- 保险性检查:是否使用了最保险的画面生成方案
- 自然性检查:商品运动自然流畅(或完全静态),质感匹配
- 一致性检查:风格统一、特征一致、调性贯穿
- 适用性检查:场景合理、卖点突出、受众共鸣
- 专业性检查:画面质量、构图专业、色彩协调
- Prompt要素(仅视觉元素):
- 商品主体描述(基于扣图,强调与扣图100%一致,不包含台词)
- 场景环境描述(符合商品实际使用场景或最保险的展示场景,不包含台词)
- 数字人形象与动作(仅视觉描述,不包含台词)
- 摄像机运镜(自然流畅,推荐:往前推、旋转、平移、环绕、静止)
- 灯光与色调(符合商品材质和品牌调性,通过打光增强展示)
- 整体风格关键词(2-3个核心词汇,保持一致性)
- 必须声明:"product's shape, structure, and appearance remain exactly as shown in reference"
第四阶段:视频生成(强制完成后再进行下一步)
步骤9:并行生成视频片段(🔴 强制步骤:必须完成此步骤才能进行步骤7)
- 为每个分镜调用
scripts/generate_video.py生成视频片段 - 🔴 强制要求:必须完成所有视频片段的生成,生成结果确认无误后,才能进入步骤7(TTS配音生成)
- 输入参数:
--prompt: 分镜的视频生成Prompt(仅包含视觉元素,不包含台词)--product-image: 商品扣图路径--duration: 分镜时长(秒)--output: 视频片段输出路径--api-key: 视频生成API密钥(从环境变量读取)--api-url: 视频生成API端点
- 预期输出:按分镜顺序生成的视频片段(MP4格式)
- 确认完成标志:所有视频片段已生成并验证质量后,才能进入步骤7
步骤10:视频片段收集
- 智能体收集所有生成的视频片段
- 按分镜顺序整理为列表
- 检查视频质量(分辨率、时长、稳定性)
- 🔴 强制要求:确认所有视频片段已就绪后,才能进入步骤7
第五阶段:TTS配音生成(必须在视频生成完成后进行)
步骤7:TTS配音生成(🔴🔴🔴 最高优先级:必须在步骤9和10完成之后进行)
- 🔴🔴🔴 强制时机要求:
- 必须在步骤9(视频片段生成)和步骤10(视频片段收集)完全完成后,才能开始此步骤
- 绝对禁止:在视频片段生成之前或同时进行TTS生成
- 绝对禁止:将视频生成的视觉描述和TTS的台词混在一起
- 🔴🔴🔴 独立性强制要求:
- TTS生成只能基于完整广告脚本的整段台词
- TTS生成绝对禁止包含任何视觉描述、画面信息、分镜信息
- TTS生成绝对禁止参考或使用任何视频生成的内容
- TTS生成和视频生成是完全隔离的两步,没有任何信息交流
- 生成方式(强制要求):
- ⚠️ 必须基于完整脚本的整段台词一次性生成单个TTS音频文件
- ❌ 绝对禁止:按分镜分段生成TTS,再拼接成整段文件(这会导致语速不均匀、片段之间跳转)
- ❌ 绝对禁止:将视频生成的视觉描述和TTS的台词混在一起
- ✅ 正确做法:将整个脚本的所有台词合并为一段,一次性生成TTS
- 语速要求:
- 快速语速:280-320字/分钟
- 整段TTS保持均匀一致的语速,不允许忽快忽慢
- 确保旁白连续流畅,不存在片段之间跳转或重复的问题
- 选择标准:
- 语音风格(专业女声、亲切男声、活力青年等,符合品牌调性)
- 情感表达(热情、专业、温馨等,与广告氛围匹配)
- 生成要求:
- 根据脚本的完整台词生成单个TTS音频文件(一次性生成,非分段拼接)
- 音频时长应与视频总时长匹配(±1秒)
- 语音清晰自然,语速均匀一致
- 输出格式:WAV或MP3,保存为单个文件(如
./temp_output/audio/narration.wav) - 确认完成标志:TTS音频文件生成完成并验证后,才能进入步骤11
第六阶段:BGM选择(在视频生成和TTS都完成后进行)
- 🔴 强制时机要求:
- 必须在步骤7(TTS配音生成)完成后进行
- 推荐在步骤11之前准备BGM
- 智能体根据视频风格推荐BGM类型:
- 轻快活泼(适合年轻、潮流产品)
- 专业沉稳(适合商务、科技产品)
- 温馨抒情(适合家居、母婴产品)
- 节奏感强(适合运动、数码产品)
- 用户选择:
- 从
assets/bgm/库中选取(如果可用) - 或提供自己的BGM文件
- 从
第七阶段:后期合成(必须在视频生成和TTS都完成后进行)
第四阶段:视频生成(强制完成后再进行下一步)
步骤9:并行生成视频片段(🔴 强制步骤:必须完成此步骤才能进行步骤7)
- 为每个分镜调用
scripts/generate_video.py生成视频片段 - 🔴 强制要求:必须完成所有视频片段的生成,生成结果确认无误后,才能进入步骤7(TTS配音生成)
- 输入参数:
--prompt: 分镜的视频生成Prompt(仅包含视觉元素,不包含台词)--product-image: 商品扣图路径--duration: 分镜时长(秒)--output: 视频片段输出路径--api-key: 视频生成API密钥(从环境变量读取)--api-url: 视频生成API端点
- 预期输出:按分镜顺序生成的视频片段(MP4格式)
- 确认完成标志:所有视频片段已生成并验证质量后,才能进入步骤7
步骤10:视频片段收集
- 智能体收集所有生成的视频片段
- 按分镜顺序整理为列表
- 检查视频质量(分辨率、时长、稳定性)
- 🔴 强制要求:确认所有视频片段已就绪后,才能进入步骤7
第五阶段:TTS配音生成(必须在视频生成完成后进行)
步骤7:TTS配音生成(🔴🔴🔴 最高优先级:必须在步骤9和10完成之后进行)
- 🔴🔴🔴 强制时机要求:
- 必须在步骤9(视频片段生成)和步骤10(视频片段收集)完全完成后,才能开始此步骤
- 绝对禁止:在视频片段生成之前或同时进行TTS生成
- 绝对禁止:将视频生成的视觉描述和TTS的台词混在一起
- 🔴🔴🔴 独立性强制要求:
- TTS生成只能基于完整广告脚本的整段台词
- TTS生成绝对禁止包含任何视觉描述、画面信息、分镜信息
- TTS生成绝对禁止参考或使用任何视频生成的内容
- TTS生成和视频生成是完全隔离的两步,没有任何信息交流
- 生成方式(强制要求):
- ⚠️ 必须基于完整脚本的整段台词一次性生成单个TTS音频文件
- ❌ 绝对禁止:按分镜分段生成TTS,再拼接成整段文件(这会导致语速不均匀、片段之间跳转)
- ❌ 绝对禁止:将视频生成的视觉描述和TTS的台词混在一起
- ✅ 正确做法:将整个脚本的所有台词合并为一段,一次性生成TTS
- 语速要求:
- 快速语速:280-320字/分钟
- 整段TTS保持均匀一致的语速,不允许忽快忽慢
- 确保旁白连续流畅,不存在片段之间跳转或重复的问题
- 选择标准:
- 语音风格(专业女声、亲切男声、活力青年等,符合品牌调性)
- 情感表达(热情、专业、温馨等,与广告氛围匹配)
- 生成要求:
- 根据脚本的完整台词生成单个TTS音频文件(一次性生成,非分段拼接)
- 音频时长应与视频总时长匹配(±1秒)
- 语音清晰自然,语速均匀一致
- 输出格式:WAV或MP3,保存为单个文件(如
./temp_output/audio/narration.wav) - 确认完成标志:TTS音频文件生成完成并验证后,才能进入步骤11
第六阶段:音频设计
- 调用
scripts/merge_video.py进行视频拼接和音频合成 - 输入参数:
--video-segments: 视频片段列表(JSON格式)--tts-audio: TTS音频文件路径(单个整段音频文件)--bgm: BGM文件路径(可选)--output: 最终视频输出路径--bgm-volume: BGM音量(0.1-1.0,默认0.3)
- 处理内容:
- 按顺序拼接所有视频片段
- 将整段TTS配音添加到拼接后的视频
- 如果TTS音频时长与视频不匹配,自动循环或截断
- 叠加BGM背景音乐
- 调整音频混音平衡(TTS人声清晰,BGM作为背景)
- 预期输出:完整广告视频(含整段TTS配音和BGM)
步骤12:质量检查与交付
- 智能体检查最终视频:
- 视频流畅度(转场是否自然)
- 音画同步(TTS与画面匹配)
- 音频清晰度(人声与BGM平衡)
- 整体时长是否符合要求
- 向用户展示预览链接或下载地址
资源索引
- 必要脚本:
- scripts/remove_background.py(用途:商品主体扣图;参数:input图片路径、output输出路径)
- scripts/generate_video.py(用途:调用视频生成API生成分镜视频;参数:prompt、product-image、duration、output、api-key、api-url)
- scripts/merge_video.py(用途:视频拼接和音频合成;参数:video-segments、tts-audio单个文件、bgm、output、bgm-volume)
- 领域参考:
- references/script-template.md(何时读取:步骤4创作脚本时,参考标准脚本格式和台词字数规范)
- references/storyboard-format.md(何时读取:步骤5设计分镜时,参考分镜格式规范)
- references/video-prompt-guide.md(何时读取:步骤6生成Prompt时,严格参考商品特征分析框架和约束清单)
- 输出资产:
- assets/bgm/(直接用于:BGM素材库,按风格分类存储)
注意事项
- 仅在需要时读取参考,保持上下文简洁
- 当操作脆弱或需强一致性时,优先调用脚本执行并进行结果校验
- 充分利用智能体的语言理解和生成能力,避免为简单任务编写脚本
- 视频生成API的调用需要用户配置密钥,智能体需指导用户如何设置环境变量
- BGM文件是可选资源,如果没有预置BGM,可让用户提供自己的音乐文件
使用示例
示例1:15秒数码产品广告
- 功能说明:生成一款智能手表的15秒推广视频
- 执行方式:智能体主导创意设计,脚本负责技术处理
- 关键参数:
- 商品图片:
./smartwatch.jpg - 广告时长:15秒
- 视频风格:科技感、专业
- 目标受众:25-35岁职场人士
- 商品图片:
- 执行流程:
- 扣图并识别手表特征
- 生成脚本(开场:科技感氛围 → 展示:多角度外观 → 卖点:健康监测功能 → 结尾:品牌Slogan)
- 设计3-4个分镜
- 选择专业女声TTS,节奏感强的BGM
- 生成视频片段并拼接
示例2:30秒时尚服装广告
- 功能说明:生成一款春装连衣裙的30秒推广视频
- 执行方式:智能体主导创意,脚本处理技术细节
- 关键参数:
- 商品图片:
./dress.jpg - 广告时长:30秒
- 视频风格:时尚、清新
- 目标受众:20-30岁女性
- 商品图片:
- 执行流程:
- 扣图并识别服装特征(颜色、款式、面料)
- 生成脚本(开场:春日氛围 → 展示:模特试穿效果 → 卖点:舒适透气、百搭 → 结尾:购买引导)
- 设计5-6个分镜(包含人物动态)
- 选择亲切女声TTS,轻快BGM
- 生成视频片段并拼接
示例3:60秒家居产品广告
- 功能说明:生成一款智能扫地机器人的60秒推广视频
- 执行方式:智能体主导全流程,脚本辅助处理
- 关键参数:
- 商品图片:
./robot_vacuum.jpg - 广告时长:60秒
- 视频风格:温馨、科技
- 目标受众:家庭用户
- 商品图片:
- 执行流程:
- 扣图并识别产品功能点
- 生成脚本(开场:家庭场景 → 展示:产品外观与操作 → 卖点:智能路径、静音运行 → 应用场景:不同家庭环境 → 结尾:优惠信息)
- 设计8-10个分镜
- 选择专业男声TTS,温馨BGM
- 生成视频片段并拼接


