@lingjingai/scriptctl 0.57.0 → 0.58.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/changes/0.57.1.md +13 -0
- package/changes/0.58.0.md +14 -0
- package/dist/cli/register-workflows.js +17 -0
- package/dist/cli/register-workflows.js.map +1 -1
- package/dist/domain/creative-draft/compose.d.ts +18 -0
- package/dist/domain/creative-draft/compose.js +403 -0
- package/dist/domain/creative-draft/compose.js.map +1 -0
- package/dist/domain/ingest/video-apply.js +15 -1
- package/dist/domain/ingest/video-apply.js.map +1 -1
- package/dist/domain/ingest/video-serial-md.js +14 -1
- package/dist/domain/ingest/video-serial-md.js.map +1 -1
- package/dist/domain/ingest/video-source-evolution.d.ts +4 -0
- package/dist/domain/ingest/video-source-evolution.js +0 -3
- package/dist/domain/ingest/video-source-evolution.js.map +1 -1
- package/dist/domain/ingest/video-state-evidence.d.ts +66 -0
- package/dist/domain/ingest/video-state-evidence.js +385 -0
- package/dist/domain/ingest/video-state-evidence.js.map +1 -0
- package/dist/infra/ingest/video-discovery.js +10 -4
- package/dist/infra/ingest/video-discovery.js.map +1 -1
- package/dist/infra/ingest/video-source-snapshot.d.ts +1 -1
- package/dist/infra/ingest/video-source-snapshot.js +26 -3
- package/dist/infra/ingest/video-source-snapshot.js.map +1 -1
- package/dist/infra/ingest/video-state-evidence.d.ts +14 -0
- package/dist/infra/ingest/video-state-evidence.js +140 -0
- package/dist/infra/ingest/video-state-evidence.js.map +1 -0
- package/dist/llm/config.js +1 -1
- package/dist/llm/router.js +4 -6
- package/dist/llm/router.js.map +1 -1
- package/dist/llm/tasks/ingest/video-serial.js +20 -1
- package/dist/llm/tasks/ingest/video-serial.js.map +1 -1
- package/dist/llm/tasks/schemas.js +3 -0
- package/dist/llm/tasks/schemas.js.map +1 -1
- package/dist/usecases/ingest/generate-video-state-evidence.d.ts +23 -0
- package/dist/usecases/ingest/generate-video-state-evidence.js +124 -0
- package/dist/usecases/ingest/generate-video-state-evidence.js.map +1 -0
- package/dist/usecases/ingest/video-pipeline.d.ts +6 -1
- package/dist/usecases/ingest/video-pipeline.js +49 -10
- package/dist/usecases/ingest/video-pipeline.js.map +1 -1
- package/dist/usecases/script/compose-creative-draft.d.ts +3 -0
- package/dist/usecases/script/compose-creative-draft.js +106 -0
- package/dist/usecases/script/compose-creative-draft.js.map +1 -0
- package/package.json +1 -1
- package/skills/scriptctl/SKILL.md +30 -9
- package/skills/scriptctl/references/ingest-workflow.md +4 -2
|
@@ -78,7 +78,7 @@ scriptctl ingest -s uploads/正片/ -w workspaces/正片 \
|
|
|
78
78
|
--upload-mode base64 \
|
|
79
79
|
--provider-base-url https://gemini.example.com \
|
|
80
80
|
--provider-api-key-env CUSTOM_GEMINI_KEY \
|
|
81
|
-
--provider-model gemini-3.
|
|
81
|
+
--provider-model gemini-3.7-flash
|
|
82
82
|
```
|
|
83
83
|
|
|
84
84
|
- `--upload-mode file-api|base64`:默认 `file-api`;`base64` 把自动转码后的本地视频放入 Gemini `inlineData`,文件必须小于 100 MB。
|
|
@@ -97,7 +97,9 @@ scriptctl ingest -s uploads/正片/ -w workspaces/正片 \
|
|
|
97
97
|
|
|
98
98
|
管线(了解即可,产物都在 `workspace/`):
|
|
99
99
|
- **文本**:正文起点定位 → 切块 → 生产化归一 → 合并组装 `body.json` → 串行资产/身份/state 治理 → V3 中间校验 → 稳定 V4 身份分配 → V4 校验与生产规范 warning → `script.json`。
|
|
100
|
-
- **视频**:逐集串行观看原视频并维护跨集人物、最近三集剧情、未闭合线索和造型上下文 → 确定性治理 → V3 中间校验 → 稳定 V4 身份分配 → V4 校验与生产规范 warning → `script.json
|
|
100
|
+
- **视频**:逐集串行观看原视频并维护跨集人物、最近三集剧情、未闭合线索和造型上下文 → 确定性治理 → V3 中间校验 → 稳定 V4 身份分配 → V4 校验与生产规范 warning → `script.json`。Action 时间戳写入 `extend.timestamp`;逐集内容身份、`ep/*.json`、`context.json` 和身份映射共同支持断点续跑与严格尾部追加。人物证据不再要求 Gemini 额外选择时间点,也不在逐集阶段反复抽帧;全部剧集完成后,才从最终稳定的 actor/state 引用和 Action 时间戳一次性生成。
|
|
101
|
+
- **人物与状态原片证据**:`evidence/state-evidence.json` 是 version 2 sidecar。后处理先用场次人物引用确认“谁在这一场、穿哪套状态”,再优先选择该人物在本场普通台词的时间点,因为这比首次外观描写更可能出现清晰人物镜头;画外音、旁白、未入镜台词和 inner thought 不作为人物识别锚点。没有合格台词时,从明确提到目标人物的可见 Action 中按人物主体、服装词、半身/全身、面部可见度和多人歧义排序;仍没有人物直提时,可用不指向其他人物的带时间戳视觉 Action 作为低优先级造型兜底。多人共用时间点、背影、远景、模糊、纯道具和局部特写只降低造型候选的排序,不再因低于阈值导致整套已引用造型消失;人物识别图板仍要求最低可信分。场内存在多个无序 state 时不猜造型先后。每个人物最多保留 6 张跨场次、至少相隔 3 秒的代表帧,供客户端组成 3×2 人物图板;每套可确认造型保留最佳锚点的前 1 秒、原时刻、后 1 秒三帧,覆盖常见切镜偏差并供人类快速切换。图片在 `evidence/frames/`,样本按质量排序。抽帧失败不会让剧本 ingest 失败,而是在样本上标为 `unavailable`。sidecar 不保存原视频绝对路径,也不进入 `script.json`;人类复核和后续处理引用同一个 `evidence_id`。
|
|
102
|
+
- **已有项目补生原片证据**:对最终 Script v4 运行 `scriptctl evidence -p <script.json> -s <视频文件或分集目录> -w <workspace>`。命令校验连续集号和剧本集数,直接复用上述本地选点与 ffmpeg 落图;不读取 ingest 中间文档、不调用 Gemini,也不会重新生成剧本。为了避免 NAS 全文件扫描,独立补生只用视频路径、大小和修改时间建立可重建缓存指纹;源文件原地替换后使用 `--force` 重抽。
|
|
101
103
|
- **用量账本**:`usage.json` 在每集/处理单元成功或失败后立即原子更新。`records` 保存实际 task/provider/model 的逐次调用、失败、重试、token 与耗时;`episodes`、`byTask[].byModel`、全局 `byModel`、`totals` 和 `timing` 都从明细聚合,可用于按模型价格精确核算成本。
|
|
102
104
|
|
|
103
105
|
### 提取与解析原则
|