Back to skills
SKILL.md
daihuo-fanpai
DSecurity复刻/仿拍爆款带货短视频 —— 反推目标视频分镜,用即梦(Seedance)重新生成镜头,配音拼接成片。A模式(忠实复刻:原台词原产品) / B模式(跨类目迁移:换产品+千川本地化脚本)。触发:复刻带货视频、仿拍爆款、把这条视频用我的产品重做、抖音带货素材复刻、即梦复刻。
- 42 stars
- 0 votes
- 0 copies
- 0 views
- Added September 19, 2026
Works with
Security analysis
42/100- Pipes output to a shell interpreter
- Uses curl or wget to download content
- Downloads and executes remote scripts — classic supply chain attack
Pro scans all 19 files and shows the line behind each finding
npx -y skills add wangcanyu/daihuo-fanpai --agent claude-codeAre you the author of daihuo-fanpai?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/wangcanyu-daihuo-fanpai)---
name: daihuo-fanpai
description: 复刻/仿拍爆款带货短视频 —— 反推目标视频分镜,用即梦(Seedance)重新生成镜头,配音拼接成片。A模式(忠实复刻:原台词原产品) / B模式(跨类目迁移:换产品+千川本地化脚本)。触发:复刻带货视频、仿拍爆款、把这条视频用我的产品重做、抖音带货素材复刻、即梦复刻。
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+**--speaker 处理版音轨**) · `patch_cast.py` 群戏/多人补丁(人数硬约束) · `prep_assets.py` 产品图清洗(白底化/去手持+sidecar) · `qc_assets.py` **资产入库闸(身体部位/水印/透明底/无关道具/生图小字复检)** · `gen_segments.py` 生成 · `qc_lipsync.py` 帧级口型质检 · `qc_defects.py` 四类缺陷定量抽帧 · `grid_off.py` 多卷同网格对照 · `grid_words.py` 词标签帧网格(反推/审查按短语查画面) · `dualtext.py` 显示|发音双文本 · `word_align.py` 词级对齐+语义锚(贴字绑锚自动重排) · `is_speech.py`/`voice_cmp.py` 音轨判据 · `qc_voice.py` 声纹聚类对账(可选重型) · `calibrate_turns.py` 说话轮次时间码校准(可选,需火山ASR key) · `tts_segments.py` 配音 · `assemble.py` 装配 · `deliver.py` 交付(剪映草稿/成品) · `doctor.py` 体检。
验收必过 `references/验收清单.md`(八维度,前4抽帧、后4必须看视频)。
生成后端(可插拔,契约 `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倍,已退役)。
> **要改造/换引擎/接手本 skill?先读 `DESIGN.md`**(设计理由 + 数据契约 + 扩展点)。参考样例在 `references/`。
## 两种模式
- **A·忠实复刻**:目标=原原本本复刻(台词原样、产品同一个)。不改脚本、不接千川。本文件覆盖。
- **B·跨类目迁移**:换成用户产品 + 千川方法论本地化台词。B 在 A 基础上,于「规划」后、「配音」前插入**脚本本地化**一步,只改 `segments.json` 的 `dialogue` 字段(接口不变,A 的引擎一行不动)。
- ★**学习源的主次(09-05 定):例文卡是主要学习源,理论只当评审卡口**。
例文卡在 `punch_cards/`(爆款台词的结构化标本:逐段 beat 标注+台词+judge 分,
三轴分类见库内 README);本地化某段前先 `python3 card_find.py --beat <该段功能> --type <片型> --category <类目> --price-band <价格带>` 捞同功能例文段当仿写参照。
千川理论包(`qianchuan/`,私有不在仓)只管合规红线与三看漏斗诊断。
每跑完一条复刻顺手 `card_harvest.py` 收一张卡——库是自己跑出来的实证爆款。
- 方法论弹药包在 `qianchuan/`(蒸馏自4套千川课,**私有,不在本仓**):`00-INDEX`导航 · `01-选题与卖点`(三级卖点S/A/B) · `02-跨类目复制与机制`(★纪律:结构不动只换产品/卖点/数字 + 买赠堆叠 + 信任前置) · `03-句式库`(锚定/伪机制/指令式) · `04-诊断rubric与红线`(三看漏斗90分 + 合规)。
- ★**B 模式本地化纪律(09-05 千川课精读定版,替代"每段平均用力改词")**:
① **钩子段重写**:按目标人群选 hook_type(14 类见 `punch_cards/TAXONOMY.md` 轴1),
`card_find.py --beat 钩子 --hook-type <类型>` 捞同类例文仿写;
② **痛点/卖点段最小改动**:只换产品名/数字/机制,结构句式照抄;
③ **CTA 保留**;④ **变体迭代换钩子类型,不换台词细节**(全域 GMV 赛马,A 爆了出 A1~A5 会被压死);
⑤ 可选成对:降智直给版 + 升智反踩版("那些说XX的都是吹牛逼"),抓易信+有戒心两拨人。
⚠痛点必须带**后果链**(慢→迟到),只讲现象是残次品;95% 的人看不到结尾,别在结尾使劲。
- 操作:按 `qianchuan/LOCALIZE.md` 流程 → 向用户收事实包(品牌/主卖点/活动/价格/赠品/产地/异议点/证据锚点),按**四层事实账本**分级(09-08 借鉴即创权威感带货 skill):**用户明确提供 > 参考图可见 > 保守表达("可以关注/适合想要…的人") > 必须省略**(没有锚点的报告/证书/机构/数据/功效/用量/见效周期一律不写);★**活动缺失=全文禁价格词**(价格/折扣/赠品/限时/限量/清仓/便宜一个都不许进台词和贴字,CTA 只留行动不带交易刺激);★**证据缺失=全文禁权威暗示**(白大褂/专家/证书/检测报告类身份和布景都不许出现,权威感只用可见商品事实+清楚的选择标准)→ 逐段改 dialogue(**默认走纪律不自由发挥**)→ 存 edits.json → `python3 localize_apply.py segments.json edits.json`(自动同步口播段 prompt 的 台词{},并对字数偏差告警)→ 给用户过目 → 继续 tts。生成前 director.py 的 `authority_evidence`/`promo_anchor` 两条闸机械兜底。
- ★**读解对照闸(09-05 新增,治"本地化把原片转化结构写丢")**:
① 反推后跑 `python3 beat_tag.py <video> --shotlist run/shotlist.json --apply` —— 逐镜标注
`beat_function`(钩子/痛点/机制讲解/卖点证明/价格机制/信任背书/CTA/过渡)+ `felt_intent`
(观众该感到什么)。标签【永远不进生成提示词】,只当本地化对照表(A 模式纯记录,
人审 segments.md 时也能一眼看出分段合不合理)。
② localize_apply 之后、tts 之前必跑 `python3 localize_check.py run/segments.json --shotlist run/shotlist.json`
—— 逐段核"新台词还承担原功能吗/还能引发原情绪吗",漂移段响亮列出(exit 1),别带病进 tts。
⚠情绪载体可能是贴字/画面不是台词,闸已带 onscreen_text 对照;贴字也要本地化的片型注意这一点。
- **评委(可选)**:生成后拿成片抽帧 + `04` 三看漏斗打分,不足项给整改建议。
## 第0步:体检(每次开跑前必做)
```bash
python3 <engine>/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,大投入,该用户拍板)
核心链路(反推+生成+装配)可跑即可开工;配音缺则走上面降级。
## 输入(问用户要)
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 <video> --out run/shotlist.json
→ Seed2.1Pro原生视频,一次出:硬切分镜+台词转写+对齐+product_role+key_colors
→ 场景检测默认0.15(0.3会漏同机位跳剪);台词硬规:无人声的字幕/花字只进onscreen_text
1b 双反推(可选,重要投放片推荐——反推多花的token省的是Seedance重抽的钱)
python3 k3_reverse.py <video> --out run/shotlist_k3.json
→ Kimi K3 API腿(同SCHEMA同切点源,可与第1步并行后台跑;K3全程开思考,慢,必后台)
python3 merge_reverse.py run/shotlist.json run/shotlist_k3.json --video <video> --outdir run/merge
→ 出 dossier.md(逐镜并排+性别/运镜分歧信号灯+静音闸警告)+frames/(分歧点自动抽帧)
+merged_draft.json(Seed实体基底+__alt_*运镜候选)
→ agent按铁律裁决:实体/屏字信Seed·运镜时序信K3·互斥分歧看帧·静音区文字不进台词;
裁决时吸收__alt_subcuts细切点与绕拍/侧机位时间线进camera/action,
删净__alt_*字段后覆盖 run/shotlist.json(下游只认标准schema)
→ ★无 KIMI_API_KEY 时,k3_reverse 脚本跑不了,但**agent 本人就是活体 K3 腿**(09-03 定):
agent 直接读视频(ReadMediaFile 支持视频)/按切点抽帧,亲自复核 Seed 报错的重灾区——
camera 运镜、host_on_camera、实体长相,重点复核钩子镜(见"反推后必查③")。
08-07 已有 agent 亲自当反推引擎的完整先例。别因为脚本缺 key 就把对账腿整省掉。
1.5 清单 python3 needed_assets.py run/shotlist.json
→ ★列出这条视频需要哪些产品形态图(礼盒/内包装/单根/裸品/剖面…)+ assets 骨架
→ 拿这份清单向用户要图(每个形态都要,漏了即梦会自由发挥编产品),填好 assets.json
2 规划 python3 plan_segments.py run/shotlist.json assets.json --out run/segments.json --min-dur 4 --hard-max-cuts 4 --by-leg
→ ★**--by-leg 按生成腿分段**(08-10 定的主力架构):同段必须同腿,并给每段打 `leg` 标记
package_text 平面印刷图案 → **mmh3**(¥0.11/秒,logo毛笔字三列小字实测零错)
hero_real 三维形体/质感 → **jimeng**(四方对照唯一锚得住的;一票否决,同段有它整段走即梦)
dynamic/none 人物氛围空镜 → **mmh3**(无形体保真要求,取最便宜)
物理动作难的镜 → 人审在 segments.md 里把 leg 改成 `jimeng25`(2.5的真正强项)
→ ★内置**临界点合并**:拆细与最短时长是对冲的(单独拆按 min_dur 付费,并进邻段只按真实跨度付)。
临界 = min_dur × 本腿单价 ÷ 邻段单价,mmh3 并进即梦段 = 4×0.11÷0.742 ≈ 0.6秒 →
短于此的 mmh3 碎段自动并回(实测撞见 0.04 秒碎段却要付 4 秒的钱)。
⚠反向不并:hero_real 碎段再短也隔离——形体错整段废,且并进去会把整段拖成即梦价(贵7倍)。
→ 规划完会打印**成本估算**(按腿分列),烧钱前先看见钱花在哪
→ 自动拆超长镜/分段(≤12s≤3切)/路由(口播mm·hero/包装i2v)/写提示词(带全产品动作)
→ ★快切片必开【填满模式】:后端有最短生成时长(即梦4s/海螺h3 5s),每段跨度才1~3秒时
等于白付下限的钱。`--min-dur <后端下限>` 让不够长的段继续并镜;**必须同时给
`--hard-max-cuts`**(不设闸会把9个镜头塞一段,超即梦"硬切5崩"红线和h3已验的3刀)。
本片实测:10段50s → 8段42s,浪费39%→28%。默认 --min-dur 0 = 旧行为不变。
→ ★人审 run/segments.md:看分镜卡片 + 完备性关卡的"漏动作"警告,微调提示词/锚图/台词
2.15 ★★判片型(08-23 新增,立项档案之后、规划之前)
python3 route.py run/
→ 从 profile.json + shotlist.json 抽结构特征,查 references/film_types.json 判型,给出后续生成方式。
★为什么必须先判型再生成:同一个改动在不同片型上一个是解药一个是毒药。
实测(榴莲千层 08-23,双臂 n=3,统一网格):
【画外主说话人】的片子必须**剧本先行**(台词写进 prompt 让模型自己发声)——
画外音窗口里出镜者张嘴的帧从 37%(极差1~11,三卷崩一卷)降到 5~13%(六卷无一崩);
而【主播出镜口播】恰恰相反:只有一个说话人、没有归属歧义,剧本先行只有丢原声的代价。
★片型库的键是【结构特征】不是题材名。"街头挑战/开箱/探店"不决定生成方式,
"主说话人出不出镜/段内换不换人说/产品有没有可读文字"才决定,而这些反推已经产出。
★没命中任何片型时**不要照着最近一条片硬套** —— 回 film_types.json 加一条,
把这条片的结构特征和路由写清楚(与 director.py 的 RULES 同一个规矩:翻一次车加一行)。
2.2 ★★立项档案(所有片必做,反推之后第一件事)
python3 profile.py run/目标.mp4 --shotlist run/shotlist.json --out run/profile.json
→ 回答"这是什么片型":机位形态(胸挂POV/手持自拍/旁观/固定)、**拍摄者是谁、出不出镜、
说不说话**、结构化演员表、声音层次、叙事阶段。
→ ★**必须人过目**:它驱动路由、机位措辞、说话人归属和演员表,判错了下游全错。
→ 不做这步的后果(08-21 榴莲千层):那条片主播只露手却是主要说话人,
管线里没有"拍摄者"这个概念 → 8段全路由错、他的话被派给路人对口型、
第一视角拍成了旁观视角。**每个环节各自猜,猜错也没人知道。**
2.3 ★演职表与资产(群戏/街采片必做;单主播片跳过)
python3 needed_assets.py run/shotlist.json # 报"要哪些产品图 + 哪些人设图"
python3 cast_plan.py run/shotlist.json --out run/cast.json # 聚出角色候选
→ ★**人过目 cast.json**:聚类是关键词匹配,可能把两个人合成一个(别名宁窄勿宽,
合错=两个不同的人共用一张脸,比没有人设图更糟)。拿不准就回原片抽帧看,一条 ffmpeg 定案。
→ 单主播口播/vlog 会被 cast_plan 的"单主播片闸"拦下并提示不要建演职表(多日换装会被聚成假角色)
python3 make_cast_sheet.py --batch cast_todo.json # 生成 3:4 人设图入资产库(即梦订阅内免费)
→ 规格是 08-13 A/B/C/C2 实测定的:3:4 上排三肖像+下排三全身,灰底影棚。
单张正面锚图会出重影,横排六视角会把人画老画暗 —— 别自己改规格。
2.35 ★资产审片台(本地网页,把"看不见"的那一关变成看得见)
python3 asset_board.py --run run/ --out board.html # 自包含 HTML,双击即开,不联网
→ 三栏与 needed_assets 同口径:【要你准备】产品 /【AI生成·你审】人物、场景
→ 人物卡 = 原片截图×3 + 已生成的人设图【并排】,一眼判断"是不是同一个人"
(08-15 差点把「黑短袖大哥」和「黑背心运动大哥」绑成同一张脸,就是这种判断)
→ 页面上改名/改描述/勾确认 → 点「导出决策 JSON」→ 放回 run 目录
python3 apply_board.py --run run/ # 写回 cast.json + 资产库
→ ★标了"其实是别人,拆开"的**不自动处理**:拆成谁和谁是语义判断,猜错比不拆更糟
★为什么是本地文件不是云端页面:用户网络不稳时 claude.ai 打不开(08-20 实撞:
连 GitHub 直连都连不上,要靠代理)。本地 HTML 离线可用,是这个工具的主场。
2.4 ★说话人标注(有画外旁白的片必做)
python3 speaker_tag.py run/目标.mp4 --shotlist run/shotlist.json --profile run/profile.json --cast run/cast.json
→ 出**带时间戳的说话轮次**(不是一镜一个说话人:长段里问答来回好几轮,一个标签没法执行)。\n → speaker 三选一:`operator`(画外拍摄者→全员闭嘴)/ 在册角色 / none。\n 实测榴莲千层 48 轮里 29 轮是 operator —— 六成的话不该有人对口型。
→ ★人审那张对照表(带★的是信心非"高"的);归不上册的说话人会单独列出来交你定夺。
→ 确认后 --apply 写回 shotlist 的 speaker/voice_mode。
→ 不做这步的后果:旁白镜里所有人都在对着画外音张嘴(小禾家 44 个台词镜里 15 个是旁白)。
→ ★两个可选加强(08-23,缺一不阻断):
`python3 calibrate_turns.py 目标.mp4 --speaker speaker.json` —— 用火山ASR锚点把模型报的
轮次时间码对齐到音频实际位置(无 VOLC_ASR_API_KEY 自动跳过;守卫拦截宁可不校);
`python3 qc_voice.py 目标.mp4 --speaker speaker.json` —— 声纹聚类对账,VLM判轮次+声纹判同簇,
两票一致才定案,分歧进人审(重型依赖 ~/.venv-voice,缺则纯 VLM 单腿)。
2.44 产品图清洗(可选,图脏/带手/背景杂时;09-03 新增)
python3 prep_assets.py 真图.jpg --out assets/正面白底.png [--upscale 4k]
→ 即梦 image2image(5.0/2K,免费)白底化/去手持,产物写 sidecar(<产物>.gen.json)记录真图来源
→ ★大字(logo/品名/净含量)锚得住;**小字不可信,分两档**:乱码档(即梦,密集小字变乱码)/
编造档(GPT-image2 等,错得像真的,更隐蔽)——所以【密集小字图(配料表/营养成分表/日期)
一律不走生图,走真图裁剪】,走了生图的产物必须过 2.45 的小字复检
2.45 ★资产入库闸(收图的那一刻就查,别留到成片才发现)
python3 qc_assets.py assets.json # 或直接跟图片路径
→ 机械层:透明底/纯白底(尺寸不可表达)/分辨率;VLM 层(有 ARK key 自动跑):身体部位/可读文字水印/无关道具
→ ★产品图里出现【手】当场报警 —— h3 会连参考图构图一起抄,三只手事故(榴莲千层 v6)就是这么来的;
尺寸参照要用中性参照物或文字锚点,绝不能用手(例外:目标镜头本身就是"手持产品"构图时,
带手真图与目标一致不算违规,09-03 烧烤料#21 镜实证)
→ ★带 .gen.json sidecar 的 AI 重绘产物自动做【小字复检】:逐字段对照真图,
报"编造档"(可读但错,★★最危险)与"乱码档"(不可读)——编造档一眼看不出来,别靠肉眼
2.5 h3提示词(走 h3 腿时需要:mmh3 或 rh)
python3 h3_prompt.py run/segments.json --shotlist run/shotlist.json --assets assets.json --out-dir run/prompts
→ plan 出的是【即梦风格中文提示词】,h3 吃不了 → 本步转成官方 Ref2VA 六段式:
机械部分全自动(切点MM:SS.mmm换算/Picture编号与逐图声明/retention表/人数硬约束/
★台词自动剥离/说话或闭嘴指令/贴字指令过滤/每镜钉死环境防参考图带跑背景);
中文动作用 Ark 一次批量译英(--no-translate 可关,留中文由 agent 润色)。
→ 敏感词**只报警不自动改**:h3 拒稿不计费,先按原样试,被拒再消毒
(08-09 教训:预防性把"针管"改成"美妆工具柄",道具直接走形,钩子废了)
→ 产物 prompts/<seg>_h3.txt + images.json,**并自动灌回 segments.json**
(★gen_segments 只读 plan 里的 prompt/images,从不读 prompts/ ——
08-16 就因为没灌回,拿旧提示词白跑了一整轮 17 段而全程不报错)
→ 单段参考图自动限流到 3 张(RHTV 实证:参考越多一致性越弱),
优先保住【有台词的说话人】的人设图 + 1 张产品图
2.8 ★约束闸 python3 director.py run/segments.json --shotlist run/shotlist.json [--prompts-dir run/prompts] [--strict]
→ **生成前的最后一道闸,别带着缺失去烧钱**。它检查的不是"提示词写得漂不漂亮",
而是"某个必须的约束在不在"——统计全部翻车案例,**没有一条是表达问题,全是约束缺席**。
→ 9 条规则各自记着"是被哪次事故教出来的":人数硬约束/施术受术方(左右)/节拍时间分配/
产品外观优先级归锚图/逐镜着装已剥离/贴字特效已剥离/第三方IP已剥离/状态参考图环境钉死/
台词不进h3提示词。命中"该加而没加"就报警并给出可直接抄的修法。
→ ★**每翻一次车就往 director.py 的 RULES 加一行**——把"想到要加什么约束"固化下来,越用越可靠。
08-11 回归验证:翻车那版提示词被精确抓出 2 处缺失(左右手/节拍),修正版全绿。
3 配音 python3 tts_segments.py run/segments.json --out-dir run/audio/seg
(台词支持 <显示|发音> 双文本与 @{锚点};数字/品牌读音写 <898|八百九十八>,别指望黑名单)
3b 锚点 python3 word_align.py run/segments.json --audio-dir run/audio/seg \
--out run/anchors.json --report run/锚点对照表.md
(配音变了就重跑这一步,贴字轨绑了 onscreen_anchor 的条目自动跟着重排;
对照表里的 omission/replacement 是 TTS 漏读错读的证据,进人审)
(降级:复用原音时跳过此步,改用 cut_audio.py 按段切原片音频:
python3 cut_audio.py run/segments.json --video 原片.mp4 --shotlist run/shotlist.json --out run/audio/seg \
[--speaker run/speaker.json]
★内置即梦2秒上传下限闸(静音垫尾),并顺产镜级 timing.json 精确字幕轴;
★只垫到2s下限别垫满规划时长,垫满会触发gen误加时每段白烧1秒;
★--speaker(08-23,治说话人错乱缺陷①):额外产 <seg>.drive.wav 处理版音轨——
operator/none 轮次被压低,喂给 mm 腿的驱动信号里只剩"该张嘴的人的声音";
gen_segments 自动优先吃 .drive.wav,装配仍用原版 <seg>.wav,观众无感)
(第三档·换声不换演:python3 vc_segments.py run/audio/seg --target 音色.wav —— Seed-VC把
原片切段音频转成目标音色,表演节奏/语气逐帧保留,治"复用原音怕查重/重配丢表演"两难;
⚠️整段单音色,群戏需先说话人分离,未实现)
4 生成 python3 gen_segments.py run/segments.json --clips run/clips --audio-dir run/audio/seg --auto-leg --concurrency 3
→ ★**--auto-leg 按每段 leg 自动派发**(配合 --by-leg 使用):mmh3 段进并发池(实测真并行)、
即梦段走串行(通道并发=1)。一条片子里两条腿各跑各的,成本和质量同时兼顾。
→ 串行(VIP并发=1),口播段双图对口型,hero/包装段动你真图。断点续跑,--dry-run先看
→ ★**即梦默认档=`seedance2.0` 非VIP慢速排队**(8积分/秒,比VIP便宜43%)。代价是真排队
(实测18分钟起),轮询预算已自动放到60分钟;超时不代表失败,submit_id 在 meta.json 可补抓。
急件/要1080p·4k → `--jimeng-model seedance2.0_vip`;长段不想切碎 → `seedance2.5`(26积分/秒,时长上限30s)。
→ **五条生成腿**:即梦CLI(季卡12320积分/月,产品形体锚定最准) | 火山Ark(--i2v-backend ark,按token,★含人脸参考图政策级拦截,只走纯产品i2v) | 小云雀(--i2v-backend xyq,独立credits池) | RunningHub海螺h3(--i2v-backend rh / --mm-backend rh,钱包≈¥0.48/秒)。CLI积分紧张时把i2v卸给Ark/小云雀省池子。
→ ★**口播mm段有两条腿**:即梦(默认,口型最稳)和海螺h3(--mm-backend rh,audioUrls驱动口型,08-07参阿婆46s片实证)。积分耗尽时口播不再卡死,但要花钱且首用须跑 qc_lipsync 验收。
→ ★走 h3 腿(mmh3/rh)前先跑 `h3_prompt.py`(下方 2.5 步)出六段式提示词,别拿即梦的中文提示词硬喂
→ ★用 h3 腿前先读 `references/h3/README.md`:**审查只审prompt文本不审图/音→台词一律不进prompt**、产物多送0.5s尾帧、结果URL只活24h、Ref2VA六段式提示词与 [Shot N] At MM:SS.mmm 段内调度。
→ ⚠小云雀腿 07-17 实测(mini_lite档):i2v 是**参考重绘语义**非首帧锚定——构图/质感优,但**品牌文字会绘错**且左上角烧死「AI生成」水印→**只接无文字要求的氛围/质感镜**,带包装文字的镜必须即梦。xyq_gen.submit_mm(带--audio口播)仍是实验性。
→ ★用小云雀腿前先读 `references/xyq_notes.md`:与即梦声音范式根本不同(台词/音效写进prompt模型自生语音 vs 即梦wav驱动口型)、prompt黄金公式、实测记录与分工定位。
5 装配 python3 assemble.py run/segments.json --clips run/clips --audio-dir run/audio/seg --out run/output/FULL.mp4 [--trim-to-plan] [--master-audio 原片.mp4] [--size 1440x2560]
→ ★A模式复用原音的正解 = `--trim-to-plan --master-audio 原片.mp4`:先把每段画面裁回
segments.json 的 end-start 跨度(但不短于本段配音),再整条原音直铺。
不裁则全片被撑长(plan 的 duration=ceil(end-start) 本就多到1s,海螺还多送0.5s尾帧),
段尾出现"音已停画还在演"的空窗;逐段拼音轨还会把误差累加成漂移。
装配后会硬校验画面总长 vs 原音,差>0.3s 报警(有缺片时别用 --master-audio)。
6 评委 python3 judge.py run/output/FULL.mp4 [--target 原片.mp4]
→ Seed2.1Pro 按三看漏斗90分制打分+整改建议;--target 时成片+原片一起上传做真保真度对比
→ 成片>35MB 自动压 360p 小版上传(base64 上限)
7 字幕 python3 export_subs.py run/segments.json --shotlist run/shotlist.json --out run/output/FULL
→ FULL.srt(句级粗对齐字幕)+ FULL_贴字清单.md(原片屏上贴字的时间点+原文)——剪映照抄
8 交付 python3 deliver.py run/segments.json --mode draft|final|both --clips run/clips --audio-dir run/audio/seg --shotlist run/shotlist.json [--trim-to-plan --size 1440x2560]
→ ★装配开了 --trim-to-plan 的话交付也必须开,口径要一致:否则视频轨用未裁的原始clips
而字幕轨是原片时间轴,两轨对不上(08-09实测草稿51.7s vs 成片30.4s)
→ draft:★剪映草稿(推荐)——视频轨逐段(段边界即切割点)+配音轨+字幕轨逐句+贴字参考轨+空BGM轨,
素材copy进草稿目录自包含;打开剪映草稿箱直接精剪,不用再切拼好的片子
→ final:在 FULL.mp4 上烧字幕+可选 --bgm 混音,出"能直接投的及格版"(FULL.mp4 本身不动,它是judge输入)
→ 字幕轴优先吃 audio/seg/timing.json(tts产出,逐句真实时长);缺则按字数占比粗对齐
```
> 评委分低多半是"原片结构本就烂"(口播/多卖点/开箱)——忠实复刻分低正常;要高分走 B 模式方法论优化(单卖点+三倍画,见 qianchuan/04)。
**人审闸口(第2步后)是硬要求**——生成前必让用户过 `segments.md`,尤其看完备性警告和 hero 段锚图选得对不对。这是把"垃圾进垃圾出"挡在烧积分之前。
## ★冲突裁决总纲(Authority Order,09-05 吸收自上游 seedance-2.0 v6.7)
我们的头号病是"两句话打架"(director.py 矛盾闸记载的 9+ 次)。每条事故都是事后加正则灭火,
这一页是**事前裁决**:两个要求打架时,低优先级的让路;删哪句要说出来,不许"再加一句更强的"。
1. **平台安全/审核**(敏感词、人脸政策)——顶。撞上只能消毒/换腿/换虚拟人像,没得谈
2. **音频驱动信号**——mm 腿音轨里的内容压过一切文字约束("文字压不过驱动信号"是 08-22 定的架构级事实);要人不张嘴,去压音轨(drive.wav),别加文字
3. **锚图像素**——参考图里有的东西 > 任何文字描述;想排除图里的东西,**改图**,别写排除句(08-22 作废条款)
4. **身份绑定**(人设图/host_desc 一致性声明)——但佩戴类注意:identity 只钉脸和穿着,发型/佩戴状态让位给产品演示需要(09-04 睡帽)
5. **动作保真**(反推 action 原样进提示词,完备性关卡)
6. **结构化字段**(shotlist/segments 的 schema 字段)> 自由文本描述
7. **director 各条约束闸**——彼此打架时按本表定位各自层级
8. **风格/质感措辞**("电影质感"这类)——最先牺牲的层
9. **默认模板值**(TAIL、默认措辞)——底层垫背
⚠ 牺牲某条时必须在人审稿/复盘里写一句"X 给 Y 让了路",否则下次有人会把它当新 bug 再查一遍。
## 关键规则(写提示词/生成时)
- **转换必带全「主体+动作」**:反推里"手把海参掰开"这类动作,写提示词时必须原样带上,别概括成"海参剖面"(否则怼静态内脏→诡异)。plan_segments 已结构性保证 + 完备性关卡兜底。
- **hero 食品镜**:优先最完整/有食欲的产品形态 + 轻运镜(切/掰有动作),**别推近怼进质感/剖面**。
- **真实质感/包装文字 → 动你的真图(image2video)**,别纯生成:海参质感、包装"高小参"字,image2video轻运镜能保住;text2video/重生成必糊。
- **口播台词与配音逐字一致**,否则口型提前结束(即梦坑)。
- **产品材质写死**(颜色+材质+形状),避审核敏感词(国货/治疗/液体接触皮肤)。
- **TNS消毒词表(洗护/身体类必查,07-24量产16条实测)**:吊带/浴裙/抹胸/裸露肩颈/腋下清洁/瞪大双眼张嘴/泡沫遮口鼻仅露眼 → 圆领家居服/展示颈部以上/惊讶表情/泡沫覆两颊。TNS失败**不扣积分**,先原样重试(人脸误拦是概率性,常一试就过),再消毒重试,三死出手动工单(网页版拖拽,官方QA:平台内引用的图不过真人脸检测,下载重传才概率拦)。
- **实体拍必抽帧终审(铁律,张九九3血案)**:凡"产品长相/道具/谁在场"类拍点,写提示词前必抽原片帧验证。K3实体幻觉惯犯(把三角皂看成馒头/把卸妆棉看成洗脸扑/把被窝看成冰箱);双反推裁决**按字段不按整包**——时间轴/运镜可信K3,实体一律帧证据说话,Seed实体基底地位不因K3连胜动摇。
- **旁白型视频的路由陷阱(08-09 已在 plan_segments 结构性修复,不必再手构)**:全片无台词时旧版 plan 会把人物表演镜误路由成 i2v 产品质感模板(钩子直接丢失)。现在 `seg_role` 认【显式 `host_on_camera=true`】即判口播,无台词也走 mm(拿得到主播锚图,提示词自动写"本段无台词,口型闭合");仅露手的 hero_real 镜(host_on_camera=false)不受影响仍走 i2v。旧 shotlist 无该字段则行为不变。两腿反推的"台词"互相打架且和贴字雷同=贴字幻听,dialogue 全清空按旁白处理,原音复用自带真VO不受影响。
- **品牌词剥离**:原片里的第三方品牌(包袋/粉扑/假货标)一律不进提示词;打假型的假货道具写"无标识粗糙皂"。**第三方 IP 同理**(电视里在放的动画/影视),`h3_prompt.py` 对《》书名号会报警,需人工从 shotlist 抹成泛称。
- **★★锚图的描述只准描述【这张图里有的东西】(08-09 美吉吉2 血案,治根)**:`assets.json` 的 `product_desc` 常常一句话同时描述多个形态("奶黄三角皂体…米粉色三棱锥纸盒印有李时珍logo…"),`h3_prompt` 早期把整句贴到每一个产品锚图的定义上 → 那张图里只有皂,文字却说"这张图还有个印着logo的纸盒",**等于主动指使模型去画一个它没有任何参考的东西**,结果凭空多出方盒子、「李时珍」写成「李迁新」、整面文字镜像反写。
修法:`assets.json` 加 **`form_desc`**(逐形态描述,键同 products),`h3_prompt` 优先用它;缺省时退回保守句"只画 <Picture N> 里可见的,**不得添加图中不存在的包装/盒子/容器/配件**",并列出缺 form_desc 的形态提示补写。
⚠**注意这不是"漏传锚图"**,现有的「锚图缺失」报警(提示词提到某形态但 assets 无图)覆盖不到——assets 里明明有盒装图,病在描述泄漏。两者要分清:漏图→补图;描述串形态→拆描述,**别用"每段都挂上所有形态图"去掩盖**,那既贵又会让不该出现的东西进画面。
- **★逐镜着装描述必须剔除,服装归 host_desc + 锚图统一治理(08-09 定,治多日打卡 vlog)**:这类片的分镜表会逐镜写"换穿白色蕾丝吊带""穿蓝白边吊带背心",而主播锚图只有一套衣服 → 提示词一边说"必须与@图片1完全一致"一边说"她穿吊带",**自相矛盾,模型必漂**(07-22 七子白量产时只能整片手工统一穿着)。`h3_prompt.py` 已自动剥离(括号内着装注、纯着装从句),顺带躲开即梦 TNS 的吊带/抹胸类敏感词。
- **★后期特效指令要和贴字一起剔**:"画面叠加白色虚线圆圈圈住…""箭头指向""高亮"这些不是拍出来的,让模型画会画进实拍层。`h3_prompt.py` 的 POST_WORDS 已覆盖。
- **★敏感词报警要扫【产物】不扫原始分镜表**:着装/贴字/IP 都已在生成时剥离,再扫原文会满屏假警报——**假警报会让人对真警报脱敏,比不报更糟**(08-09 首版实犯)。中英文都要扫(译英后 camisole/syringe 这类中文扫不到)。
## 已知坑索引(踩过的)
- **下载**:`dreamina query_result --download_dir` 会截断成坏文件(NAL错)→ 必须从 `video_url` 直接 urllib 下载(gen_segments 已内置)。
- **拼接**:异源 mp4 直接 concat 会 NAL 错 → 先逐段归一化(scale+pad720x1280+setsar)再 concat(assemble 已内置)。
- **口型/音轨**:段配音 pad 到该段视频时长、对齐段起点;别用 `-map` 覆盖乱时轴。
- **★成片被撑长/段尾空窗(08-07参阿婆片挖出,四条腿通病)**:`plan` 的 `duration=ceil(end-start)` 本身就比真跨度多到1秒,海螺 h3 还额外多送约0.5s尾帧 —— 46s 原片装出 49.4s,段尾"音已停画还在演"。**修法=`assemble.py --trim-to-plan`**(裁回 end-start,但不短于本段配音,B模式改词变长的段不会被切掉半句);A模式再叠 `--master-audio 原片.mp4` 整条原音直铺(句间停顿全是原片自带的,天然对齐,不靠逐段拼)。此前一直被 apad 静音垫住没人察觉,不是 RH 独有。
- **★画外音段被误判成口播(08-07实翻车,已在 plan_segments 结构性修复)**:`seg_role` 旧兜底"有台词即 kou"会把吃播/菜品/画外音空镜(`host_on_camera=false` 但有台词)路由进 mm 去对口型,产品钩子直接丢。现在该兜底**只对旧 shotlist(无 host_on_camera 布尔字段)开放**,显式 false 一律判 dynamic。老片行为不变。
- **★★对比演示片必加「施术/受术硬约束」+「节拍时间分配」(08-11 实翻车)**:功效对比片(搓手指变白、两条腿对比)的说服力全在"**被处理的对象前后对比**",一旦模型把对象搞混,整条片作废。实测:提示词只写"依次用皂搓一根手指、两根手指、整只手…最后展示"而**没写哪只手** → 模型左手搓右手,结尾却举起**左手**展示增白效果,前后矛盾,卖点归零。
修法(和群戏的「人数硬约束」同一类——**模型不会自己维持这种约束,必须显式写死且反复重申**):
① **施术/受术方写死到左右**:"用【左手】持皂施力,被搓洗、被展示的【始终是右手】;每个阶段都是 左手拿皂→搓右手→右手变白;结尾举起展示的【必须是右手】,绝不能举左手;未被搓的左手保持原样作对比"。
② **一镜到底要给节拍时间分配**:一次生成 27 秒时模型不知道每个动作该占多久,只给顺序会平均用力(实测"搅拌咖啡杯"占了过长)。按 `0-6秒做A / 6-12秒做B / …` 逐段写死,并对该快的段标注"这一段要快,N秒内完成"。
- **★★★一镜到底 = 证据,不是拍摄手法(08-10 用户点透,决定能不能做)**:「功效对比」类带货片(搓手指变白、两条腿对比、只洗鼻子)**故意不剪辑**,因为"没剪辑"本身就是"效果没造假"的证据,有的还直接打字幕自证「全程只加速不剪辑」。
→ **复刻这类片子绝对不能拆段生成再拼**:一有接缝,说服力就废了。这和我们其它片子"切段生成再装配"的做法完全相反。
→ 于是卡在**单次生成时长上限**:即梦2.0/h3 都是 15 秒,**只有 seedance2.5 能到 30 秒**。所以 **2.5 的第二个定位诞生了:一镜到底且超过 15 秒的片子,它是唯一选项**(不是因为画质,是因为时长)。超过 30 秒的(如 52.9 秒那条)**现有模型做不了**,别硬上。
→ 这类片常还带**变速**("只加速不剪辑"),真实动作时长比片长更长,生成时要么演出快放感、要么正常速度生成再后期加速(后者更可控但要生成更长素材,成本再翻)。
- **★★切点两道闸(08-10 落地,治 ffmpeg 单阈值的两类错)**:旧架构是 ffmpeg 检切点 → 喂给 Seed 描述,**Seed 的镜数 100% 由 ffmpeg 决定**,它根本没参与判断。两类错都真实发生过:①**漏切**(叠化/软切,大明白测评 118s 只出 4 刀,实为 17) ②**假切**(固定机位+大动作+变速,耶耶大王 15.7s 报 5 刀,实为一镜到底)。
**闸①粗判**:整段视频问 Seed"是不是一镜到底",判是则 cuts=[]。实测耶耶大王/锦鲤快快游都判对,还能读到画面上「全程只加速不剪辑」的自证贴字。
**闸②裁决**:仅当 0.15 与 0.08 的切点数差 ≥2 倍时触发——低阈值出高召回候选,抽每个候选**前后各0.15秒的两帧**拼编号对照图,问 Seed"真剪辑还是快速动作/遮挡/变速"。
★**设计要点:把"时序定位"换成"两帧比对"**。实测让 Seed 自己在时间轴上找切点**不可行**——它按 ~1.07 秒的抽帧节奏报点,73% 的间隔卡在 1.0~1.1s 而真实剪辑只有 5%,±0.2s 命中率仅 21%(±1.0s 的 100% 是假象:真切点平均 1.15 秒一个,乱报也能蹭中)。**时间交给 ffmpeg(帧级精确),判断交给 VLM(语义),各干各的强项。**
★**原则:漏切比过切安全**。漏切只是让一段描述笼统些(plan 会按时长再拆);过切会**生成出原片没有的跳剪**——对"未剪辑即卖点"的片子是灾难,且每个假切点还要多付一份最短时长的钱。所以闸②宁保守勿激进。**别把"低阈值检出的都是真切点"当默认**——08-10 我就这么假设,把大明白测评切成 17 镜(真值约 2-3 刀),和锦鲤快快游切出 9 个假镜,是同一个错误犯了两次。
防呆:候选 >40 不裁决(快剪片假阳影响小且拼图看不清)/两阈值差 <2 倍不跑闸②省调用/**闸①以 `cut_count` 为准不信 `is_single_take` 布尔位**(实测出现过"结论说有剪辑、依据说没剪辑"的自相矛盾)/任一闸失败降级回 ffmpeg 但响亮告警。`--no-cut-probe` 可关。
⚠Ark responses API 的图片格式:`{"type":"input_image","image_url":"<data URI 字符串>"}`——**image_url 是字符串不是对象**,写成对象直接 400。
- **★反推后必查两个比值,别直接往下走(08-10 定)**:①**镜数/时长比**——正常带货片约 0.5~1 镜/秒;明显偏低(如 26.5 秒只出 1 镜)几乎一定是**同机位跳剪没检出**,不是真的一镜到底。复检法:`ffmpeg select='gt(scene,0.08)'` 看有没有切点,有就用 `--cuts` 显式传进去重反推(0.15 默认阈值对跳剪不够灵敏——坑索引原来只记了"0.3会漏",实测 0.15 同样会漏)。②**覆盖率**——`shots[-1].end` 对不上 `video_info.duration` 的 90% 就是输出被截断,长片要分段反推。
③**钩子镜字段抽帧验证(09-03 烧烤料新增)**:反推在钩子镜(is_opening_3s)上最容易概括错——该片 #1 被报成 `camera=固定 + host_on_camera=false`,帧证据是【中景主播对镜头说话 + 连续推镜下移跟倒肉】,两个字段全错,还连带 profile 判出"全片三脚架固定"。**生成前对 #1 镜抽 2~3 帧核对 camera/host_on_camera/subject 三个字段**,一条 ffmpeg 的事;错了直接改 shotlist 再走 plan。没配 K3 key(双反推缺"运镜信K3"的对账腿)时这条是必做不是可选。
⚠即使降到 0.08,极淡的跳剪仍可能漏(实测某条前 15 秒仍被当成一镜,而它的 action 描述是复合的"先…随后…依次…"——**action 里出现多段式描述 = 这一镜其实是好几镜**,这是比阈值更可靠的人工判据)。
- **★★运镜反推"能看不能压",schema 要先观察后标签(09-04 四轮对照实验,同一推镜片段)**:
A 现行 schema(有"固定/推/拉/摇/移/跟"枚举)→ camera=固定❌;A2 开 thinking → 仍固定❌(推理 token 白花);
B 加机械判据(首尾构图对比写进提示词)→ 仍固定❌;**C 裸问"描述这段的运镜" → "先固定中景,随后推近下移,0.4s起推" 全对✅**。
结论:模型看得见运镜,但被逼一步压缩成枚举词时偷懒写"固定";判据和 thinking 都救不了,
能救的是 **schema 在 camera 前加 `camera_evidence` 字段(先写首尾构图观察,再定标签)**——
D 组验证:固定误报 → 移+摇(类别纠正,虽未到"推"的精度),seed_reverse SCHEMA 已改。
⚠精度天花板仍是 C 式聚焦裸问:**钩子镜的 camera 别只信 schema 值,用裸问复核一次**(一条 API 调用)。
⚠同实验还发现 host_on_camera 判对错是抽卡式的(全片跑 False,6s 片段跑 True)——钩子镜三字段(camera/host/实体)都要帧证据兜底,别信单跑。
- **叠化转场让 ffmpeg 场景检测失效(08-07)**:转场几乎全是叠化的片子,0.15 阈值 16 刀只检出 3 刀,降到 0.08 全是噪点。→ 这类片**别信 ffmpeg 阈值切点,以反推模型的语义切点为准**(Seed/K3 看得出叠化边界);实在要人工兜底就抽帧核对,别调阈值硬碰。
- **★★★生图一律走即梦 `text2image --model_version 5.0 --resolution_type 2k`(08-10 实测:0积分,订阅内限时免费)**:即梦订阅权益页"图片5.0Lite 2K限时免费",CLI 里的 `5.0` 就是它;实测余额 88→88 纹丝不动。产出 1440×2560,比 RH 的全能图片G-2.0(¥0.1/张、1152×2048)**又免费又高一档**。
`5.0Pro` = **8积分/张 ≈ ¥0.42**(不在免费清单),同题对比里它提示词还原最全、光线最自然——**要跨多段复用的主播锚图值得上 Pro,其余用免费的 5.0**。⚠"限时"免费,权益随时可能变,RH 的 key 留着当后路。
★铁律不变:**带品牌文字的产品图一律不生成,只用真图**(生图是重绘必改字;08-09 nano-banana-pro 把「李时珍」logo 糊掉、三列小字写成「植萃温初」)。生图只生"没有品牌文字的东西":主播锚图/场景空镜/道具。
- **★★RunningHub 已退役(08-10)**:它的两个用途都被更便宜的替代——H3视频→秘塔(便宜4.4倍)、生图→即梦5.0Lite(免费)。`rh_gen.py` 保留可用(key 仍在配置里),但不再是默认。**教训:把渠道价当成模型价,会得出完全错误的选型结论**——我曾据 RH 的 ¥0.48/秒 判断"h3 比即梦贵",而 H3 的真实价格是 ¥0.09~0.11/秒,比即梦便宜 7 倍。
- **★★单价表(08-09 实测,即梦季卡口径:¥1959/3月、每月12320积分 → ¥0.053/积分)**:
| 通道 | 积分/秒 | 折合¥/秒 | 定位 |
|---|---|---|---|
| 即梦 `seedance2.0`(非VIP慢速排队) | 8(5s=40分) | ¥0.424 | ❌**已判死,别用**:一枪5秒的任务排队**15小时40分钟**仍是 `Queueing`,且全程占死非VIP槽阻塞后续所有非VIP提交。省43%换"不知何时出片",有交付时间的活一律不能走 |
| **MiniMax H3 秘塔渠道 768P** | — | **¥0.09~0.11** | ★**h3 首选**(`mmh3_gen.py`,base_url可换渠道)。原生 duration **4~15秒**(RH文档写的5~15是渠道自加的限制),按**实际产出时长**计费(含多送的尾帧),图片前5张免费、音频免费、视频参考按秒收 |
| RH 海螺h3 768P | — | ¥0.48 | ❌同模型贵4.4倍,已退役 |
| 即梦 `seedance2.0_vip`(快速) | 14 | ¥0.742 | ★**量产默认**。~5分钟出片;四方对照里**产品形体还原最准**的一条腿 |
| RH 海螺h3 2K | — | ¥0.77 | 比即梦VIP还贵,只在确实要2K时用 |
| 即梦 `seedance2.5` | **26**(5s=130分) | **¥1.378** | 最贵。换来 duration 4-**30秒**(2.0是4-15)、输入放宽到30图/10视频/10音频、支持纯音频输入;但只有480p/720p且VIP专属 |
**算总账要算三层**:①单价 ②**后端最短时长的浪费**(见下条) ③重抽率。本片(30.5s/27刀)四条腿实付:即梦慢速¥17.8 < h3 768P¥20.2 < 即梦VIP¥31.2 < h3 2K¥38.5(实付) < 2.5整片一枪¥41.3。
未测档:`seedance2.0fast` / `seedance2.0fast_vip` / `seedance2.0mini`。**CLI 要保持最新才看得到新模型**(`curl -fsSL https://jimeng.jianying.com/cli | bash`;07-22的b5ccc5d看不到2.5,升到a857341才有)。
- **★★慢速档的真实代价是【并发1 + 排队小时级】,不是"多等一会"(08-09 实测)**:非VIP `seedance2.0` 并发上限**同样是1**——队列里已有1条时再并发提交6段,**6段全弹 `ret=1310 ExceedConcurrencyLimit`**(好消息:失败**不扣积分**,积分纹丝不动)。而单段实测**排队57分钟仍 `queue_status: Queueing`**(日志ret=0干净,非僵尸单)。→ **并发换不来吞吐,N段片子就是N次串行排队**;8段片按此队长≈8小时。**省43%的钱=把30分钟拉成一整夜**。
该条最终落定:**轮询满60分钟仍未出片**。⚠队长是晚间单次采样,可能有时段性,别当定律——开跑前先打一枪探当时队长再决定走哪档。
- **★即梦的并发槽:VIP 与非VIP 各一个,互不占用(08-10 实证)**:提交时序为证——18:27 一条非VIP 排入队列后,19:24 连提 6 条非VIP **全部** `ret=1310`、19:36 换 session 提非VIP 也拒,但 23:5x 提 **seedance2.5(VIP专属)通过**、00:14 再提非VIP 又拒。→ **一个 VIP + 一个非VIP 可以同时在跑**,批量时可以两条流水线并行(但每条内部仍是串行)。
⚠️同时暴露慢速档的真实上限:那条非VIP 任务**排到 15 小时 40 分钟仍是 `Queueing`**(过了一整夜),且全程占死非VIP 槽。**"慢速=多等一会"是严重低估,"过夜批量"也是——它是"不知何时"。已判死。**
- **★即梦的1并发绕不过去,别浪费时间试(08-09 已穷举)**:①换 `--session <另一个会话>` 提交 → 照样 `ret=1310`,**限流是账号/通道级不是会话级**(同档位内)(官方文档说所有生成命令都接受 --session,但它不分配并发槽);②网页版能同时排5条而 CLI 只给1条,原因是**两条不同的 API 通道**——CLI 生成走 `/dreamina/cli/v1/video_generate`,网页走 `/mweb/v1/...`,agent 通道被单独限流。唯一的绕法是用 BrowserSkill 驱动网页版拿槽位,**不建议**(拿稳定 API 换脆弱 UI 自动化)。
- **★★h3 是真并行(08-09 在 RH 实测,mmh3 同模型同理)**:3 段同时提交**全部接受、无并发限制**,完成于提交后 171/188/212 秒、**完成间隔仅 17-23 秒 = 真并行**(串行会相隔一个生成时长)。768P 实扣 **¥2.40/5秒 = ¥0.48/秒**,与推算吻合。
→ **8段片墙钟:h3 3路并发≈12分钟 vs 即梦慢速≈8小时**(慢速档已判死,见上)。
**但排产要看池子状态,不是看单价**:即梦积分是**预付沉没成本**(季卡付完用不完也过期),
① **月池有余额** → 烧即梦,现金支出为零;此时"省"的是池子不是钱——慢速8积分/秒能让12320分产出1540秒素材,VIP 14积分/秒只有880秒,**同样一笔已付的钱多产75%**,愿意等就慢速、赶时间就VIP。
② **月池干了** → 走 **mmh3 秘塔 768P(¥0.11/秒 + 真并发)**,这才是花现金的时候;RH 同模型贵 4.4 倍不再用。
- **★★渠道价 ≠ 模型价(08-10 血证,选型时最容易犯的错)**:我曾据 RunningHub 的 ¥0.48/秒判断"h3 比即梦贵"并据此排产,而 H3 的真实价格是 **¥0.09~0.11/秒,比即梦便宜 7 倍**——差的全是渠道加价(RH 回执字段就叫 `thirdPartyConsumeMoney`,转手第三方 API)。**接任何新后端先问:这是渠道价还是模型价?有没有更靠近源头的通道?** 顺带:原以为要自部署才能到 ¥0.1/秒,结果现成的转售(秘塔)就是这个价,自部署这条路暂时不必折腾。
- **★★h3 的锚定是"平面印刷图案强、三维形体弱"(08-10 三方对照实证)**:同一天里 h3 把「李时珍」纸盒的 logo/毛笔字/三列小字**零错**锚住(生图模型在同一张盒子上却写出错字);但同样的锚图纪律下,**它把奶黄三角皂画成方形白皂**,而 seedance2.5 用同一张锚图画对了。且这是在提示词矛盾**已清干净**之后——不是提示词问题。
**四方对照定论(同锚图/同音频/同内容,各抽一次卡)**:h3 768P ¥2.88 → ❌方形白皂;**即梦 seedance2.0_vip ¥4.45 → ✅三角形+橙色大理石纹完美还原,四者中最准**;seedance2.5 ¥8.27 → ✅正确。
→ **不是"2.5 独有优势",是即梦系整体锚得住三维形体,而且 2.0 就够、比 2.5 便宜一半。** 分工:**带包装文字/平面印刷图案的镜给 h3(便宜且零错);"产品本体形状要准"的镜给即梦 2.0;2.5 只留给物理规律/连续复杂动作难的镜**。⚠限制:各腿 n=1、无抽卡方差数据、测试段是 6 秒 4 镜的长段(段内镜头多可能加剧锚定衰减,短段未必)。
- **★h3 的画质在带货场景已可追平 seedance2.0**(08-09 用户看片结论)。所以选腿不再是"质量换价格",而是纯粹的成本与产能调度问题。
- **★后端最短生成时长是隐性成本大头(08-09 挖出)**:海螺h3 最短5秒、即梦最短4秒。快切片(李时珍片30.5s里27刀)每段真实跨度才1.6~4.8秒,**10段×5秒=50秒的账对着30.5秒的片,39%的钱花在被裁掉的画面上**。修法=`plan_segments.py --min-dur 5`(填满模式:段跨度不够就继续并镜)+ **必须同时给 `--hard-max-cuts`**(不设闸会把9个镜头塞进一段,远超即梦"内部硬切5崩"红线和h3已验的3刀)。本片 `--min-dur 5 --max-cuts 3 --hard-max-cuts 4` → 10段50秒压到8段42秒,浪费39%→28%;放宽到不限镜数是5段34秒(11%)但不安全。默认 `--min-dur 0` 行为与旧版逐字节一致。
- **★生图模型会改字,视频模型不会(08-09 同素材双向实证)**:同一个「李时珍七子白」纸盒,全能图片PRO(nano-banana-pro)图生图**把logo糊掉、三列小字写成错字**;海螺h3 拿同一张真图当参考图,**logo连®和直角框、毛笔字、三列小字全部零错**。原因=生图是"重绘"、i2v/mm的参考图是"锚定"。**所以"包装文字必须动真图"这条规律不是即梦专属,是 i2v/mm 这一类的共性;而生图模型永远不能用来合成带品牌文字的锚图**(可做构图/氛围/无字锚图)。
- **★★小字幻觉分两档(09-03 烧烤料项目,即梦5.0 vs GPT-image2 双模型实测,细化上一条)**:生图模型的【大字】锚定能力已经变强(即梦 5.0 image2image 把「天合香/烧烤料/净含量20克」全部锚对,且白底化/去手持免费可用),但【小字】依然必错,且错误形态分两档——**乱码档**(即梦 5.0:配料表/营养成分表/徽章环形字变乱码,生产日期 2026 写成 2024,肉眼好认)和**编造档**(GPT-image2:排版完美但内容整段编错——「保质期」写成「净含量」、公司名/地址/电话全是编的,**比乱码危险得多,肉眼对排版看不出**)。结论:①密集小字图(配料表/营养表/日期)永远走真图;②白底化/去手持可以走生图(`prep_assets.py`),但产物必须过 qc_assets 的小字复检(sidecar 对照真图逐字段核),**别靠肉眼验收小字**。
- **★状态参考图会连带迁移它的背景和光照(08-09 李时珍S8实翻车)**:挂了一张深棕影棚背景的"产品泡沫态"图当泡沫锚,产出的特写镜连背景一起变成深棕影棚,与浴室场景断裂(评委也点名"单独泡沫特写是杂镜")。修法=在该镜显式写死环境+把 retention 标成 partially_preserved 并写明"只借质感,不要它的背景和打光",重抽即修好。
- **judge 压缩小版会看漏(08-09,两条指控全假)**:成片>35MB自动压360p上传后,评委声称"复刻版全程在卫生间、未还原熬夜叙事"(实际卧室夜戏在片子里)、"硬切数远少于原片"(实测原片27刀 vs 成片26刀)。**judge 的差距清单必须逐条帧级/机器核实再采信**,别直接转述给用户。
- **h3 的脾性(mmh3/rh 两个渠道通用,08-07 参阿婆片 + 08-10 秘塔实证)**:①**内容安全审查只审 prompt 文本**——台词原文、价格词("大几十")、"内脏"类词写进 prompt 就拒(不计费但白等),**图片和音频不审**;故 mm 段台词一律不进 prompt,口型靠 audioUrls 自带。⚠这和即梦 TNS(审人脸审图)正相反,消毒策略不能互相套用。②结果 URL 只活24小时,拿到即落盘。③轮询 40×12s 对8s段不够(任务其实会 SUCCESS)→ rh_gen 已按段时长放大预算,超时凭 taskId `--fetch` 补抓不重复扣费。④段内多镜的身份保持弱于即梦(护目镜漂成细框眼镜、领夹麦消失),长段优先拆。⑤seedream4.5 文生图总像素须≥3,686,400(9:16 用 1440×2560)——A模式想换掉原片主播长相时,生新锚图比抽原片帧干净且避开肖像问题。⑥口型的实证证据是"产物音轨 vs 输入wav 的 RMS 包络相关0.976",**这只证明原音1:1零偏移复用,口型本身是肉眼判的**→新片首用先跑 qc_lipsync 帧级验收。
- **即梦**:必带 `--video_resolution`(1080p/4k 仅 `_vip` 档支持,非VIP只有720p);含真人脸 image2video 易拦(纯产品图安全);内部硬切 ≤3(5崩);VIP并发=1串行。**档位与价格见上面的单价表**;CLI 要常升级,否则看不到新模型(2.5 就是升级后才出现的)。
- **反推**:Seed2.1Pro 加 `thinking:disabled`+`stream`(快17倍不掉精度);Bash默认2分超时会掐长请求→后台跑。
- **反推模型脾性(07-19 K3对决,帧级实证)**:错误呈镜像——Seed病=静音字幕当口播(下游TTS会真配出这句)+运镜时序粗(漏侧机位/绕拍弱化);K3病=实体幻觉(员工性别人数看错/落地镜认成货架/1件彩虹T恤编成6~8件渐变陈列/花字"日常"抄成"日程")。故 merge_reverse 裁决分工=实体信Seed、运镜信K3;单模型跑时"开头台词"必过静音闸,外部反推的实体描述一律存疑。
- **代理**:★全管线(火山API/即梦CLI/即梦CDN下载)国内直连,**无需任何代理**——代理是 Gemini 反推时代的遗留,已随引擎更换退役。系统全局 http_proxy 已被脚本显式绕开;极个别网络下载 CDN 失败时才设 DAIHUO_DOWNLOAD_PROXY。
- **无 key 时的降级反推(08-07,备案不推荐)**:那台机器没 ARK/KIMI key,是 agent 逐帧看视频亲自当反推引擎+亲自当评委跑完的。能出活,但两个硬缺口要认:①agent 没有音轨输入,**台词只能从屏上字幕转写**——这正撞静音闸铁律(贴字≠口播),原音复用能兜住、TTS重配会配出幻听句;②自己生成自己打分(63/90)和 Seed 评委的 54/90 **不同口径不可比**。有 key 就别走这条。
- **key/模型**:★**反推/评委/翻译一律套餐优先(08-23 起)**:Agent Plan key 用 ARK_PLAN_API_KEY 或 ~/.config/daihuo-fanpai/ark_plan_key,走 /api/plan/v1/chat/completions + doubao-seed-2-1-turbo(订阅内,边际成本 0,thinking 常开);没配 plan key 才落回按量 pro(ARK_API_KEY,/api/v3/responses,**真按 token 计费**)且会响亮提示。doctor 会报当前走哪个池子——看到"按量付费"字样先停手配 plan key。★**09-10 用户定:套餐失败/配额尽(429 weekly quota)时【不许自动落按量池】——按量账户曾因自动落池被跑欠费两次(09-07、09-10),正确动作是停下来告诉用户"套餐池不可用",等用户处理(升级/充值/等重置)。**按量 pro 池默认视为【禁用】,只有用户明确说"这次走按量"才用。ark_gen(火山视频生成腿)不受影响,仍用 ARK_API_KEY。**mmh3(秘塔)key 用 MMH3_API_KEY 或 ~/.config/daihuo-fanpai/mmh3_key(mk-开头),base_url 用 DAIHUO_MMH3_BASE_URL 换渠道**;RunningHub key 用 RUNNINGHUB_API_KEY 或 ~/.config/daihuo-fanpai/rh_key(已退役,留作后路);钱包类后端提交前把总价算给用户并拿到同意;反推/评委模型默认公共模型名(可用 ARK_SEED_MODEL 覆盖),不再依赖私人 endpoint ID。小云雀 key 用 XYQ_ACCESS_KEY 或 ~/.config/daihuo-fanpai/xyq_key;模型默认交CLI(普通户 Seedance_2.0_mini_lite),用 XYQ_VIDEO_MODEL 覆盖。Kimi K3(双反推腿)key 用 KIMI_API_KEY 或 ~/.config/daihuo-fanpai/kimi_key,端点 api.moonshot.cn(国内直连),模型 kimi-k3(KIMI_K3_MODEL 覆盖);K3 始终开思考不可关、别传 temperature/thinking 参数;视频走 files(purpose=video)→ms://<id>,用完即删;WSL 对 moonshot 偶发连接抖动,k3_reverse 已内置3次重试。
- **配音时长**:B模式改词后配音可能比原镜长——gen 已按段 wav 实际时长自动上调生成时长(上限15s,逼近上限会告警要求拆段)。
- **后台命令**:别同时用 `nohup &` + run_in_background(外层立即返回致误报completed)。
- **换声(Seed-VC)质量两要素**:①参考音频信噪比≥30dB(脏参考的底噪会被当音色学进产物,vc_segments已内置参考体检);②嫌有金属感/电流感伪影→`--steps 50~100`(默认30,换时间买干净)。
- **Ark人脸政策(★两条腿分工修正)**:火山对**含人脸参考图**的视频生成政策级拦截(`InputImageSensitiveContentDetected.PrivacyInformation`,AI写实人像也拦,官方唯一解=换虚拟人像)→ **口播/人物段=即梦CLI专属,纯产品i2v段才双腿可走**。ark_gen 已有 submit_mm(多图role=reference_image+音频role=reference_audio,格式已验对),对纯产品+配音场景或许可用(未验)。
- **群戏(三角色情景剧,榴莲片验证)**:单主播模板不适配群戏 → 逐段按 shotlist subject 判断出镜角色挂多张人物锚定图+逐角色人设声明(参考 runs/榴莲复刻/patch_cast.py);**必加人数硬约束**"画面中自始至终只有X、Y这N个角色,不要出现任何其他人物"(不加会幻觉多生成人物,实测);产品未登场的段必须剥离产品图防剧透;多人轮流说话的口型分配即梦能做对(Seed质检实证)。原音复用时字幕轴用 shotlist 镜级时间构造 timing.json(镜头时间=音频时间,精确)。
- **judge双视频**:对比模式合并 >~50MB 会 SSLEOF 断连 → 已改按视频数均分上传预算自动压小。
- **剪映草稿**:剪映 6+ 保存草稿会加密,但**读明文草稿正常**(10.7 实测:识别/打开/编辑/回存全通)。此结论随剪映升级可能失效,失效降级 `--mode final`。草稿引用的是 Windows 绝对路径 → deliver 已把素材 copy 进草稿目录自包含+改写 /mnt/x/→X:/;草稿根目录用 DAIHUO_JY_DRAFTS 或 ~/.config/daihuo-fanpai/jy_drafts 配置。
- **幽灵querying(07-22骗了一下午)**:失败任务被旧版即梦CLI错报成"querying"(v1.4.14已修),配合查询接口对不存在任务也回querying,会诱导你猜僵尸单/队列/风控。**先查 ~/.dreamina_cli/logs/ 日志再推理**——真因往往一行就写着(当日真因=音频切片<2秒被上传拒收)。CLI保持最新:`curl -fsSL https://jimeng.jianying.com/cli | bash`。
- **音频上传2秒下限**:即梦mm的音频输入必须2-15秒,快切短视频的段音频常<2s→提交即死。cut_audio已内置apad垫到2s;自切音频务必过此闸。
- **下载解码体检**:CDN偶发交付坏字节流(大小正常但NAL单元全错→成片卡死花屏),大小校验拦不住;robust_download已内置下载后ffmpeg解码探针,坏流自动重下。批量产后可全量扫一遍:`ffmpeg -v error -i clip.mp4 -f null -`。
- **K3引擎429**:moonshot晚间高峰会engine_overloaded,退避≥90s;赶产能时单腿Seed+1fps拼图校验时间轴可顶(Seed弱在指派,拼图正好补)。
- **群戏口型错乱治理(07-23战役,28%→6%)**:①人数硬约束句是生命线,patch_cast永不删;②说话人点名指令压不住随机错——治法=抽卡循环(每段1-2抽+帧级QC择优);③同句两轮同错=粘性错误,再抽无用,给时间码剪映手修;④**禁止用Seed/K3看AI片转写台词做QC**——会整段幻听(两轮转写互不相同且全不符台账),口型QC只能走qc_lipsync.py的帧级方案(原片帧=真值,AI帧只答谁张嘴)。
- **提交/上传瞬时EOF**:WSL对即梦偶发连接抖动(user_info/imagex上传),gen提交已内置3次退避;批量脚本外层再包轮次循环兜底(missing段重跑)即近零人工。
- **长片反推(>3分钟)必分段(08-02,9分钟剧情片实证)**:全片单跑撞Seed输出上限(~70KB截断JSON报废)。解法=ffmpeg场景检测选边界,拆成~110s/段(验证过的甜区)并行反推,按时间偏移合并shotlist;253镜五段一次全过,剧本级还原成立。K3同天全程429时单腿Seed足够。
- **seed_reverse并发竞态(08-02血案)**:临时件`_seed_upload.mp4`固定名,且workdir跟着`--out`路径走——多段并行反推必须**每段独立子目录且--out也落在该子目录**,否则互相覆盖报"Invalid video_url"。
- **舞蹈/表演类复刻=小云雀--video动作迁移(08-02解锁)**:连续舞蹈动作文字prompt编码不了,把原片`-an`剥音轨后当`--video`参考,编舞/机位/光影逐拍跟随(15s全长验证)。硬规:①不剥音轨会触发配乐版权闸整单拒;②参考重绘无身份锚,脸随原片漂(--image锚被--video压制,钉不住);③水印照旧。详见 references/xyq_notes.md 第7条。
- **可灵(Kling)第四条腿已接**:独立skill `kling-cli`(非本engine脚本),定位=高质量首帧i2v备选——脸稳定性最强、无水印,但无视频参考、时长仅5/10s(15s=尾帧续段拼)、审核严(露肤服饰措辞写"典雅庄重")、人数硬约束同样必加、全链路依赖代理。计费/脾性见记忆 kling-cli-setup。
## 可移植性
换设备:先跑 `doctor.py`。ffmpeg 自动装;即梦/ark key 提示用户配;CosyVoice 缺则配音走降级(A模式复用原音最省)。引擎脚本随本目录一起搬即可。
**Windows 原生(无 WSL)搬运两个坑**(08-07 实测):①跑任何读中文 JSON 的脚本必须 `PYTHONUTF8=1`,否则 GBK 解码炸;②Git Bash 的 `/d/...` 路径不能传给 Windows Python(open/urlretrieve 报 FileNotFoundError),统一用 `D:/...`。ffmpeg 用 gyan essentials 静态包丢进 PATH 即可。
Files in this skill
- DESIGN.md
- README.en.md
- SKILL.md
- TYPE_LIBRARY.md
- apply_board.py
- ark_gen.py
- assemble.py
- asset_board.py
- asset_store.py
- batch_reverse.py
- beat_tag.py
- calibrate_turns.py
- card_find.py
- card_harvest.py
- card_verify.py
- cast_plan.py
- config.py
- cut_audio.py
- deliver.py
Attribution
Comments
Loading comments…