爆款视频复刻1
将一条爆款短视频完整复刻成用户自己的营销视频。
整条链路分为四个阶段,其中第二阶段前和第三阶段后各有一道用户确认闸门,必须等用户明确回复后才能继续,禁止自动跳过。
- 阶段一:结构拆解(文案 + 分镜脚本 + 爆款因素分析 + 总结)
- 阶段二:文案改写(确认用户商品信息 → 改写文案 → 用户确认)
- 阶段三:新分镜脚本(基于改写文案输出新分镜 → 人物与场景梳理:人物小传 + 场景详细描述 → 用户确认)
- 阶段四:视频生成提示词(基于人物小传与场景描述生成图像/首帧提示词 + 运动提示词 + 负向提示词,覆盖可灵/即梦/Seedance/通用格式)
触发条件
满足任一条件即触发:
- 用户说“复刻这条视频”“拆解并改写”“做分镜”“复刻爆款”“照这个视频拍一条”等类似意图;
- 用户粘贴了视频链接(抖音/小红书/B站/YouTube)或提供了本地视频文件绝对路径;
- 用户上传了视频文件附件。
输入
- 必需:视频链接或本地视频文件路径。
- 可选:用户随请求提供的商品信息(阶段二会再次确认补齐)。
依赖
- 必需:
ffmpeg+ffprobe(缺则退出码 8,提示安装)。 - 可选:
yt-dlp(仅下载链接时用到,缺则带--install自动装进隔离 venv)。 - 可选:本地 ASR(硬字幕缺失时启用,见
references/02_asr_fallback.md)。
工作流
阶段一:结构拆解
-
统一视频入口
- 若输入是本地文件:直接校验。
- 若输入是链接:调用scripts/prepare_video.py。- 微信视频号链接无公开下载途径,直接提示用户本地上传。
- 抖音/小红书/B站/YouTube 用
yt-dlp下载,失败则引导本地上传。 - 获取到的本地路径写入 manifest。
-
本地素材提取
运行scripts/extract_material.py <video_path> --out <dir> --audio(按需):
-metadata:时长、分辨率、帧率、方向、编码、是否含音频。
-cover:首帧图,用于 Hook 分析。
-shots:镜头切分结果,含 起止秒/时长/中点秒/代表帧。scene detect 对亮度接近的切换不敏感,脚本会自动把过长的镜头等分补点,确保分镜粒度。
-sub_tiles:字幕条拼图,每张带cell_timestamps_sec,把每条字幕对齐到时间线。
-audio:16k 单声道 wav,仅在需要 ASR 时导出。 -
读取素材
- 先 Readcover.jpg做视觉模型预检;若模型不支持读图,提示切换到视觉模型。
- 批量并发 Readshots中的代表帧。
- 批量并发 Readsub_tiles拼图,还原完整字幕/口播文案(去重合并)。
- 若拼图无文字且用户需要口播文案,读取references/02_asr_fallback.md走 ASR 备用。 -
撰写拆解报告
严格按references/03_deconstruct_template.md输出replica_report.md:
- 基础信息
- 完整文案(去重后的时间轴文案)
- 分镜脚本表(镜号 | 起止秒 | 时长 | 景别 | 运镜 | 画面内容 | 台词/旁白/字幕 | 音效/音乐)
- 镜头拆分遵循references/07_lens_split_rules.md:每个镜头 4–10 秒,台词按每秒 5 字换算,综合台词长度、画面内容变化、画面背景变换等因素判断分拆或合并。
- 爆款因素分析(内容/剧本、画面构成、镜头语言、运镜、音效、配乐、传播机制)
- 总结(一句话爆款原因、可借鉴策略、不适用场景/商品) -
展示给用户
把报告摘要和关键表格呈现给用户,并询问是否进入阶段二。
阶段二:文案改写(第一道确认闸门)
在改写前必须向用户确认商品信息,参考 references/04_rewrite_rules.md:
- 商品名称 / 品牌名
- 核心卖点(3-5 个)
- 目标人群 / 使用场景
- 目标平台
- 风格偏好
- 是否有违禁词/品牌限制
得到确认后:
- 保留爆款文案骨架(Hook/痛点/方案/高潮/CTA)。
- 将商品替换为用户商品,卖点与痛点一一对应。
- 长度与原文案同量级(±30%)。
- 规避广告法风险词。
- 输出改写后文案,并说明与原爆款结构的对应关系。
- 请用户确认文案;用户不确认则修改,直到确认。
阶段三:新分镜脚本(第二道确认闸门)
- 以阶段一的 shots 表为骨架,参考
references/05_storyboard_rules.md与references/07_lens_split_rules.md,把原分镜「1:1 复刻 → 商品替换 → 节奏优化」。镜头拆分同样遵循每镜 4–10 秒、台词每秒 5 字换算、综合台词长度 / 画面内容变化 / 背景变换分拆的原则(与阶段一一致)。 - 输出新分镜脚本表,包含镜号/起止秒/时长/景别/运镜/画面内容/台词/音效/备注。
- 人物与场景梳理(依据新分镜脚本产出,供阶段四复用):
- 扫读新分镜脚本的「画面内容」「台词」「备注」列,抽取出场人物清单(角色名 → 出镜镜号)与所需场景清单(场景名 → 涉及镜号)。
- 按references/08_character_scene_image.md的规范,为每个角色写「人物小传」,为每个场景写「场景详细描述」。
- 人物小传与场景详细描述汇总输出到replica_characters_scenes.md,并随分镜一起向用户说明角色设定、场景设定、以及是否存在无法还原的真实场地。 - 向用户重点说明:总时长、改动点、无法还原的镜头、AI 生成替代方案、人物与场景设定要点。
- 请用户确认分镜与人物 / 场景设定;用户不确认则修改,直到确认。
阶段四:视频生成提示词
用户确认分镜与人物 / 场景设定后,先读取 replica_characters_scenes.md(人物小传 + 场景详细描述)与 references/08_character_scene_image.md,再按 references/06_prompt_templates.md 为每个分镜输出提示词包。所有「首帧图 / 文生图」描述须以人物小传与场景描述为事实来源,保证跨镜头人物与场景一致。
- 通用格式(Runway/Pika/Veo/Sora 类):完整长文本提示词 + 负向提示词。
- 可灵 / 即梦格式:
- 首帧生成提示词(用于文生图,须基于人物小传 + 场景描述)
- 运动提示词(用于图生视频)
- 负向提示词
- Seedance 格式:场景描述 + 分点动作 + 镜头运动 + 情绪 + 负向。
- 图像生成提示词(文生图,基于人物小传 + 场景描述):按
references/08_character_scene_image.md的「图像生成提示词」模板,为每个需出图的镜头产出首帧 / 文生图提示词;同一角色引用同一份小传、同一场景引用同一份描述,确保一致性。
约束:
- 每个分镜单独成块。
- 提示词中不得出现原视频的具体人物肖像、品牌 logo、版权素材。
- 标注各镜头的生成工具建议(哪些适合文生视频、哪些适合图生视频)。
- 首帧图 / 文生图一致性:同一角色的外貌、服装、发型引用阶段三同一份人物小传;同一场景的布光、色调、陈设引用同一份场景描述;禁止逐镜改写导致主体漂移。
- 台词必须同步写入提示词:把该分镜对应的口播/台词/字幕原文(取自阶段三新分镜脚本的「台词」列)放进提示词,确保生成视频时画面与对白一致。通用格式新增「台词」字段;可灵/即梦在首帧图描述与运动提示词中分别点出该镜台词;Seedance 在场景总述后单列「台词」要点。无台词的分镜标注「(无台词)」。
脚本清单
scripts/prepare_video.py:把链接/本地路径统一成本地视频文件。scripts/extract_material.py:提取元数据、镜头、字幕拼图、音频,输出 manifest。
限制
- 微信视频号链接无法直接下载,必须本地上传。
- 抖音/小红书/B站/YouTube 下载受平台风控影响,失败率高时建议本地上传。
- 默认走硬字幕视觉识别,无字幕视频需启用 ASR(首次安装耗时较长)。
- 单个文件默认 ≤ 800MB、时长 ≤ 15 分钟。
- 素材提取全程本地,不上传原视频/帧/音频;但下载链接时依赖 yt-dlp 访问平台页面。