feat(skills): 完善视频生产 pipeline 及新增健身跟练账号

- SKILL.md: 新增工作流阶段定义、质量卡点、分镜规则
- manifest-schema.md: 补充完整字段规范及类型定义
- phase-tts.js: 优化 TTS 合成长逻辑,添加进度追踪
- capcut-tracks.js: 扩展轨道构建能力,支持更多元素类型
- capcut-timeline.js: 改进时间线生成,支持淡入淡出
- capcut_assemble.js: 新增 assemble 阶段完整实现
- cmd-init.js: 完善 init 命令逻辑
- qwen-tts.js: 调整超时配置
- accounts/禁忌帝王学: 更新拆分/图像/台词提示词
- accounts/健身跟练: 新增账号含 account.json 及全套提示词模板
- 新增 workflow-issues-20260501.md 参考文档

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
lc
2026-05-06 22:53:37 +08:00
parent e6daf7a8d8
commit 6eec0e8889
28 changed files with 2199 additions and 253 deletions

View File

@@ -78,6 +78,14 @@ node .claude/skills/video-from-script/scripts/get-template-path.js --account <
```
输出示例:`accounts\军事账号\prompts\分镜.md`
**时间线核心规则(固化铁律,必须透传给分镜子 Agent**
- 文案是时间轴唯一锚点:总音频时长 = 文案总字数 ÷ 5语速 5字/秒)
- Kling 可灵视频片段固定 6 秒
- **每个 shot 的 TTS 估算(= script字数÷5必须 ≤ 6 秒**
- TTS > 6s → 强制在语义断点处拆分,拆分后每段 script = 语义子句(原句切分),**禁止用完整句重复填充多 shot**
- 合并后 script 拼接 = 原句一字不差
- audioDur > videoDur × 212s的 shot 禁止合并,必须拆分
**子 Agent prompt 必须包含**
1. `模板文件绝对路径:{get-template-path.js 输出的路径,转为绝对路径}`,并指示子 Agent "先 Read 此文件全文,严格按模板规则执行"
2. 用户完整口播文案
@@ -87,10 +95,28 @@ node .claude/skills/video-from-script/scripts/get-template-path.js --account <
**禁止**:主 Agent 不得摘要模板内容传给子 Agent必须让子 Agent 直接读文件。
```json
[{"id":1,"shotDesc":"英文画面描述","script":"中文口播文案","duration":5,"directorRef":"tarantino","keyword":"权力"}]
[{"id":1,"shotDesc":"英文画面描述","script":"中文口播文案","duration":"TTS估算=字数÷5","directorRef":"fincher"}]
```
**主 Agent 审查**时长合理隐性动势完整视频模式directorRef 已填?视频模式 script 拼接校验通过?
**主 Agent 审查(时间线合规优先):**
1. 每个 shot 的 TTS 估算是否 ≤ 6s→ 超过必须打回
2. TTS > 6s 的 shot 是否已正确拆分script 是否为语义子句?
3. 时长合理隐性动势完整视频模式directorRef 已填?
4. 视频模式 script 拼接校验通过(一字不差)?
**分镜规划展示(每次必须输出此表):**
```
文案: [原文]
总字数: N字 | 总音频估算: X.Xs | 视频片段: N个 | 视频模型固定时长: Kling=6s
TTS语速: 1.15x(写死在 qwen-tts.js| 音频调速: 禁止 | 视频适配: 加速/截断
| # | TTS估算 | script字数| ratio估算 | 策略 | 拆分说明 | directorRef |
|---|---------|------------|---------|------|---------|------------|
| 1 | 4.8s | 你只有看清了...24字| 6/17.5=0.34 | ⚠禁止 | TTS>6s需拆 | fincher |
| 2 | 5.2s | 其实这是...26字| 6/27=0.22 | ⚠禁止 | TTS>6s需拆 | fincher |
...
```
ratio = estimatedVideoDuration(6s) / estimatedAudioDuration字数÷5
→ 展示给用户确认。确认后**分镜表锁定为脊骨契约**,下游禁止增减 shot。
@@ -197,7 +223,9 @@ node scripts/pipeline.js confirm --manifest <path> --all
node scripts/pipeline.js status --manifest <path>
```
**阶段顺序**: `images``upload``videos` `tts` `assemble`
**阶段顺序**: `tts``images``upload``videos``assemble`
> **流程变更**TTS 提前到图片生成之前确保音频时长在生图前已知ratio 可控。
**Item 状态**: `pending``generating``done` / `failed`
@@ -207,6 +235,36 @@ node scripts/pipeline.js status --manifest <path>
每阶段完成后主 Agent 自动校验,不通过则修复后继续。
### 分镜规划展示(每次必须输出)
```
文案: [原文]
总字数: N字 | 总音频估算: X.Xs | 视频片段: N个 | 视频模型: Kling=6s
| # | TTS估算 | script内容字数| 拆分说明 | audioDur估算→真实 | ratio |
|---|---------|----------------|---------|------------------|------|
| 1 | 4.8s | 你只有看清了...24字| ✅未超6s | 4.8→17.5s | 0.34⚠ |
| 2 | 5.2s | 其实这是...26字| ✅未超6s | 5.2→27.0s | 0.22⚠ |
...
```
ratio = estimatedVideoDuration / realAudioDuration⚠=需拆分
### 分镜质量卡点(固化)
| 检查项 | 标准 | 不通过则 |
|--------|------|---------|
| 单 shot TTS 估算 | duration ≤ estimatedVideoDurationKling=6s | **强制打回分镜阶段拆分** |
| 长句处理 | TTS>6s → 语义子句拆分script 不重复完整句 | 打回重写 |
| script 内容 | 每个 shot 的 script 是独立语义子句 | 打回重写 |
| 合并校验 | 所有 script 拼接 = 原文一字不差 | 打回重写 |
| ratio 预判 | estimatedVideoDuration / estimatedAudioDuration < 0.9 → 禁止 | 打回分镜重切 |
| 视频模型时长 | estimatedVideoDuration 已填入 manifest | 检查 pipeline init |
**assemble 阶段铁律:**
- 音频以 1.15x 原速导入 CapCut无 speed 字段
- 视频只允许加速speed_up或截断trim
- **禁止慢放slow_down/ 冻结帧freeze/ 音频调速**
### 生图
| 检查项 | 标准 | 不通过 |