--- name: daihuo-fanpai description: 复刻/仿拍爆款带货短视频 —— 反推目标视频分镜,用即梦(Seedance)重新生成镜头,配音拼接成片。A模式(忠实复刻:原台词原产品) / B模式(跨类目迁移:换产品+千川本地化脚本) / C模式(没有目标视频:从例文卡库选模板直生)。触发:复刻带货视频、仿拍爆款、把这条视频用我的产品重做、抖音带货素材复刻、即梦复刻、穿搭/换装复刻、舞蹈/动作复刻、照着这条视频的动作换人重拍。 tags: [复刻, 仿拍, 带货视频, 短视频, 即梦, seedance, 视频生成, 千川, 剪映草稿, 群戏, 动作复刻, 深度图] version: 2.0 status: verified created: 2026-07-01 updated: 2026-07-13 --- # 带货短视频复刻 (daihuo-fanpai) 反推爆款 → 迁移到目标产品 → 即梦生成 → 配音拼接。核心洞察:**病在"反推→写提示词"的转换环节会丢细节/丢动作,不在模型**。本 skill 把验证过的管线固化,每步产物可审。 引擎在本目录(可插拔,换实现只改单个文件): `seed_reverse.py` 反推 · `merge_reverse.py` 双反推合并 · **`route.py` 判片型(决定后续生成方式)** · `plan_segments.py` 规划 · `h3_prompt.py` 海螺提示词生成 · **`director.py` 约束维度检查(生成前最后一道闸)** · `seam_pick.py` 一镜到底续接挑缝 · `cut_audio.py` 原音切段(≥2s闸+timing.json) · `patch_cast.py` 群戏/多人补丁(人数硬约束) · `gen_segments.py` 生成 · `qc_assets.py` **资产入库闸(机械层+VLM层+图⇄文对账,提交前把参考图本身查一遍)** · `qc_lipsync.py` 帧级口型质检 · `qc_defects.py` 四类缺陷定量抽帧 · `grid_off.py` 多卷同网格对照 · `is_speech.py`/`voice_cmp.py` 音轨判据 · `tts_segments.py` 配音 · `assemble.py` 装配 · `deliver.py` 交付(剪映草稿/成品) · `doctor.py` 体检。 生成后端(可插拔,契约 `submit_*()->tid` / `wait_download(tid,dst)->(size,usage)`):即梦CLI(内置) · **`mmh3_gen.py` MiniMax H3 官方规范(秘塔渠道,h3 首选)** · `ark_gen.py` 火山 · `xyq_gen.py` 小云雀 · `rh_gen.py` RunningHub海螺h3(同模型贵4.4倍,已退役) · `rhdh_gen.py` RunningHub 数字人(**整条口播片直通**,单主播对镜口播片型用,跳过反推/规划/TTS;30 分钟片约 ¥95,钱包计费先征得用户同意)。 > **要改造/换引擎/接手本 skill?先读 `DESIGN.md`**(设计理由 + 数据契约 + 扩展点)。参考样例在 `references/`。 ## 两种模式 - **A·忠实复刻**:目标=原原本本复刻(台词原样、产品同一个)。不改脚本、不接千川。本文件覆盖。 - **B·跨类目迁移**:换成用户产品 + 千川方法论本地化台词。B 在 A 基础上,于「规划」后、「配音」前插入**脚本本地化**一步,只改 `segments.json` 的 `dialogue` 字段(接口不变,A 的引擎一行不动)。 - 方法论弹药包在 `qianchuan/`(蒸馏自4套千川课):`00-INDEX`导航 · `01-选题与卖点`(三级卖点S/A/B) · `02-跨类目复制与机制`(★纪律:结构不动只换产品/卖点/数字 + 买赠堆叠 + 信任前置) · `03-句式库`(锚定/伪机制/指令式) · `04-诊断rubric与红线`(三看漏斗90分 + 合规)。 - 操作:按 `qianchuan/LOCALIZE.md` 流程 → 向用户收事实包(品牌/主卖点/活动/价格/赠品/产地/异议点)→ 逐段改 dialogue(**默认走纪律不自由发挥**)→ 存 edits.json → `python3 localize_apply.py segments.json edits.json`(自动同步口播段 prompt 的 台词{},并对字数偏差告警)→ 给用户过目 → 继续 tts。 - **评委(可选)**:生成后拿成片抽帧 + `04` 三看漏斗打分,不足项给整改建议。 - **C·模板直生(没有目标视频)**:只有产品图 + 一句要求时,从例文卡库挑一张结构模板,让大模型直写全新 shotlist, 之后走 A 的下游(plan_segments → tts → h3_prompt → gen → assemble → deliver)。 ``` python3 c_gen.py --assets run/assets.json --require "做一条15-20s的早餐场景带货片" --cat 食品饮料 --out run/shotlist.json ``` - 选卡:同品类(归一类目 `cat`)硬加分 > 时长贴近 > 已验 > 结构丰富;判废卡和非带货卡不参选。`--card ` 可指定。 - 时长只对用户目标校验(给了"15-20s"就只认它);台词里读法有歧义的地方模型会直接写 `<屏上|念法>`。 - 旧品名/品牌/产地/机制数字黑名单,残留即打回重写。 ## 例文卡库 + 资产库(10-09 从 Kimi 线适配) **例文卡库**(`punch_cards/`,卡片 JSON 不入 git;唯一入口 `cards.py`):一张卡 = 一条爆款的逐拍结构 (beat_function / felt_intent / 台词 / 屏字 / 运镜 / 声音设计)。B 模式找参照、C 模式选模板都从这里取。 - 状态三态:`unverified` / `verified` / `rejected`。判废的卡永不被检索/选中。 - 类目看 `cat`(14 类归一词表),原 `category` 大半是整段商品标题,别拿它比。 `cards.py rules --write` 关键词粗分(免费);`cards.py classify --recheck` 大模型精分(套餐可用时跑)。 - 检索:`card_find.py --beat 钩子 --cat 食品饮料 --hook-type 痛点供给` - 抽检:`card_verify.py sample --batch <日期>` 随机抽 → 人对原片判 过/废 → `card_verify.py settle <单子>` (废的标 rejected;废数 ≤ 允许数才整批放行)。 - 收卡:自产 `card_harvest.py --cat …`;外部批量 `batch_reverse.py <素材目录>`(要先 `beat_tag.py --apply`)。 **资产库**只有一个:`config.ASSETS_LIB`(默认 E:/jimeng/assets_lib),唯一入口 `assets_lib.py`。 `cast/`(人物,主播也是 cast 一员)· `scene/` · `products/`(形态 + 别名 + _916 竖版)· `clips/`(只收验收片)。 assets.json 里写引用不写路径,换机器不用改: `"host_anchor": "@host:西梅主播"`、`"products": {"包装袋": "@product:西梅麦片/包装袋正面"}`。 登记:`assets_lib.py enroll-host …` / `assets_lib.py enroll-product …`;查看:`assets_lib.py list`。 **大模型出口只有一个**(`config.ark_endpoint`):套餐(agent-plan)/按量由 key 决定,每个进程第一次调用时 打印实际通道。`DAIHUO_ARK_PLAN=0` 显式退回按量(按 token 计费,先征得用户同意)。doctor 会真调一次探针。 ## 第0步:体检(每次开跑前必做) ```bash python3 /doctor.py ``` 按性质分级处置依赖,**不要闷头自动装重型依赖**: - **ffmpeg(轻)**:缺 → 可自动装 `apt/brew install ffmpeg`。 - **即梦CLI + Seed key(凭证)**:缺/失效 → **提示用户处理**(登录、提供key),agent 硬试无用。 - **CosyVoice(重型GPU,配音用)**:缺 → **不默认自动装**。给用户降级选项并让其选: 1. A模式且台词没改 → **直接复用原片音频**(`ffmpeg` 从原视频抽,免TTS,最省) 2. 接**云端TTS** API(无需本地GPU) 3. 用户**自备配音** 4. 用户决定装本地 CosyVoice(几GB+GPU,大投入,该用户拍板) 核心链路(反推+生成+装配)可跑即可开工;配音缺则走上面降级。 ## 第0.5步:建项目文件夹(10-10,硬规则) **每条复刻一个项目文件夹,所有中间产物都进去;skill 目录里一个字节都不许写。** ```bash python3 /project.py init "G:\复刻测试\男装.mp4" # 默认建在视频旁边:G:\复刻测试\男装_复刻\ python3 /project.py init 目标.mp4 --dir "用户指定的位置" # 用户说了放哪就放哪 python3 /project.py init --dir "用户指定的位置" --name 西梅早餐 # C 模式没有视频:先问用户放哪 ``` - 最后一行打印 `RUN=<项目路径>`。**下文所有 `run/` 都指这个路径**,cd 进去再跑。 - 项目里机器用的子目录沿用英文名(clips/ audio/seg/ prompts/ refs/ assets/ tmp/);**人只看 `成片/`**, FULL.mp4 / 成品 / 字幕 / 评委报告都输出到这里。跟用户报告时给 Windows 路径(`project.py` 已打印)。 - 目标视频会复制到 `src/target.mp4`,原片挪走或改名不影响项目。 - 14 个入口脚本带守卫:输出路径落进 skill 目录直接拒绝。**被拒了就去建项目,别绕守卫。** - 临时文件(抽帧、测试切片)放 `run/tmp/`,不放 skill 目录,也不放系统 /tmp(用户找不到)。 - 老项目(`E:\jimeng\runs\*`)照旧能用,结构兼容;只是成片在 `output/` 而不是 `成片/`。 ## 输入(问用户要) 1. **目标视频**(要复刻的爆款,路径) 2. **产品素材**:干净产品图,**目标视频里出现的每一种形态各一张**(裸品/剖面/礼盒/内包装/单根…),官方电商图最佳、别用视频截图。**具体要哪几张,第1.5步 `needed_assets.py` 反推后会给你精确清单**——按清单准备,别漏形态(漏了即梦会自由发挥编产品,实测坑)。填进 `assets.json` 3. **音色**:A模式默认复用原音;走"换声不换演"(vc_segments)时**建议用户提供干净的目标音色参考**(安静环境、无BGM无杂音、几秒即可,信噪比≥30dB——脏参考的底噪会被学进产物);用户不提供则用内置干净音色(voices/:女声古丽93dB·女声萍萍76dB·男声广智49dB,vc_segments 省略 --target 即用);TTS重配走 CosyVoice 音色库 4. 确认横竖屏/时长无异常(doctor 不管这个,ffprobe 一下) `assets.json` 格式(前3个必填,后3个按需): ```json {"host_anchor":"assets/host.jpg", "product_desc":"高小参鲜蒸海参,深蓝金色包装", "products":{"hero":"assets/单只正面.jpg","hero_alt":"assets/剖面.jpg", "礼盒":"assets/礼盒.png","内包装":"assets/内包装.png","单根":"assets/单根.png"}, "host_desc":"齐肩黑发,白色圆领上衣,居家亲切感", "forms":{"hero":["精华","滴管","膏体"],"瓶身":["玻璃瓶","泵头"]}, "product_verbs":["涂抹","上脸","拍打"]} ``` - **host_desc**(推荐):主播外形一句话,会钉进每个口播段提示词——治"跨段穿着漂移"(实测坑) - **forms**:产品形态别名表——默认表偏海参/生鲜,**换品类必配**,否则锚图路由匹配不上 - **product_verbs**:该品类的产品操作动词——完备性关卡靠它查"漏动作",默认表偏食品 - **★★人物锚定图铁律:一律 text2image 生成【新身份】,绝不从原片抽帧**(06-30 定,08-11 违规一次)。 抽原片帧照搬的是**出镜人的真实肖像**,复刻他人视频时这是拿别人的脸去生成内容,合规上不该做。 即梦 `text2image --model_version 5.0 --resolution_type 2k` 生一张是**免费**的,没有任何理由省这一步。 ⚠**别把"产品锚图可用原片抽帧"这条串到人物上**:那条的前提是【自己的素材、自己的产品做自复刻】 (07-24 七子白),两个前提在"复刻他人视频"时都不成立。我 08-11 就是这么串错的—— 顺手把产品的做法套到主播头上,还套到了别人的片子上。纯产品无人视频可省 host_anchor。 ## 管线(A模式) ``` 1 反推 python3 seed_reverse.py