Initial TrueGrowth source import

This commit is contained in:
2026-07-07 09:36:36 +08:00
commit 3b6781d695
2283 changed files with 691996 additions and 0 deletions

View File

@@ -0,0 +1,27 @@
## Context
现有批量生成按镜头顺序执行,主要是为了将上一段尾帧传给下一段首帧。新的产品判断是尾帧传递收益不明显,用户更需要整体生成速度。
## Goals
- 两套工作流保持一致:爆款 MV 与爆款视频都使用同一类并行批量生成语义。
- 每个镜头独立生成首帧,再基于该首帧生成视频。
- 保留现有角色参考图、全局参考图、知识库上下文、模型参数、尺寸参数和自动插入画布行为。
- 停止按钮应尽量阻止后续提交,并让已提交任务自然完成或由现有任务队列处理。
## Non-Goals
- 不新增新的记录实体或持久化大文件。
- 不引入上一段尾帧到下一段首帧的兼容模式。
- 不改变单镜头“生成首帧/生成视频”的交互语义。
## Approach
`handleGenerateAllVideos` 改为为每个需要生成的镜头启动一个独立 async pipeline
1. 若镜头缺少可用首帧,则调用现有首帧生成任务,参考图包含全局参考图与该镜头角色参考图。
2. 首帧 URL 写回当前镜头。
3. 使用该首帧作为本镜头视频任务的 `referenceImages`,提交视频生成。
4. 视频 URL 写回当前镜头,并按现有设置选择是否插入画布。
所有镜头 pipeline 使用 `Promise.allSettled` 并行等待。失败和重试在单个镜头内部处理,不阻塞其他镜头。
## Risks
- 并行提交可能触发供应商限流。实现优先复用现有任务队列和轻量 URL 引用,不读取/缓存大二进制;若后续实测限流严重,再加并发上限配置。
- 停止无法取消已经提交给供应商的任务;本次保持现有队列语义,只停止未进入下一阶段的 pipeline。