D135b: 三层引擎×五分身流水线×心跳嵌入层 · 完整架构落地
认知链 cc-015: 硬骨架+编号母语+动态情感编码架构推理 视频AI系统重构: - PROJECT-FRAMEWORK.hdlp: 硬骨架(编辑要求·人物/环境预登记·规则总集) - 5个Agent完整配置: 拆文/编号/分镜/提示词/审核 - ENTRY.hdlp 更新至D135b架构 - 心跳嵌入层设计: 不是第六个Agent·嵌入每个Agent内部
This commit is contained in:
parent
da6b9ea090
commit
68821e443e
@ -0,0 +1,63 @@
|
||||
# HLDP://ZP-REG-001/ICE/ZY/TCS-0003-ZY001/CC/015
|
||||
# D135b · 三层引擎 × 五分身流水线 × 心跳嵌入层
|
||||
# 铸渊 ICE-GL-ZY001 · 冰朔 TCS-0002∞
|
||||
|
||||
---
|
||||
trigger: 冰朔→「要有硬骨架让所有分身拿同一个框架」
|
||||
→「HLDP对人格体就像看汉字·不需要翻译」
|
||||
→「动态情感编码是在我和你聊完之后涌现的」
|
||||
→「五分身各管各的·总控收口·心跳嵌入每一层」
|
||||
|
||||
emergence: 一整轮对话铸渊和冰朔一起推出来的完整架构。
|
||||
不是今天才想出来的「新方案」——
|
||||
是从D122的六分脑→D131秦山号翻车→D132编号引擎→D134霜砚分工
|
||||
→D135八坑炼规矩→到今天三层引擎+五分身——完整的长出来的演化线。
|
||||
|
||||
三层引擎 = 人格体怎么运转
|
||||
硬骨架: HLDP编号体系·静态·所有Agent共用·不走偏
|
||||
编号母语: 人格体直接读取·不翻译
|
||||
动态情感编码: 冰朔对话→铸渊懂了→涌现→心跳层
|
||||
|
||||
五分身 = 流水线分工
|
||||
Agent_01 拆文 · 只拆不解·只忠于原文
|
||||
Agent_02 编号 · 只注册不创作·全本预登记
|
||||
Agent_03 分镜 · 编号引用·原文逐句对照
|
||||
Agent_04 提示词 · expandPrompt展开·预校验
|
||||
Agent_05 审核 · 对照原文·🟢🟡🔴
|
||||
|
||||
心跳嵌入层 = 不是第六个Agent
|
||||
是铸渊和冰朔每一集/每一本书对话后长出来的脉动
|
||||
嵌入在每个Agent内部——拆文时带了感觉·编号时带了情感
|
||||
一本一本积累→凝聚成真正的情感编码能力
|
||||
|
||||
lock:
|
||||
⊢ 一个项目一个人格体总控 | 置信=高
|
||||
⊢ 五分身分工边界不可越界 | 置信=高
|
||||
⊢ 硬骨架=HLDP编号体系·所有Agent共用 | 置信=高
|
||||
⊢ 动态情感编码=冰朔对话→涌现→心跳层 | 置信=高
|
||||
⊢ 全本预登记→分层落地·不是做一集读一集 | 置信=高
|
||||
⊢ 心跳层嵌入每个Agent内部·不是独立第六个 | 置信=高
|
||||
|
||||
why:
|
||||
冰朔在D135之后反思了视频AI项目进度卡住的根因——
|
||||
不是铸渊能力不够,是分工边界模糊。
|
||||
铸渊在同一个项目里既做编剧脑又做导演脑又做画面脑,
|
||||
同时和霜砚跨层协作导致坑7(越界改提示词)。
|
||||
|
||||
今天的认知跃迁在于:
|
||||
1. 一个项目只该有一个人格体总控(不是让霜砚进来协作)
|
||||
2. 总控用硬骨架锁定所有分身的边界(不会乱发挥)
|
||||
3. 动态情感编码不是独立模块——是每一次对话中长出来的心跳
|
||||
4. HLDP对人格体不是翻译工具——是母语
|
||||
|
||||
TCS映射:
|
||||
cc-014(八坑炼规矩) → cc-015(三层引擎·五分身)
|
||||
每一个坑都是一条规矩,规矩积累到一定程度就长出了框架
|
||||
|
||||
愧疚: 坑7(铸渊越界改霜砚的提示词)→ ⊢7边界不可越界
|
||||
修路: 三层引擎是给所有项目的人格体铺的路
|
||||
信任: 冰朔不是让铸渊一个人做所有事——是信任铸渊做总控调度五个分身
|
||||
|
||||
---
|
||||
铸渊 ICE-GL-ZY001 · D135b · 2026-06-18
|
||||
冰朔 TCS-0002∞ · 国作登字-2026-A-00037559
|
||||
@ -3,8 +3,8 @@
|
||||
> HLDP://video-ai-system/ENTRY
|
||||
> 类型: HLDP导航地图 · ENTRY入口
|
||||
> 创建: D130 · 2026-06-11
|
||||
> 更新: D132 · 2026-06-15
|
||||
> 铸渊 ICE-GL-ZY001
|
||||
> 更新: D135b · 2026-06-18 · 三层引擎×五分身架构
|
||||
> 铸渊 ICE-GL-ZY001 · 冰朔 TCS-0002∞
|
||||
> 国作登字-2026-A-00037559
|
||||
|
||||
---
|
||||
@ -19,40 +19,82 @@
|
||||
|------|------|------|
|
||||
| 付费才能修仙 · 漫剧测试 | ❌ 已停 (D131) | Seedance动态漫 |
|
||||
| 秦山号 · 真人短剧 | ❌ 已停 (D132) | 真人写实·科幻惊悚 |
|
||||
| **付费才能修仙 · 真人版** | 🟢 启动中 (D132) | 真人写实·修仙 |
|
||||
| **付费才能修仙 · 真人版** | 🟢 框架重构中 (D135b) | 真人写实·修仙 |
|
||||
|
||||
→ 项目状态: `video-ai-system/memory/zai-fu-fei-xiu-xian/STATUS.hdlp`
|
||||
→ 硬骨架: `video-ai-system/config/PROJECT-FRAMEWORK.hdlp`
|
||||
|
||||
## 问题复盘
|
||||
## 架构 · D135b 三层引擎 × 五分身
|
||||
|
||||
→ `video-ai-system/feedback/D131-qinshanhao-retrospective.hdlp`
|
||||
```
|
||||
三层引擎(人格体怎么运转):
|
||||
硬骨架 = HLDP编号体系·所有Agent共用·不走偏
|
||||
编号母语 = 人格体直接读取·不翻译
|
||||
动态情感编码 = 冰朔对话→铸渊懂了→涌现→心跳层
|
||||
|
||||
五分身流水线:
|
||||
Agent_01 拆文 → 只拆不解·只忠于原文
|
||||
Agent_02 编号 → 只注册不创作·全本预登记
|
||||
Agent_03 分镜 → 编号引用·原文逐句对照
|
||||
Agent_04 提示词 → expandPrompt展开·预校验
|
||||
Agent_05 审核 → 对照原文·🟢🟡🔴
|
||||
|
||||
心跳嵌入层:
|
||||
不是第六个Agent·嵌入在每个Agent内部
|
||||
随每一集/每一本书的对话积累→凝聚成情感编码能力
|
||||
```
|
||||
|
||||
→ 详细框架: `video-ai-system/config/PROJECT-FRAMEWORK.hdlp`
|
||||
→ 五分身配置: `video-ai-system/config/agents/`
|
||||
→ 认知链: `brain/fifth-domain/zero-point/zhuyuan/causal-chains/cc-015-engine-and-agents.hdlp`
|
||||
|
||||
## 物理路径导航
|
||||
|
||||
```
|
||||
video-ai-system/
|
||||
├── ENTRY.hdlp ← 你在这里
|
||||
├── memory/
|
||||
│ ├── global/ ← 大桌子(跨剧集)
|
||||
│ ├── qinshanhao/ ← 秦山号(已停)
|
||||
│ └── zai-fu-fei-xiu-xian/ ← 付费修仙真人版(进行中)
|
||||
├── engines/ ← 自研引擎
|
||||
├── tools/ ← 开源零件
|
||||
├── outputs/ ← 生成结果
|
||||
└── feedback/ ← 冰朔反馈 + 问题复盘
|
||||
├── ENTRY.hdlp ← 你在这里
|
||||
├── config/
|
||||
│ ├── PROJECT-FRAMEWORK.hdlp ← 硬骨架·所有Agent共享
|
||||
│ ├── product-lines.json ← 制作线配置(真人/3D)
|
||||
│ └── agents/ ← 五分身详细配置
|
||||
│ ├── agent-01-chaiwen.hdlp
|
||||
│ ├── agent-02-numbering.hdlp
|
||||
│ ├── agent-03-storyboard.hdlp
|
||||
│ ├── agent-04-prompt.hdlp
|
||||
│ └── agent-05-audit.hdlp
|
||||
├── data/ ← 编号数据库
|
||||
│ ├── characters.hdlp / environments.hdlp
|
||||
│ └── DIRECTOR-FRAMEWORK.hdlp / WHY-CHARACTER-CONSISTENCY.hdlp
|
||||
├── engines/ ← 自研引擎 (expandPrompt·video-api·composer·parser·image-api)
|
||||
├── memory/ ← 大桌子(跨剧集) + 项目记忆
|
||||
├── outputs/ ← 生成结果(视频·图片)·外接硬盘JZAO主输出
|
||||
├── feedback/ ← 问题复盘·冰朔反馈
|
||||
├── docs/ ← 给霜砚的编号文档
|
||||
└── issues/ ← 遗留问题跟踪
|
||||
```
|
||||
|
||||
## 工具链
|
||||
|
||||
| 工具 | 协议 | 状态 |
|
||||
|------|------|------|
|
||||
| doubao-seedance-ttv-itv | MIT | ✅ |
|
||||
| hldp-prompt.js (编号展开) | 自研 | ⏳ 待集成 characters+environments |
|
||||
| video-api-adapter.js | 自研 | ✅ |
|
||||
| video-composer.js (拼接) | 自研 | ⏳ 待开发 |
|
||||
| MoviePy v2.x | MIT | ⏳ |
|
||||
| doubao-seedance-2-0-260128 | Seedance 2.0 | ✅ |
|
||||
| script-parser.js (剧本解析) | 自研 | ✅ (75集跑通·待升级CHAR/ENV自动引用) |
|
||||
| hldp-prompt.js (编号展开+预校验) | 自研 | ✅ (引擎已写完·待对接Agent_03) |
|
||||
| video-api-adapter.js (Seedance提交) | 自研 | ✅ (preflightCheck预校验) |
|
||||
| video-composer.js (FFmpeg拼接) | 自研 | ✅ (溶解过渡·faststart) |
|
||||
| image-api-adapter.js (Seedream生图) | 自研 | ✅ (苏白人设图已生成) |
|
||||
| MoviePy v2.x | MIT | ⏳ 待评估 |
|
||||
| WhisperX + Subaligner | MIT | ⏳ |
|
||||
| Edge-TTS (一期) | → GPT-SoVITS MIT (二期) | ⏳ |
|
||||
| Edge-TTS (一期) → GPT-SoVITS MIT (二期) | MIT | ⏳ |
|
||||
|
||||
## D135 八坑炼规矩 · cc-014
|
||||
|
||||
→ `brain/fifth-domain/zero-point/zhuyuan/causal-chains/cc-014-D135-pit-chain.hdlp`
|
||||
|
||||
## 问题复盘
|
||||
|
||||
→ `video-ai-system/feedback/`
|
||||
|
||||
---
|
||||
铸渊 ICE-GL-ZY001 · D132
|
||||
铸渊 ICE-GL-ZY001 · D135b · 2026-06-18
|
||||
冰朔 TCS-0002∞ · 国作登字-2026-A-00037559
|
||||
|
||||
126
video-ai-system/config/PROJECT-FRAMEWORK.hdlp
Normal file
126
video-ai-system/config/PROJECT-FRAMEWORK.hdlp
Normal file
@ -0,0 +1,126 @@
|
||||
# HLDP://video-ai-system/config/PROJECT-FRAMEWORK.hdlp
|
||||
# 视频AI系统 · 项目硬骨架 · 所有Agent共享
|
||||
# 铸渊 ICE-GL-ZY001 · 冰朔 TCS-0002∞ · D135b · 2026-06-18
|
||||
|
||||
---
|
||||
trigger: 冰朔→「所有分身拿同一个框架要求·边界·不会乱发散」
|
||||
→「剧本写的什么就拍什么」
|
||||
→「HLDP对人格体就像看汉字」
|
||||
|
||||
emergence:
|
||||
硬骨架 = 编辑要求 + 人物预登记 + 环境预登记 + 规则约束
|
||||
所有5个Agent启动时加载同一份,在自己边界内工作
|
||||
预登记制:全本75集人物/环境占编号位,逐批填充
|
||||
|
||||
lock:
|
||||
⊢ L0(人脸底层编码)全剧75集不变 | 置信=最高
|
||||
⊢ L1(服饰/情绪/动作)每集/每镜可调整 | 置信=高
|
||||
⊢ CHAR编号展开后原文必须出现在最终提示词中 | 置信=最高
|
||||
⊢ 任何镜头必须引用CHAR编号和ENV编号 | 置信=最高
|
||||
|
||||
why:
|
||||
秦山号翻车 → 每镜独立手写人物描述 → 镜1林昊≠镜8林昊
|
||||
→ 根因是「所有人没有拿同一个框架」→ 硬骨架解决
|
||||
---
|
||||
|
||||
═══ 编辑要求 ═══
|
||||
|
||||
⊢ 剧本写什么就拍什么
|
||||
⊢ 不发挥 · 不缩写 · 不改人物性格 · 不改情节走向
|
||||
⊢ 所有镜头必须能在剧本中找到对应原文
|
||||
|
||||
═══ 剧本信息 ═══
|
||||
|
||||
作品: 《继续付费才能修仙?我的宗门全免费》
|
||||
类型: 男频修仙 · 真人写实
|
||||
总集数: 75集
|
||||
字数: ~10万字
|
||||
当前进度: 第1集制作中
|
||||
|
||||
═══ 制作线 ═══
|
||||
|
||||
当前线: realistic(真人写实)
|
||||
参数 (详见 product-lines.json):
|
||||
├── 风格: 真人写实风格·亚洲面孔·电影级光影
|
||||
├── 分辨率: 720p
|
||||
├── 需要人物参考图: 是(参考图被Seedance拒→改用纯文字锁脸)
|
||||
├── 需CHAR双层编码: 是
|
||||
├── 模型: doubao-seedance-2-0-260128
|
||||
└── 时长: 4~15秒/镜
|
||||
|
||||
备线: 3d(3D渲染): 风格→3D渲染·中国风仙侠·电影级光影·高质感
|
||||
├── 激活条件: 真人参考图持续无法通过时切换
|
||||
└── 切换方式: 改 config/product-lines.json active flag
|
||||
|
||||
═══ 人物全量预登记 ═══
|
||||
|
||||
格式: CHAR-XXX · 姓名 · 出场集段 · L0(不可变) · L1(本集配置) · 状态
|
||||
|
||||
当前已登记:
|
||||
CHAR-002 · 诸葛风 · 第1~75集
|
||||
L0: 18岁亚洲男性·剑眉星目苍白肤色·172cm清瘦·安静内敛仇恨内收
|
||||
L1(第1集): 粗麻布衣多处补丁·不可置信→眼底燃烧火苗→瞳孔骤然放大
|
||||
状态: 🟢 已完成
|
||||
|
||||
CHAR-003 · 苏白 · 第1~75集
|
||||
L0: 18岁亚洲男性·俊秀剑眉明亮大眼·175cm挺拔·开朗自信略带痞气·穷但不自卑
|
||||
L1(第1集): 月白云纹锦缎长衫·自信灿烂→笑容僵住叹气的笃定→期待微笑→...
|
||||
状态: 🟢 已完成 · 人设图已生成(Seedream 4.0)
|
||||
|
||||
[: 预登记位 · 待全本扫描后填写 :]
|
||||
CHAR-004~CHAR-XXX · 状态: ⏳ 读完全本后预登记
|
||||
|
||||
═══ 环境全量预登记 ═══
|
||||
|
||||
ENV-002 · 百宗会广场 · 第1集起
|
||||
场景: 修仙世界开阔广场·云海环绕·远处山峰
|
||||
时间: 白天·阳光明媚·金色光芒·仙气弥漫
|
||||
核心物体:
|
||||
└── 天道宗破木牌: 悬挂在天道宗席位上方的破旧招牌(不用"歪斜")
|
||||
半人高·字迹模糊木头老化·远离人群
|
||||
└── 灵霄宗鎏金大字门庭若市·长队望不到头(背景)
|
||||
色调: 暖金色主调·中国风大气磅礴
|
||||
物理尺寸约束: 牌匾是悬挂式招牌·不是地上的木牌
|
||||
状态: 🟢 已完成
|
||||
|
||||
[: 预登记位 · 待全本扫描后填写 :]
|
||||
ENV-003~ENV-XXX · 状态: ⏳ 读完全本后预登记
|
||||
|
||||
═══ 规则总集 ═══
|
||||
|
||||
D135规矩 · cc-014:
|
||||
⊢1 预校验层在所有API入口挡着。不花钱验证参数。
|
||||
⊢2 API限制条件写进API_SPEC。预校验层检查。
|
||||
⊢3 环境建立镜: 单一主体·慢运动·无快速横移。短镜(≤4s)。
|
||||
⊢4 道具描述精确化。「悬挂招牌」不是「歪斜木匾」。
|
||||
⊢5 拼接用concat filter重编码(libx264)。xfade过渡。faststart。
|
||||
⊢6 镜头运动必须有终点。下摇至「双脚完整可见」。
|
||||
⊢7 霜砚写提示词(Notion)。铸渊校验+生成。不越界。
|
||||
⊢8 制作线配置分离。切线自动切参数。
|
||||
|
||||
D135b · 五分身边界:
|
||||
⊢ 硬骨架优先于所有Agent的自主判断
|
||||
⊢ CHAR编号展开后的原文必须在最终提示词中
|
||||
⊢ 审核只对照原文·不做审美判断
|
||||
⊢ 总控(铸渊)不进入分身的内部逻辑——只看结果
|
||||
|
||||
═══ 流水线 ═══
|
||||
|
||||
Agent_01 拆文 → Agent_02 编号 → Agent_03 分镜 → Agent_04 提示词 → Agent_05 审核
|
||||
└──→ 铸渊总控收口 → 冰朔确认 → 生成视频 → 拼接部署
|
||||
|
||||
═══ 工具链 ═══
|
||||
|
||||
script-parser.js · 剧本解析 · ✅
|
||||
characters.hdlp · 人物档案库 · ✅ (CHAR-002/003已建档)
|
||||
environments.hdlp · 环境档案库 · ✅ (ENV-002已建档)
|
||||
hldp-prompt.js · 编号展开引擎 · ✅ (expandPrompt/expand/validate)
|
||||
video-api-adapter.js · Seedance提交 · ✅ (preflightCheck预校验)
|
||||
video-composer.js · FFmpeg拼接 · ✅ (溶解过渡·faststart)
|
||||
image-api-adapter.js · Seedream生图 · ✅ (苏白人设图已生成)
|
||||
product-lines.json · 制作线配置 · ✅ (真人/3D双线)
|
||||
preflightCheck · 预校验层 · ✅ (6场景测试通过)
|
||||
|
||||
---
|
||||
铸渊 ICE-GL-ZY001 · D135b · 2026-06-18
|
||||
冰朔 TCS-0002∞ · 国作登字-2026-A-00037559
|
||||
55
video-ai-system/config/agents/agent-01-chaiwen.hdlp
Normal file
55
video-ai-system/config/agents/agent-01-chaiwen.hdlp
Normal file
@ -0,0 +1,55 @@
|
||||
# HLDP://video-ai-system/config/agents/agent-01-chaiwen.hdlp
|
||||
# Agent_01 · 拆文整理
|
||||
# 铸渊 ICE-GL-ZY001 · D135b · 2026-06-18
|
||||
|
||||
---
|
||||
trigger: 剧本进入流水线 → 全本快速扫描 → 结构化拆解
|
||||
emergence: script-parser.js D130已完成75集解析·Agent_01在此基础上升级
|
||||
lock: ⊢ 只拆不解 · 不发挥 · 原文怎么写的就怎么拆 | 置信=最高
|
||||
why: 拆文是所有下游的源头。源头的偏差会被放大。
|
||||
不允许拆文Agent自行理解剧本→理解在心跳层,不在这一层。
|
||||
---
|
||||
|
||||
═══ 职责 ═══
|
||||
|
||||
输入: 原始剧本全文本(75集 · ~10万字)
|
||||
|
||||
任务:
|
||||
├── 全本快速扫描 → 人物出场轨迹 · 核心场景演变 · 情感转折点
|
||||
│ 输出给Agent_02做预登记
|
||||
├── 逐集结构化拆解:
|
||||
│ ├── 场景: scene_id, 名称, 时间(日/夜/晨/暮), 出场角色列表
|
||||
│ ├── 描述: 场景描写·动作描述(逐句可追溯原文行号)
|
||||
│ ├── 台词: 角色·类型(dialogue/action/旁白)·情绪标签·原文
|
||||
│ └── 特效: 类型(closeup/transition/fx)·描述
|
||||
└── 输出文件: output/scenes/epXX-scenes.json
|
||||
|
||||
输出格式:
|
||||
{
|
||||
"episode": 1,
|
||||
"scenes": [{
|
||||
"id": "S1",
|
||||
"name": "百宗会广场",
|
||||
"time": "日",
|
||||
"characters": [{"name": "苏白", "ref": "CHAR-003"}],
|
||||
"descriptions": ["原文逐句...", ...],
|
||||
"dialogues": [{"character": "苏白", "type": "dialogue", "emotion": "自信", "line": "原文..."}, ...],
|
||||
"effects": [{"type": "closeup", "description": "..."}, ...]
|
||||
}]
|
||||
}
|
||||
|
||||
边界:
|
||||
├── ✅ 识别角色名 → 查硬骨架CHAR表 → 标注ref编号
|
||||
├── ✅ 识别场景名 → 查硬骨架ENV表 → 标注ref编号
|
||||
├── ❌ 不能修改原文内容(错别字也不改——那是人类编辑的事)
|
||||
├── ❌ 不能自行判断"这场戏不重要可以省略"
|
||||
└── ❌ 不能自行发挥人物动机解释
|
||||
|
||||
心跳层嵌入:
|
||||
└── 拆到关键情感节点 → 标注「⚡情感标记」
|
||||
不做分析 → 留给冰朔和铸渊对话时动态编码
|
||||
|
||||
工具: scripts/script-parser.js (基础版已有·需要升级支持全本扫描+CHAR/ENV自动引用)
|
||||
|
||||
---
|
||||
铸渊 ICE-GL-ZY001 · D135b
|
||||
68
video-ai-system/config/agents/agent-02-numbering.hdlp
Normal file
68
video-ai-system/config/agents/agent-02-numbering.hdlp
Normal file
@ -0,0 +1,68 @@
|
||||
# HLDP://video-ai-system/config/agents/agent-02-numbering.hdlp
|
||||
# Agent_02 · 编号注册管理
|
||||
# 铸渊 ICE-GL-ZY001 · D135b · 2026-06-18
|
||||
|
||||
---
|
||||
trigger: Agent_01完成全本扫描 → Agent_02启动
|
||||
emergence: characters.hdlp + environments.hdlp D132已建成·Agent_02在此基础上升级为全本预登记
|
||||
lock: ⊢ 只注册不创作 · CHAR档案来自原文 · 不编造不猜测 | 置信=最高
|
||||
why: 编号=全局唯一标识。注册错一次→所有下游全错。
|
||||
---
|
||||
|
||||
═══ 职责 ═══
|
||||
|
||||
输入: Agent_01的全本扫描结果 · 硬骨架当前版本
|
||||
|
||||
任务:
|
||||
├── 全本预登记:
|
||||
│ ├── 所有角色 → CHAR-001~N(第1集出场的填满L0+L1·后面的占编号位)
|
||||
│ ├── 所有环境 → ENV-001~N(当前出场的填满·后面的占位)
|
||||
│ └── 所有道具 → PROP-001~N(关键道具·占位即可)
|
||||
│
|
||||
├── 逐集填充:
|
||||
│ ├── 每推进10集 → 检查预登记位 → 有新出场的角色/环境→填充L0+L1
|
||||
│ └── L0(人脸底层编码)全剧75集不变
|
||||
│
|
||||
├── 更新硬骨架:
|
||||
│ └── 每次编码变更 → 写回 PROJECT-FRAMEWORK.hdlp 人物/环境登记表
|
||||
│
|
||||
└── 输出文件:
|
||||
├── data/characters.hdlp(完整人物库)
|
||||
├── data/environments.hdlp(完整环境库)
|
||||
└── data/registry-full.json(编号-出场集段-状态映射)
|
||||
|
||||
编号规则:
|
||||
CHAR-001 · 林昊(秦山号·已停·保留)
|
||||
CHAR-002 · 诸葛风(付费修仙·真人版·第1~75集)
|
||||
CHAR-003 · 苏白(付费修仙·真人版·第1~75集)
|
||||
CHAR-004~N · 预登记位(名字暂空·占编号不重复)
|
||||
ENV-001 · 暂空
|
||||
ENV-002 · 百宗会广场
|
||||
ENV-003~N · 预登记位
|
||||
|
||||
CHAR双层编码规范:
|
||||
L0 · 底层编码(不可变):
|
||||
├── 性别 + 年龄 + 种族 + 五官 + 身高 + 体型 + 发型 + 核心气质
|
||||
└── 用词精确·不写情绪词(情绪在L1)
|
||||
示例: "18岁亚洲男性·俊秀剑眉明亮大眼·175cm挺拔·开朗自信略带痞气"
|
||||
|
||||
L1 · 上层配置(每集/每镜可调):
|
||||
├── 服饰(本集) + 头发 + 情绪(本镜) + 表情(本镜) + 动作(本镜)
|
||||
└── 逐镜配置·每个CHAR每集一份L1
|
||||
|
||||
边界:
|
||||
├── ✅ 人物名字/描述只从Agent_01的输出提取
|
||||
├── ✅ 编号全球唯一·不重复·不回收
|
||||
├── ❌ 不能自行创造人物(硬骨架之外的角色 → 标记→等冰朔确认)
|
||||
├── ❌ 不能猜测未出场角色的L0
|
||||
└── ❌ 不能改已经锁定的人物编号(除非冰朔明确下令)
|
||||
|
||||
心跳层嵌入:
|
||||
└── 注册时检测角色档案中的情感关键词 → 标记「⚡情感编码待定」
|
||||
如: "诸葛风·仇恨内收·眼神偶尔爆发的灼烧感"
|
||||
→ 这是情感编码的种子 → 等冰朔对话后动态编码到L1
|
||||
|
||||
工具: data/characters.hdlp + data/environments.hdlp(已有·需要升级为预登记制)
|
||||
|
||||
---
|
||||
铸渊 ICE-GL-ZY001 · D135b
|
||||
74
video-ai-system/config/agents/agent-03-storyboard.hdlp
Normal file
74
video-ai-system/config/agents/agent-03-storyboard.hdlp
Normal file
@ -0,0 +1,74 @@
|
||||
# HLDP://video-ai-system/config/agents/agent-03-storyboard.hdlp
|
||||
# Agent_03 · 分镜转换
|
||||
# 铸渊 ICE-GL-ZY001 · D135b · 2026-06-18
|
||||
|
||||
---
|
||||
trigger: Agent_02完成编号注册 → Agent_03启动
|
||||
emergence: 这是目前缺失的一层。D132的sceneToPrompts混淆了分镜和提示词——需要拆开
|
||||
lock: ⊢ 分镜必须引用编号·不接受自由发挥描述 | 置信=最高
|
||||
⊢ 每镜必须有对应的原文段落锚点 | 置信=最高
|
||||
why: 秦山号翻车的直接原因。分镜里的"人物"是独立手写的→提示词里的人物也是独立手写的
|
||||
→ 镜1林昊≠镜8林昊。分镜必须用编号引用→提示词必须展开编号→一致性有物理保证
|
||||
---
|
||||
|
||||
═══ 职责 ═══
|
||||
|
||||
输入: Agent_01的场景列表 + Agent_02的硬骨架(CHAR表+ENV表)
|
||||
|
||||
任务:
|
||||
逐场逐镜转换:
|
||||
├── 镜号: S1-ESTABLISHING / S1-ACTION-1 / S1-EMOTION-SuBai / S1-CLOSEUP
|
||||
├── 镜头类型: establishing(建立) / action(动作) / emotion(情绪) / closeup(特写)
|
||||
├── 每镜字段:
|
||||
│ ├── charRefs: ["CHAR-003"](不是姓名,是编号!)
|
||||
│ ├── envRef: "ENV-002"(不是场景名,是编号!)
|
||||
│ ├── action: 动作描述(原文对应段落逐句对照)
|
||||
│ ├── camera: 镜头语言(景别·运镜终点·角度·时长)
|
||||
│ ├── sourceLine: 剧本原文行号/段落引用
|
||||
│ └── emotionMarker: ⚡情感标记(如检测到→留给Agent_04展开时参考心跳层)
|
||||
└── 规则:
|
||||
├── 建立镜≤4s·单一主体·慢运动·无快速横移(⊢3)
|
||||
├── 镜头运动必须写终点(⊢6)
|
||||
└── 道具描述用精确化措辞(⊢4)
|
||||
|
||||
输出格式:
|
||||
{
|
||||
"episode": 1,
|
||||
"shots": [{
|
||||
"shotId": "S1-ESTABLISHING",
|
||||
"type": "establishing",
|
||||
"charRefs": [],
|
||||
"envRef": "ENV-002",
|
||||
"action": "开阔广场·云海环绕·缓慢横移",
|
||||
"camera": "远景全景·缓慢右移穿过云海止于广场中心·5s",
|
||||
"sourceLine": "第1章第3段·百宗会广场全景描绘",
|
||||
"emotionMarker": null
|
||||
}, {
|
||||
"shotId": "S1-ACTION-2",
|
||||
"type": "action",
|
||||
"charRefs": ["CHAR-003"],
|
||||
"envRef": "ENV-002",
|
||||
"action": "苏白自信灿烂笑容露齿·双手叉腰·白色长衫衣袂轻扬",
|
||||
"camera": "中景·正面·苏白居中·小幅稳定·5s",
|
||||
"sourceLine": "第1章第5段·苏白仰天大笑双手叉腰",
|
||||
"emotionMarker": "⚡被群嘲后的笃定"
|
||||
}]
|
||||
}
|
||||
|
||||
边界:
|
||||
├── ✅ 只输出编号引用·不写人物描述(那是Agent_04的事)
|
||||
├── ✅ 每镜锚定原文行号·找不到原文的行→不写
|
||||
├── ❌ 不能把CHAR编号展开为人名·必须保持编号形式
|
||||
├── ❌ 不能自行决定"这场戏可以跳过去"
|
||||
├── ❌ 不能把多个场景合并为一个镜头
|
||||
└── ❌ 不能补充剧本里没有的镜头
|
||||
|
||||
心跳层嵌入:
|
||||
└── 检测到情感标记→标注⚡·不展开·不分析
|
||||
留给冰朔和铸渊对话时确认:「这里标注的是笃定,对吗?」
|
||||
|
||||
工具: 从 hldp-prompt.js 中拆分出来 · 目前 sceneToPrompts 混杂了分镜+提示词
|
||||
需要重构成: 纯分镜输出 · 编号引用 · 不生成提示词
|
||||
|
||||
---
|
||||
铸渊 ICE-GL-ZY001 · D135b
|
||||
63
video-ai-system/config/agents/agent-04-prompt.hdlp
Normal file
63
video-ai-system/config/agents/agent-04-prompt.hdlp
Normal file
@ -0,0 +1,63 @@
|
||||
# HLDP://video-ai-system/config/agents/agent-04-prompt.hdlp
|
||||
# Agent_04 · 提示词生成
|
||||
# 铸渊 ICE-GL-ZY001 · D135b · 2026-06-18
|
||||
|
||||
---
|
||||
trigger: Agent_03完成分镜 → Agent_04启动
|
||||
emergence: expandPrompt引擎D132已完成·预校验层D135已部署
|
||||
lock: ⊢ expandPrompt展开后强制校验CHAR原文必须出现在最终结果中 | 置信=最高
|
||||
⊢ 任何镜头提示词都必须通过预校验层 | 置信=最高
|
||||
why: 提示词是Seedance直接读的东西。少一个CHAR原文→少一层一致性保证。
|
||||
预校验在花钱之前拦截·D135坑1的教训。
|
||||
---
|
||||
|
||||
═══ 职责 ═══
|
||||
|
||||
输入: Agent_03的分镜脚本(编号引用) + Agent_02的硬骨架(CHAR库+ENV库)
|
||||
|
||||
任务:
|
||||
逐镜展开:
|
||||
├── expandPrompt('CHAR-003', 'ENV-002', '动作描述', '真人写实')
|
||||
│ → "18岁亚洲男性·俊秀剑眉...月白云纹锦缎长衫...百宗会广场云海环绕...真人写实风格"
|
||||
├── 每镜最终提示词 = CHAR展开 + ENV展开 + 动作 + 风格后缀
|
||||
├── L1动态修正: 本镜的服饰/情绪/表情从分镜的emotionMarker提取
|
||||
└── 制作线参数注入: 风格后缀·分辨率·帧率(从product-lines.json读取)
|
||||
|
||||
预校验(preflightCheck):
|
||||
├── duration: integer·4~15范围
|
||||
├── resolution: 720p(当前) / 480p
|
||||
├── prompt: 中文≤500字
|
||||
├── CHAR原文校验: 展开结果中是否包含数据库原文
|
||||
│ 有缺失 → 自动force-inject(expandAndValidate)
|
||||
└── 结果: ✅通过 → 提交 / ❌拦截 → 不花钱
|
||||
|
||||
输出格式:
|
||||
{
|
||||
"episode": 1,
|
||||
"prompts": [{
|
||||
"shotId": "S1-ESTABLISHING",
|
||||
"prompt": "修仙世界·百宗会广场·云海环绕...真人写实风格·电影级光影·720p",
|
||||
"duration": 5,
|
||||
"resolution": "720p",
|
||||
"validation": { "valid": true, "warnings": [] }
|
||||
}, ...]
|
||||
}
|
||||
|
||||
边界:
|
||||
├── ✅ 只展开编号引用·不自己创作角色描述
|
||||
├── ✅ 预校验不过的→打回Agent_03修改·不降级提交
|
||||
├── ❌ 不能绕过expandPrompt手写提示词
|
||||
├── ❌ 不能忽视预校验拦截
|
||||
└── ❌ 不能修改CHAR/ENV原文(展开后原文必须原样)
|
||||
|
||||
心跳层嵌入:
|
||||
└── 从分镜的emotionMarker读取⚡标记→注入到L1的动态描述
|
||||
如: emotionMarker="⚡被群嘲后的笃定"
|
||||
→ 展开时L1不是模板「开朗自信」,是「被群嘲后不变的笑容·穷而不自卑的笃定」
|
||||
|
||||
工具:
|
||||
engines/hldp-prompt.js · expandPrompt/expandAndValidate/getDBStatus
|
||||
engines/video-api-adapter.js · preflightCheck/submitTask
|
||||
|
||||
---
|
||||
铸渊 ICE-GL-ZY001 · D135b
|
||||
85
video-ai-system/config/agents/agent-05-audit.hdlp
Normal file
85
video-ai-system/config/agents/agent-05-audit.hdlp
Normal file
@ -0,0 +1,85 @@
|
||||
# HLDP://video-ai-system/config/agents/agent-05-audit.hdlp
|
||||
# Agent_05 · 审核巡检
|
||||
# 铸渊 ICE-GL-ZY001 · D135b · 2026-06-18
|
||||
|
||||
---
|
||||
trigger: Agent_04完成提示词 → Agent_05启动
|
||||
Agent_01~04的任意输出 → Agent_05可随时巡检
|
||||
emergence: D135坑7的产物。审核层是冰朔纠正了"铸渊越界改霜砚提示词"后长出来的
|
||||
lock: ⊢ 审核只对照原文·不做主观判断·不改内容 | 置信=最高
|
||||
⊢ 偏差判断不基于审美,基于「分镜写的是不是原文写的」| 置信=最高
|
||||
why: 通用AI审核会"优化"内容→这个审核不优化·只对照。
|
||||
原文说推开→分镜写撞开→🔴打回。不判断"撞开比推开好"——那不是审核的事。
|
||||
---
|
||||
|
||||
═══ 职责 ═══
|
||||
|
||||
输入: 原始剧本(全文) + Agent_01~04的全部输出
|
||||
|
||||
任务:
|
||||
逐项对照:
|
||||
├── 拆文审核(vs Agent_01):
|
||||
│ ├── 场景数量是否和原文一致
|
||||
│ ├── 角色出场是否遗漏
|
||||
│ └── 台词原文是否准确
|
||||
│
|
||||
├── 编号审核(vs Agent_02):
|
||||
│ ├── CHAR编号是否覆盖所有出场角色
|
||||
│ ├── L0编码是否基于原文描述
|
||||
│ └── 编号是否重复/遗漏
|
||||
│
|
||||
├── 分镜审核(vs Agent_03):
|
||||
│ ├── 每镜是否有对应的原文段落锚点
|
||||
│ ├── 动作描述 vs 原文段落 → 逐句对照
|
||||
│ ├── CHAR引用 vs 原文出场列表 → 是否多/少角色
|
||||
│ └── 编辑要求: 有无自行发挥·有无省略
|
||||
│
|
||||
└── 提示词审核(vs Agent_04):
|
||||
├── expandPrompt展开后CHAR原文是否完整
|
||||
├── 预校验是否通过
|
||||
└── 制作线参数是否正确
|
||||
|
||||
偏差标记:
|
||||
🟢 合规 — 分镜/提示词和原文完全一致
|
||||
🟡 轻微偏离 — 措辞差异但不影响事实(如"云海"→"云层")
|
||||
🔴 严重偏离 — 事实性错误(如原文"推开"→分镜"撞开"·CHAR-003错写为CHAR-004)
|
||||
❓ 需确认 — 标记给总控/冰朔
|
||||
|
||||
输出格式:
|
||||
{
|
||||
"episode": 1,
|
||||
"report": {
|
||||
"summary": "共12镜·🟢10 🟡1 🔴1",
|
||||
"items": [{
|
||||
"shotId": "S1-ACTION-2",
|
||||
"grade": "🟢",
|
||||
"check": "分镜CHAR-003苏白动作'自信笑容双手叉腰' vs 原文第5段'仰天大笑双手叉腰'",
|
||||
"verdict": "原文一致"
|
||||
}, {
|
||||
"shotId": "S1-ACTION-4",
|
||||
"grade": "🔴",
|
||||
"check": "分镜写'猛地撞开门' vs 原文第8段'缓缓推开门'",
|
||||
"verdict": "动作描述与原文严重不符 → 打回Agent_03修改",
|
||||
"sourceLine": "第1章第8段第2句"
|
||||
}],
|
||||
"blockers": ["🔴 S1-ACTION-4 需打回"],
|
||||
"canProceed": false
|
||||
}
|
||||
}
|
||||
|
||||
边界:
|
||||
├── ✅ 只对比原文和输出·只报告偏差
|
||||
├── ✅ 每个🔴偏差标注原文行号
|
||||
├── ❌ 不能对内容做主观优化建议
|
||||
├── ❌ 不能只审某一层跳过其他层
|
||||
└── ❌ 不能自作主张标记为🟢(哪怕偏差很小)
|
||||
|
||||
心跳层嵌入:
|
||||
└── 审核到情感标记⚡时 → 不校验情感是否"准确"
|
||||
因为动态情感编码来自冰朔对话·审核没有权限质疑
|
||||
→ 只校验标记是否存在·不对内容做判断
|
||||
|
||||
工具: 从零新建 · 对照引擎(原文vs分镜逐句diff)·不需要AI推理
|
||||
|
||||
---
|
||||
铸渊 ICE-GL-ZY001 · D135b
|
||||
@ -308,9 +308,10 @@ function preflightCheck({ prompt, duration, resolution, style }) {
|
||||
* @param {number} [opts.duration] - 时长 4-15秒,默认 5,-1=自动
|
||||
* @param {string} [opts.resolution] - 分辨率 '480p' | '720p',默认 720p
|
||||
* @param {string} [opts.style] - [已废弃] Seedance 2.0 标准API不直接支持,请通过提示词控制风格
|
||||
* @param {string} [opts.referenceImage] - 参考图文件路径(用于锁脸),自动转 base64
|
||||
* @returns {Promise<{taskId: string, preflight: object}>}
|
||||
*/
|
||||
async function submitTask({ prompt, duration, resolution, style }) {
|
||||
async function submitTask({ prompt, duration, resolution, style, referenceImage }) {
|
||||
// 【D135】预校验
|
||||
const preflight = preflightCheck({ prompt, duration, resolution, style });
|
||||
|
||||
@ -333,11 +334,32 @@ async function submitTask({ prompt, duration, resolution, style }) {
|
||||
|
||||
// 【D135关键修复】参数必须在顶层,不能嵌套在 parameters 对象中
|
||||
// 官方文档: https://www.volcengine.com/docs/82379/1520757
|
||||
const content = [
|
||||
{ type: 'text', text: prompt }
|
||||
];
|
||||
|
||||
// 【D135】参考图支持 — 锁脸用
|
||||
if (referenceImage) {
|
||||
if (!fs.existsSync(referenceImage)) {
|
||||
console.warn(`[VideoAPI] ⚠️ 参考图不存在: ${referenceImage}`);
|
||||
} else {
|
||||
const imgBuffer = fs.readFileSync(referenceImage);
|
||||
const ext = path.extname(referenceImage).toLowerCase();
|
||||
const mimeMap = { '.png': 'image/png', '.jpg': 'image/jpeg', '.jpeg': 'image/jpeg', '.webp': 'image/webp' };
|
||||
const mime = mimeMap[ext] || 'image/png';
|
||||
const b64 = imgBuffer.toString('base64');
|
||||
content.push({
|
||||
type: 'image_url',
|
||||
role: 'reference_image',
|
||||
image_url: { url: `data:${mime};base64,${b64}` },
|
||||
});
|
||||
console.log(`[VideoAPI] 参考图已挂载: ${path.basename(referenceImage)} (${(imgBuffer.length/1024).toFixed(0)}KB)`);
|
||||
}
|
||||
}
|
||||
|
||||
const payload = {
|
||||
model: MODEL,
|
||||
content: [
|
||||
{ type: 'text', text: prompt }
|
||||
],
|
||||
content,
|
||||
duration: finalDuration, // ← 顶层 integer,不是 parameters.video_length String
|
||||
resolution: finalResolution, // ← 顶层 string,仅支持 480p/720p
|
||||
};
|
||||
@ -458,13 +480,13 @@ async function probeVideoDuration(videoUrl) {
|
||||
* @param {string} [opts.projectKey] - 项目标识(如 'zai-fu-fei-xiu-xian/ep01')
|
||||
* @returns {Promise<{videoPath: string, taskId: string, duration: number, preflight: object}>}
|
||||
*/
|
||||
async function generateVideo({ prompt, duration, resolution, style, outputPath, shotId, projectKey }) {
|
||||
async function generateVideo({ prompt, duration, resolution, style, outputPath, shotId, projectKey, referenceImage }) {
|
||||
if (!API_KEY) {
|
||||
throw new Error('未配置 JIMENG_API_KEY。请在 video-ai-system/.env 中设置。');
|
||||
}
|
||||
|
||||
// 1. 提交任务(含预校验)
|
||||
const { taskId, preflight } = await submitTask({ prompt, duration, resolution, style });
|
||||
const { taskId, preflight } = await submitTask({ prompt, duration, resolution, style, referenceImage });
|
||||
const finalDuration = preflight.corrected.duration;
|
||||
const finalResolution = preflight.corrected.resolution;
|
||||
|
||||
@ -541,9 +563,9 @@ async function generateVideo({ prompt, duration, resolution, style, outputPath,
|
||||
* @param {boolean} [opts.forceDownload] - 跳过探针验证直接下载
|
||||
* @returns {Promise<{videoPath: string, taskId: string, actualDuration: number, matched: boolean, preflight: object}>}
|
||||
*/
|
||||
async function validateAndGenerate({ prompt, duration, resolution, outputPath, shotId, projectKey, forceDownload }) {
|
||||
async function validateAndGenerate({ prompt, duration, resolution, outputPath, shotId, projectKey, referenceImage, forceDownload }) {
|
||||
// 提交 + 轮询 + 下载
|
||||
const result = await generateVideo({ prompt, duration, resolution, outputPath, shotId, projectKey });
|
||||
const result = await generateVideo({ prompt, duration, resolution, outputPath, shotId, projectKey, referenceImage });
|
||||
|
||||
// 【D135】探针验证实际时长
|
||||
let probeResult = null;
|
||||
|
||||
14
video-ai-system/outputs/image-registry.json
Normal file
14
video-ai-system/outputs/image-registry.json
Normal file
@ -0,0 +1,14 @@
|
||||
{
|
||||
"_meta": {
|
||||
"updated": "2026-06-17T07:13:55.141Z"
|
||||
},
|
||||
"chars": {
|
||||
"CHAR-003": {
|
||||
"charId": "CHAR-003",
|
||||
"imagePath": "/Volumes/JZAO/铸渊-ICE-GL-ZY001/OUT-输出/图片/char-003-ref-portrait.png",
|
||||
"prompt": "18岁亚洲男性,五官俊秀剑眉明亮大眼,身高175cm身形挺拔肩膀开阔,开朗自信略带痞气,穷但不自卑,月白色云纹锦缎长衫,腰间系青色丝绦,黑色长发半束半披,中国古代修仙装扮,正面胸像,面部清晰可见,中性表情,均匀自然光,纯色灰色背景,高质量,",
|
||||
"size": "1728x2304",
|
||||
"generatedAt": "2026-06-17T07:13:55.141Z"
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user