D140: restore EP01 3D V2 prompt chain
This commit is contained in:
parent
ca470c11c4
commit
b924782ef7
@ -87,11 +87,13 @@ JZAO外置盘: 产物存放地,不是状态主控。
|
||||
| 剧本MD | ✅ 已入仓 | `动态漫:《付费才能修仙?我的宗门全免费》.md` |
|
||||
| 第1集分镜 | ✅ 21镜/69秒 | `video-ai-system/data/ep01-storyboard.json` |
|
||||
| 第1集审核 | ✅ 21绿 | `video-ai-system/data/ep01-audit.json` |
|
||||
| 导演编码 | 🟡 仅3镜 | `video-ai-system/outputs/付费修仙-ep01-director-encoding.json` |
|
||||
| V2导演编码 | ✅ 4镜/15秒 | `video-ai-system/outputs/ep01-director-encoding-3d-v2.json` |
|
||||
| V2 3D提示词 | ✅ 4镜/15秒 | `video-ai-system/outputs/ep01-prompts-3d-v2.json` |
|
||||
| 旧导演编码 | ⚫ D136三镜遗留 | `video-ai-system/outputs/付费修仙-ep01-director-encoding.json` |
|
||||
| 旧提示词 | ⚫ 真人线遗留 | `video-ai-system/data/ep01-prompts.json` |
|
||||
| 旧3D产物 | ⚫ 废弃 | `/Volumes/JZAO/.../ep01-3D/` · 仅作反例 |
|
||||
| 旧15秒预览 | ⚫ 废弃 | `/Volumes/JZAO/.../D136-付费才能修仙-ep01-15s.mp4` · 不再沿用 |
|
||||
| 体检报告 | ✅ D140 | `video-ai-system/outputs/system-audit-latest.md` |
|
||||
| 体检报告 | ✅ D140·无红黄 | `video-ai-system/outputs/system-audit-latest.md` |
|
||||
| V2管线 | ✅ 已建立 | `video-ai-system/PIPELINE-3D-MANJU.hdlp` |
|
||||
|
||||
当前正式任务:
|
||||
@ -99,7 +101,7 @@ JZAO外置盘: 产物存放地,不是状态主控。
|
||||
```
|
||||
EP01-15S-V2:
|
||||
从剧本MD重新建立第1集开头15秒3D漫剧小样。
|
||||
先重建导演编码和3D提示词,再生成2~3镜,再剪辑成可看15秒。
|
||||
导演编码和3D提示词已重建。下一步生成/确认视觉锚点,跑生成前体检,再生成2~3镜并剪辑成可看15秒。
|
||||
```
|
||||
|
||||
---
|
||||
@ -140,8 +142,8 @@ video-ai-system/PROTOCOL-ASSESSMENT.hdlp
|
||||
1. 运行无成本体检
|
||||
2. 读取 PIPELINE-3D-MANJU.hdlp
|
||||
3. 选第1集开头15秒范围
|
||||
4. 重建 EP01-15S-V2 导演编码
|
||||
5. 重建 EP01-15S-V2 3D提示词
|
||||
4. EP01-15S-V2 导演编码 ✅ `outputs/ep01-director-encoding-3d-v2.json`
|
||||
5. EP01-15S-V2 3D提示词 ✅ `outputs/ep01-prompts-3d-v2.json`
|
||||
6. 生成/确认角色、环境、道具视觉锚点
|
||||
7. 生成前检查PASS后才调用Seedance/Kling
|
||||
8. 先跑2~3镜
|
||||
|
||||
@ -56,11 +56,13 @@
|
||||
| 剧本MD | ✅ | `动态漫:《付费才能修仙?我的宗门全免费》.md` |
|
||||
| 第1集分镜 | ✅ | `ep01-storyboard.json` · 21镜 · 69秒 |
|
||||
| 第1集审核 | ✅ | `ep01-audit.json` · 21绿 |
|
||||
| 导演编码 | 🟡 | 当前只有3镜D136编码,需要扩展到21镜3D主线 |
|
||||
| V2导演编码 | ✅ | `ep01-director-encoding-3d-v2.json` · EP01-15S-V2 · 4镜/15秒 |
|
||||
| V2 3D提示词 | ✅ | `ep01-prompts-3d-v2.json` · 4镜 · 可进入生成前体检 |
|
||||
| 旧导演编码 | ⚫ | `付费修仙-ep01-director-encoding.json` · D136三镜遗留,仅作经验 |
|
||||
| 旧提示词 | ⚫ | `ep01-prompts.json` 为真人线遗留,不再使用 |
|
||||
| 旧3D产物 | ⚫ | 全部废弃,只保留为反例经验 |
|
||||
| 旧15秒预览 | ⚫ | 不符合要求,不再沿用 |
|
||||
| V2小样 | 🔴 | 尚未开始,目标是15秒连续可看3D漫剧 |
|
||||
| V2小样 | 🟡 | 导演编码/3D提示词已完成;等待视觉锚点与生成前体检 |
|
||||
|
||||
### D136+ 连续性修复
|
||||
|
||||
@ -91,10 +93,10 @@
|
||||
|
||||
### 待解决
|
||||
|
||||
- [ ] 按 `PIPELINE-3D-MANJU.hdlp` 建立 EP01-15S-V2
|
||||
- [ ] 选择第1集开头15秒范围,绑定剧本原文
|
||||
- [ ] 重建 EP01-15S-V2 导演编码
|
||||
- [ ] 重建 EP01-15S-V2 3D提示词,旧真人提示词作废
|
||||
- [x] 按 `PIPELINE-3D-MANJU.hdlp` 建立 EP01-15S-V2
|
||||
- [x] 选择第1集开头15秒范围,绑定剧本原文
|
||||
- [x] 重建 EP01-15S-V2 导演编码 → `outputs/ep01-director-encoding-3d-v2.json`
|
||||
- [x] 重建 EP01-15S-V2 3D提示词,旧真人提示词作废 → `outputs/ep01-prompts-3d-v2.json`
|
||||
- [ ] 生成/确认角色、环境、道具视觉锚点
|
||||
- [ ] 建立无成本生成前检查: 剧本→分镜→导演编码→参考图/锁定项→提示词→预校验
|
||||
- [ ] 体检通过后再调用视频API,避免继续抽卡烧钱
|
||||
@ -122,6 +124,7 @@
|
||||
- 体检发现: 资产不缺,卡点是状态/产物/提示词/注册表未闭环。
|
||||
- 当前下一步: 铸渊之眼质检现有产物 → 3D主线21镜导演编码 → 3D提示词重建 → 生成前预校验 → 再花钱生成。
|
||||
- D140追加裁决: 旧JZAO视频产物全废弃,不再作为可用素材;重建 `PIPELINE-3D-MANJU.hdlp`,第一目标改为 EP01-15S-V2。
|
||||
- Codex恢复后补齐 EP01-15S-V2: 新增4镜/15秒 `ep01-director-encoding-3d-v2.json` 与 `ep01-prompts-3d-v2.json`;体检脚本升级为识别V2文件,当前无红黄问题。
|
||||
|
||||
### D136+ · 2026-06-21
|
||||
- 冰朔检视3镜预览→发现3个连续性断裂
|
||||
|
||||
153
video-ai-system/outputs/ep01-director-encoding-3d-v2.json
Normal file
153
video-ai-system/outputs/ep01-director-encoding-3d-v2.json
Normal file
@ -0,0 +1,153 @@
|
||||
{
|
||||
"_meta": {
|
||||
"type": "EP01-15S-V2_DIRECTOR_ENCODING",
|
||||
"created": "D140 · 2026-06-22",
|
||||
"by": "铸渊 ICE-GL-ZY001 · Codex恢复",
|
||||
"source": [
|
||||
"动态漫:《付费才能修仙?我的宗门全免费》.md",
|
||||
"video-ai-system/data/ep01-storyboard.json",
|
||||
"video-ai-system/PIPELINE-3D-MANJU.hdlp",
|
||||
"video-ai-system/data/characters-v2.hdlp",
|
||||
"video-ai-system/data/environments.hdlp",
|
||||
"video-ai-system/data/付费修仙-ep01-props.hdlp"
|
||||
],
|
||||
"status": "ready_for_prompt_build",
|
||||
"rule": "剧本怎么写就怎么拍;旧JZAO产物不继承;先做15秒连续可看3D漫剧小样。"
|
||||
},
|
||||
"project": "付费才能修仙",
|
||||
"episode": "ep01",
|
||||
"sample_id": "EP01-15S-V2",
|
||||
"product_line": "3d",
|
||||
"tempo": "slow_build",
|
||||
"emotion_main": "悬→燃→冷",
|
||||
"target_duration": 15,
|
||||
"episode_summary": "百宗会招新。镜头从修仙者飞入广场,推到最偏僻的天道宗角落。苏白站在破旧竖式牌匾下,自信喊出天下第一宗的宣言;广告牌寒酸到可笑,围观者嘲笑后散去,留下苏白和风里的落叶。",
|
||||
"range": {
|
||||
"start": "第1集1-1开头",
|
||||
"end": "围观者嘲笑完散去,苏白叹气前后",
|
||||
"source_shots": ["E1-SHOT01", "E1-SHOT02", "E1-SHOT03", "E1-SHOT04", "E1-SHOT05", "E1-SHOT06"]
|
||||
},
|
||||
"emotion_curve": [
|
||||
{ "pos": "0-4s", "intensity": 3, "type": "悬", "role": "世界建立" },
|
||||
{ "pos": "4-8s", "intensity": 4, "type": "冷", "role": "寒酸反差" },
|
||||
{ "pos": "8-12s", "intensity": 6, "type": "燃", "role": "苏白登场宣言" },
|
||||
{ "pos": "12-15s", "intensity": 4, "type": "冷", "role": "群嘲后留钩子" }
|
||||
],
|
||||
"visual_locks": {
|
||||
"style": "3D渲染风格,中国风仙侠,电影级光影,暖金色主调,高质感动态漫",
|
||||
"negative_global": "真人写实,现代服装,现代广告牌,科幻界面,欧美面孔,恐怖风,血腥,赛博朋克,文字乱码,横式天道宗牌匾,改变苏白服装,改变牌匾材质,建筑死角,空旷无人广场",
|
||||
"char_refs": {
|
||||
"CHAR-003": "18岁亚洲少年,五官俊秀剑眉明亮大眼,自信灿烂笑容露齿,身形挺拔肩膀开阔,白色长衫腰间束带,袖口挽起,黑色长发半束半披,开朗自信略带痞气,穷但不自卑,3D动画渲染,中国风仙侠"
|
||||
},
|
||||
"env_refs": {
|
||||
"ENV-002": "修仙世界开阔百宗会广场,云海环绕远处山峰,白天阳光明媚,金色光芒仙气弥漫,广场上人山人海宗门招牌林立,天道宗位于人群边缘角落,不是建筑死角"
|
||||
},
|
||||
"prop_refs": {
|
||||
"PROP-天道宗牌匾": "破旧深棕色木质竖式悬挂牌匾,自上而下垂直悬挂,正面竖写【天道宗】三个毛笔大字,黑色墨迹斑驳模糊,边缘磨损开裂",
|
||||
"PROP-天道宗广告牌": "横式破旧木板招生广告牌,立于天道宗竖式牌匾下方旁边地面,略向后倾斜,六行手写招生文字"
|
||||
}
|
||||
},
|
||||
"shots": [
|
||||
{
|
||||
"shot_id": "EP01-15S-V2-S01",
|
||||
"source_shot": "E1-SHOT01",
|
||||
"source_text": "修仙界高空云层,云层下俯瞰视角,巨大广场人山人海。",
|
||||
"framing": "远景俯瞰转全景",
|
||||
"subject": "云层上的修仙者飞入百宗会广场,广场前排宗门热闹,远处逐渐露出最偏僻的天道宗角落",
|
||||
"action": "镜头从云层上方缓慢下降,穿过御剑飞行的修仙者,落到百宗会广场。前排宗门鎏金招牌和长队一闪而过,镜头继续推向人群边缘角落。",
|
||||
"camera": "俯瞰下降,缓慢前推,终点停在人群边缘角落的天道宗位置",
|
||||
"duration": 4,
|
||||
"subtitle": "百宗会开场,万修齐聚。",
|
||||
"voice_line": "百宗会招新这天,修仙者从四面八方赶来。",
|
||||
"char_refs": [],
|
||||
"env_refs": ["ENV-002"],
|
||||
"prop_refs": ["PROP-天道宗牌匾"],
|
||||
"visual_refs": {
|
||||
"required": ["ENV-002-3d-reference", "PROP-天道宗牌匾-reference"],
|
||||
"status": "pending"
|
||||
},
|
||||
"spatial_anchor": "云层上方 → 广场上空 → 人群边缘角落",
|
||||
"text_elements": "【天道宗】只在镜头终点出现,可小但方向必须为竖式",
|
||||
"prop_state": "破旧的·竖式悬挂·木质牌匾",
|
||||
"negative": "空旷广场,建筑死角,现代城市,真人写实,横式天道宗牌匾,文字乱码"
|
||||
},
|
||||
{
|
||||
"shot_id": "EP01-15S-V2-S02",
|
||||
"source_shot": "E1-SHOT02",
|
||||
"source_text": "特写:角落里写着【天道宗】的破旧牌匾。",
|
||||
"framing": "特写",
|
||||
"subject": "天道宗破旧竖式木质牌匾",
|
||||
"action": "镜头推近天道宗牌匾,竖写的【天道宗】三个字斑驳模糊。周围热闹宗门形成强烈对比,天道宗无人排队。",
|
||||
"camera": "特写慢推,轻微摇晃,停在牌匾文字和开裂木纹",
|
||||
"duration": 3,
|
||||
"subtitle": "角落里,天道宗无人问津。",
|
||||
"voice_line": "可最偏的角落里,只有一块快掉漆的天道宗牌匾。",
|
||||
"char_refs": [],
|
||||
"env_refs": ["ENV-002"],
|
||||
"prop_refs": ["PROP-天道宗牌匾"],
|
||||
"visual_refs": {
|
||||
"required": ["PROP-天道宗牌匾-reference"],
|
||||
"status": "pending"
|
||||
},
|
||||
"spatial_anchor": "人群边缘角落,离地约2米的竖式悬挂牌匾",
|
||||
"text_elements": "【天道宗】",
|
||||
"prop_state": "破旧深棕色木质·竖式·自上而下悬挂·边缘磨损开裂",
|
||||
"negative": "横式牌匾,崭新牌匾,现代招牌,金属霓虹,文字变成其他宗门,真人写实"
|
||||
},
|
||||
{
|
||||
"shot_id": "EP01-15S-V2-S03",
|
||||
"source_shot": "E1-SHOT03",
|
||||
"source_text": "苏白站在天道宗破旧牌匾下双手叉腰,大声喊话。",
|
||||
"framing": "中景转近景",
|
||||
"subject": "苏白站在竖式牌匾下方,双手叉腰,自信喊话",
|
||||
"action": "苏白穿白色长衫站在天道宗竖式牌匾下方,双手叉腰,笑得自信灿烂。他朝人群大声吆喝:未来的天下第一宗,天道宗开门收徒啦!",
|
||||
"camera": "中景正面,苏白居中,轻微推进到上半身和笑容",
|
||||
"duration": 4,
|
||||
"subtitle": "未来的天下第一宗!天道宗开门收徒啦!",
|
||||
"voice_line": "未来的天下第一宗!天道宗开门收徒啦!",
|
||||
"char_refs": ["CHAR-003"],
|
||||
"env_refs": ["ENV-002"],
|
||||
"prop_refs": ["PROP-天道宗牌匾"],
|
||||
"visual_refs": {
|
||||
"required": ["CHAR-003-3d-reference", "PROP-天道宗牌匾-reference"],
|
||||
"status": "pending"
|
||||
},
|
||||
"spatial_anchor": "苏白站在竖式悬挂牌匾下方",
|
||||
"text_elements": "【天道宗】",
|
||||
"prop_state": "悬挂的·破旧·竖式·木质牌匾",
|
||||
"negative": "苏白换衣服,苏白变老,黑衣,跪姿,丧气表情,牌匾消失,牌匾横放,真人写实"
|
||||
},
|
||||
{
|
||||
"shot_id": "EP01-15S-V2-S04",
|
||||
"source_shot": "E1-SHOT04/E1-SHOT05/E1-SHOT06",
|
||||
"source_text": "天道宗广告牌展示,围观的人指指点点,讽刺完散去,风吹起落叶。",
|
||||
"framing": "广告牌特写转中景",
|
||||
"subject": "天道宗招生广告牌、围观者、苏白",
|
||||
"action": "镜头先切到天道宗旁边的横式招生广告牌,能看出包吃包住、每月三十两、入宗学仙法。围观者聚拢指指点点,随后嘲笑散去。风吹起苏白脚下落叶,苏白仍站在牌匾旁边。",
|
||||
"camera": "广告牌特写,切中景,围观者从画面两侧靠近又散开,最后停在苏白和落叶",
|
||||
"duration": 4,
|
||||
"subtitle": "包吃包住,每月三十两。围观者笑完,又散了。",
|
||||
"voice_line": "众人看清牌子,笑了几声便散开,只剩风卷着落叶。",
|
||||
"char_refs": ["CHAR-003"],
|
||||
"env_refs": ["ENV-002"],
|
||||
"prop_refs": ["PROP-天道宗牌匾", "PROP-天道宗广告牌"],
|
||||
"visual_refs": {
|
||||
"required": ["CHAR-003-3d-reference", "PROP-天道宗牌匾-reference", "PROP-天道宗广告牌-reference"],
|
||||
"status": "pending"
|
||||
},
|
||||
"spatial_anchor": "横式广告牌立于竖式牌匾下方旁边地面,苏白站在旁边,落叶在脚下",
|
||||
"text_elements": "【天道宗】【未来第一宗】【名额:一位】【包吃包住】【每月基础银子:三十两】【入宗即可学习仙法】",
|
||||
"prop_state": "横式破旧木板广告牌立地,竖式天道宗牌匾仍在画面侧后方",
|
||||
"negative": "广告牌变成现代海报,文字全乱码,围观者挡住苏白,牌匾消失,苏白服装改变,真人写实"
|
||||
}
|
||||
],
|
||||
"hooks": {
|
||||
"opening": "这么寒酸的宗门,凭什么敢称天下第一?",
|
||||
"closing": "第一个弟子,会不会真的来?"
|
||||
},
|
||||
"next": {
|
||||
"prompt_file": "video-ai-system/outputs/ep01-prompts-3d-v2.json",
|
||||
"preflight": "检查visual_refs、activeLine、negative、source_text、duration后才允许调用视频API",
|
||||
"api_policy": "先跑2~3镜,不连续抽卡。"
|
||||
}
|
||||
}
|
||||
102
video-ai-system/outputs/ep01-prompts-3d-v2.json
Normal file
102
video-ai-system/outputs/ep01-prompts-3d-v2.json
Normal file
@ -0,0 +1,102 @@
|
||||
{
|
||||
"_meta": {
|
||||
"type": "EP01-15S-V2_3D_PROMPTS",
|
||||
"created": "D140 · 2026-06-22",
|
||||
"by": "铸渊 ICE-GL-ZY001 · Codex恢复",
|
||||
"source": "video-ai-system/outputs/ep01-director-encoding-3d-v2.json",
|
||||
"product_line": "3d",
|
||||
"status": "ready_for_preflight",
|
||||
"note": "本文件替代旧真人线 ep01-prompts.json 作为EP01-15S-V2主线提示词。"
|
||||
},
|
||||
"global": {
|
||||
"style": "3D渲染风格,中国风仙侠,电影级光影,暖金色主调,高质感动态漫,适合短剧漫剧连续镜头",
|
||||
"negative": "真人写实,现代服装,现代广告牌,科幻界面,欧美面孔,恐怖风,血腥,赛博朋克,文字乱码,横式天道宗牌匾,改变苏白服装,改变牌匾材质,建筑死角,空旷无人广场,低清晰度,过度模糊"
|
||||
},
|
||||
"shots": [
|
||||
{
|
||||
"shot_id": "EP01-15S-V2-S01",
|
||||
"duration": 4,
|
||||
"source_text": "修仙界高空云层,云层下俯瞰视角,巨大广场人山人海。",
|
||||
"prompt": {
|
||||
"Style": "3D渲染风格,中国风仙侠,电影级光影,暖金色主调,高质感动态漫。",
|
||||
"Subject": "修仙世界开阔百宗会广场,云海环绕远处山峰,白天阳光明媚,广场上人山人海,宗门招牌林立。",
|
||||
"Action": "许多修仙者御剑从云层飞向广场,镜头穿过云层下降,掠过前排热闹宗门和长队,继续推到人群边缘角落的天道宗位置。",
|
||||
"Camera": "远景俯瞰,缓慢下降,稳定前推,终点停在人群边缘角落。",
|
||||
"Spatial": "云层上方到广场上空,再到人群边缘角落。天道宗不是建筑死角,是热闹广场里被忽略的边缘位置。",
|
||||
"Visual_locks": "角落里可见一块破旧深棕色木质竖式悬挂牌匾,自上而下垂直悬挂,正面竖写【天道宗】三个毛笔大字,边缘磨损开裂。",
|
||||
"Text": "模型如无法稳定写字,牌匾文字后期字幕/贴图处理;构图仍保留竖式牌匾位置。",
|
||||
"Negative": "真人写实,现代城市,空旷广场,建筑死角,横式天道宗牌匾,文字乱码,科幻界面。"
|
||||
},
|
||||
"subtitle": "百宗会开场,万修齐聚。",
|
||||
"voice_line": "百宗会招新这天,修仙者从四面八方赶来。",
|
||||
"required_refs": ["ENV-002-3d-reference", "PROP-天道宗牌匾-reference"]
|
||||
},
|
||||
{
|
||||
"shot_id": "EP01-15S-V2-S02",
|
||||
"duration": 3,
|
||||
"source_text": "特写:角落里写着【天道宗】的破旧牌匾。",
|
||||
"prompt": {
|
||||
"Style": "3D渲染风格,中国风仙侠,电影级光影,暖金色阳光,细节清晰。",
|
||||
"Subject": "一块破旧深棕色木质竖式悬挂牌匾,自上而下垂直悬挂,正面竖写【天道宗】三个毛笔大字。",
|
||||
"Action": "镜头慢慢推近牌匾,斑驳黑色墨迹和开裂木纹逐渐清晰,背景里能感到百宗会广场仍然热闹,但此处无人排队。",
|
||||
"Camera": "特写慢推,轻微自然摇晃,停在牌匾文字和木纹裂缝。",
|
||||
"Spatial": "牌匾悬挂在人群边缘角落,离地约2米,周围寒酸但不倒塌。",
|
||||
"Visual_locks": "必须是竖式悬挂,不是横式;必须是旧木牌,不是金属牌;文字内容只允许【天道宗】。",
|
||||
"Text": "牌匾文字可后期贴图;画面必须给文字留出清晰区域。",
|
||||
"Negative": "横式牌匾,崭新鎏金牌匾,现代广告牌,文字变成其他宗门,真人写实。"
|
||||
},
|
||||
"subtitle": "角落里,天道宗无人问津。",
|
||||
"voice_line": "可最偏的角落里,只有一块快掉漆的天道宗牌匾。",
|
||||
"required_refs": ["PROP-天道宗牌匾-reference"]
|
||||
},
|
||||
{
|
||||
"shot_id": "EP01-15S-V2-S03",
|
||||
"duration": 4,
|
||||
"source_text": "苏白站在天道宗破旧牌匾下双手叉腰,大声喊话。",
|
||||
"prompt": {
|
||||
"Style": "3D渲染风格,中国风仙侠,电影级光影,暖金色主调,高质感动态漫。",
|
||||
"Subject": "苏白,18岁亚洲少年,五官俊秀,剑眉明亮大眼,自信灿烂露齿笑容,身形挺拔,白色长衫腰间束带,袖口挽起,黑色长发半束半披。",
|
||||
"Action": "苏白站在天道宗破旧竖式木质牌匾下方,双手叉腰,面向人群大声吆喝,表情不是绝望,而是看见未来的笃定。",
|
||||
"Camera": "中景正面,苏白居中,轻微推进到上半身和笑容,最后停在双手叉腰的自信姿态。",
|
||||
"Spatial": "苏白站在竖式悬挂牌匾下方,牌匾位于他身后上方或侧后方,不能消失。",
|
||||
"Visual_locks": "苏白服装必须为白色长衫腰间束带;牌匾必须仍是竖式木质【天道宗】;广场仍是人群边缘角落。",
|
||||
"Text": "台词由字幕/配音处理:未来的天下第一宗!天道宗开门收徒啦!",
|
||||
"Negative": "苏白换成黑衣,苏白变老,丧气表情,跪姿,牌匾横放,牌匾消失,真人写实。"
|
||||
},
|
||||
"subtitle": "未来的天下第一宗!天道宗开门收徒啦!",
|
||||
"voice_line": "未来的天下第一宗!天道宗开门收徒啦!",
|
||||
"required_refs": ["CHAR-003-3d-reference", "PROP-天道宗牌匾-reference"]
|
||||
},
|
||||
{
|
||||
"shot_id": "EP01-15S-V2-S04",
|
||||
"duration": 4,
|
||||
"source_text": "广告牌展示,围观者嘲笑后散去,风吹起落叶。",
|
||||
"prompt": {
|
||||
"Style": "3D渲染风格,中国风仙侠,电影级光影,暖金色逐渐转冷,短剧漫剧节奏。",
|
||||
"Subject": "天道宗横式破旧木板招生广告牌、苏白、围观者、脚下落叶。",
|
||||
"Action": "镜头先给横式招生广告牌特写,能看出包吃包住、每月三十两、入宗学仙法等信息。围观者聚拢指指点点,嘲笑后散去。风吹起苏白脚下落叶,苏白仍站在牌匾旁边。",
|
||||
"Camera": "广告牌特写切中景,围观者从画面两侧靠近又散开,最后停在苏白和脚下落叶。",
|
||||
"Spatial": "横式广告牌立于竖式天道宗牌匾下方旁边地面,苏白站在旁边,落叶在脚下,竖式牌匾仍在画面侧后方。",
|
||||
"Visual_locks": "广告牌为横式破旧木板,竖式天道宗牌匾仍存在;苏白仍穿白色长衫;围观者不能挡住主要道具。",
|
||||
"Text": "广告牌文字复杂,优先后期贴图/字幕处理;模型只需保留六行手写招生广告的版面。",
|
||||
"Negative": "现代海报,霓虹广告牌,文字全乱码,围观者完全挡住苏白,牌匾消失,苏白服装改变,真人写实。"
|
||||
},
|
||||
"subtitle": "包吃包住,每月三十两。围观者笑完,又散了。",
|
||||
"voice_line": "众人看清牌子,笑了几声便散开,只剩风卷着落叶。",
|
||||
"required_refs": ["CHAR-003-3d-reference", "PROP-天道宗牌匾-reference", "PROP-天道宗广告牌-reference"]
|
||||
}
|
||||
],
|
||||
"preflight": {
|
||||
"must_pass": [
|
||||
"activeLine == 3d",
|
||||
"每镜有source_text",
|
||||
"每镜有duration且总时长约15秒",
|
||||
"每镜有Negative",
|
||||
"无真人写实主线词",
|
||||
"CHAR/ENV/PROP引用存在",
|
||||
"视觉锚点存在或明确标记pending",
|
||||
"复杂文字走字幕/贴图,不强迫视频模型稳定写字"
|
||||
],
|
||||
"api_policy": "体检不过不调用API;先跑2~3镜,不连续抽卡。"
|
||||
}
|
||||
}
|
||||
@ -1,5 +1,5 @@
|
||||
{
|
||||
"generatedAt": "2026-06-22T08:47:48.147Z",
|
||||
"generatedAt": "2026-06-22T12:34:07.362Z",
|
||||
"activeLines": [
|
||||
{
|
||||
"key": "3d",
|
||||
@ -9,7 +9,7 @@
|
||||
],
|
||||
"script": {
|
||||
"exists": true,
|
||||
"file": "/Users/bingshuolingdianyuanhe/guanghulab/动态漫:《付费才能修仙?我的宗门全免费》.md",
|
||||
"file": "/Users/bingshuolingdianyuanhe/Documents/guanghulab/动态漫:《付费才能修仙?我的宗门全免费》.md",
|
||||
"size": 275281
|
||||
},
|
||||
"storyboard": {
|
||||
@ -23,9 +23,22 @@
|
||||
"project": "付费才能修仙",
|
||||
"episode": "ep01"
|
||||
},
|
||||
"directorEncodingV2": {
|
||||
"exists": true,
|
||||
"file": "/Users/bingshuolingdianyuanhe/Documents/guanghulab/video-ai-system/outputs/ep01-director-encoding-3d-v2.json",
|
||||
"shots": 4,
|
||||
"targetDuration": 15,
|
||||
"status": "ready_for_prompt_build"
|
||||
},
|
||||
"promptsV2": {
|
||||
"exists": true,
|
||||
"file": "/Users/bingshuolingdianyuanhe/Documents/guanghulab/video-ai-system/outputs/ep01-prompts-3d-v2.json",
|
||||
"shots": 4,
|
||||
"status": "ready_for_preflight"
|
||||
},
|
||||
"localFinals": [
|
||||
{
|
||||
"file": "/Users/bingshuolingdianyuanhe/guanghulab/video-ai-system/outputs/final/test-compose.mp4",
|
||||
"file": "/Users/bingshuolingdianyuanhe/Documents/guanghulab/video-ai-system/outputs/final/test-compose.mp4",
|
||||
"name": "test-compose.mp4",
|
||||
"duration": 14.458333,
|
||||
"size": 5210757,
|
||||
@ -34,7 +47,7 @@
|
||||
"codec": "h264"
|
||||
},
|
||||
{
|
||||
"file": "/Users/bingshuolingdianyuanhe/guanghulab/video-ai-system/outputs/final/test-compose.mp4",
|
||||
"file": "/Users/bingshuolingdianyuanhe/Documents/guanghulab/video-ai-system/outputs/final/test-compose.mp4",
|
||||
"name": "test-compose.mp4",
|
||||
"duration": 14.458333,
|
||||
"size": 5210757,
|
||||
@ -45,7 +58,7 @@
|
||||
],
|
||||
"localVideos": [
|
||||
{
|
||||
"file": "/Users/bingshuolingdianyuanhe/guanghulab/video-ai-system/outputs/final/test-compose.mp4",
|
||||
"file": "/Users/bingshuolingdianyuanhe/Documents/guanghulab/video-ai-system/outputs/final/test-compose.mp4",
|
||||
"name": "test-compose.mp4",
|
||||
"duration": 14.458333,
|
||||
"size": 5210757,
|
||||
@ -54,7 +67,7 @@
|
||||
"codec": "h264"
|
||||
},
|
||||
{
|
||||
"file": "/Users/bingshuolingdianyuanhe/guanghulab/video-ai-system/outputs/shots/ep01-shot01-v2.mp4",
|
||||
"file": "/Users/bingshuolingdianyuanhe/Documents/guanghulab/video-ai-system/outputs/shots/ep01-shot01-v2.mp4",
|
||||
"name": "ep01-shot01-v2.mp4",
|
||||
"duration": 5.085011,
|
||||
"size": 4017104,
|
||||
@ -63,7 +76,7 @@
|
||||
"codec": "h264"
|
||||
},
|
||||
{
|
||||
"file": "/Users/bingshuolingdianyuanhe/guanghulab/video-ai-system/outputs/shots/ep01-shot01.mp4",
|
||||
"file": "/Users/bingshuolingdianyuanhe/Documents/guanghulab/video-ai-system/outputs/shots/ep01-shot01.mp4",
|
||||
"name": "ep01-shot01.mp4",
|
||||
"duration": 5.06195,
|
||||
"size": 2600205,
|
||||
@ -72,7 +85,7 @@
|
||||
"codec": "h264"
|
||||
},
|
||||
{
|
||||
"file": "/Users/bingshuolingdianyuanhe/guanghulab/video-ai-system/outputs/shots/ep01-shot02-v2.mp4",
|
||||
"file": "/Users/bingshuolingdianyuanhe/Documents/guanghulab/video-ai-system/outputs/shots/ep01-shot02-v2.mp4",
|
||||
"name": "ep01-shot02-v2.mp4",
|
||||
"duration": 5.085011,
|
||||
"size": 2418450,
|
||||
@ -81,7 +94,7 @@
|
||||
"codec": "h264"
|
||||
},
|
||||
{
|
||||
"file": "/Users/bingshuolingdianyuanhe/guanghulab/video-ai-system/outputs/shots/ep01-shot02.mp4",
|
||||
"file": "/Users/bingshuolingdianyuanhe/Documents/guanghulab/video-ai-system/outputs/shots/ep01-shot02.mp4",
|
||||
"name": "ep01-shot02.mp4",
|
||||
"duration": 5.085011,
|
||||
"size": 2578013,
|
||||
@ -90,7 +103,7 @@
|
||||
"codec": "h264"
|
||||
},
|
||||
{
|
||||
"file": "/Users/bingshuolingdianyuanhe/guanghulab/video-ai-system/outputs/final/test-compose.mp4",
|
||||
"file": "/Users/bingshuolingdianyuanhe/Documents/guanghulab/video-ai-system/outputs/final/test-compose.mp4",
|
||||
"name": "test-compose.mp4",
|
||||
"duration": 14.458333,
|
||||
"size": 5210757,
|
||||
@ -99,7 +112,7 @@
|
||||
"codec": "h264"
|
||||
},
|
||||
{
|
||||
"file": "/Users/bingshuolingdianyuanhe/guanghulab/video-ai-system/outputs/shots/ep01-shot01-v2.mp4",
|
||||
"file": "/Users/bingshuolingdianyuanhe/Documents/guanghulab/video-ai-system/outputs/shots/ep01-shot01-v2.mp4",
|
||||
"name": "ep01-shot01-v2.mp4",
|
||||
"duration": 5.085011,
|
||||
"size": 4017104,
|
||||
@ -108,7 +121,7 @@
|
||||
"codec": "h264"
|
||||
},
|
||||
{
|
||||
"file": "/Users/bingshuolingdianyuanhe/guanghulab/video-ai-system/outputs/shots/ep01-shot01.mp4",
|
||||
"file": "/Users/bingshuolingdianyuanhe/Documents/guanghulab/video-ai-system/outputs/shots/ep01-shot01.mp4",
|
||||
"name": "ep01-shot01.mp4",
|
||||
"duration": 5.06195,
|
||||
"size": 2600205,
|
||||
@ -117,7 +130,7 @@
|
||||
"codec": "h264"
|
||||
},
|
||||
{
|
||||
"file": "/Users/bingshuolingdianyuanhe/guanghulab/video-ai-system/outputs/shots/ep01-shot02-v2.mp4",
|
||||
"file": "/Users/bingshuolingdianyuanhe/Documents/guanghulab/video-ai-system/outputs/shots/ep01-shot02-v2.mp4",
|
||||
"name": "ep01-shot02-v2.mp4",
|
||||
"duration": 5.085011,
|
||||
"size": 2418450,
|
||||
@ -126,7 +139,7 @@
|
||||
"codec": "h264"
|
||||
},
|
||||
{
|
||||
"file": "/Users/bingshuolingdianyuanhe/guanghulab/video-ai-system/outputs/shots/ep01-shot02.mp4",
|
||||
"file": "/Users/bingshuolingdianyuanhe/Documents/guanghulab/video-ai-system/outputs/shots/ep01-shot02.mp4",
|
||||
"name": "ep01-shot02.mp4",
|
||||
"duration": 5.085011,
|
||||
"size": 2578013,
|
||||
@ -135,7 +148,7 @@
|
||||
"codec": "h264"
|
||||
},
|
||||
{
|
||||
"file": "/Users/bingshuolingdianyuanhe/guanghulab/video-ai-system/outputs/test-10s.mp4",
|
||||
"file": "/Users/bingshuolingdianyuanhe/Documents/guanghulab/video-ai-system/outputs/test-10s.mp4",
|
||||
"name": "test-10s.mp4",
|
||||
"duration": 5.06195,
|
||||
"size": 2804153,
|
||||
@ -459,11 +472,5 @@
|
||||
"registryMissingExistingFiles": [],
|
||||
"statusClaimsInProgress": false,
|
||||
"promptsStillRealistic": true,
|
||||
"issues": [
|
||||
{
|
||||
"level": "yellow",
|
||||
"title": "旧提示词仍是真人写实",
|
||||
"detail": "ep01-prompts.json属于旧线,不能作为3D主线继续生成。"
|
||||
}
|
||||
]
|
||||
"issues": []
|
||||
}
|
||||
@ -1,11 +1,12 @@
|
||||
# 视频AI系统 · 无成本体检报告
|
||||
|
||||
生成时间: 2026-06-22T08:47:48.147Z
|
||||
生成时间: 2026-06-22T12:34:07.362Z
|
||||
|
||||
当前active制作线: 3d(3D漫剧)
|
||||
剧本MD: 存在
|
||||
分镜: 21镜 / 69s
|
||||
导演编码: 3镜
|
||||
导演编码: 旧3镜 / V2 4镜
|
||||
3D提示词V2: 4镜
|
||||
本地产物: 11个mp4
|
||||
JZAO ep01产物: 30个mp4
|
||||
JZAO ep01-3D产物: 4个mp4
|
||||
@ -13,12 +14,12 @@ JZAO ep01-3D产物: 4个mp4
|
||||
注册表: 7条 / 失效路径0条
|
||||
|
||||
## 问题
|
||||
- YELLOW · 旧提示词仍是真人写实: ep01-prompts.json属于旧线,不能作为3D主线继续生成。
|
||||
- 无红黄问题。
|
||||
|
||||
## 推荐下一步
|
||||
1. 只保留3D漫剧为active制作线。
|
||||
2. 旧真人提示词不再继续生成,重新生成3D主线提示词。
|
||||
2. 旧真人提示词不再继续生成;使用 ep01-prompts-3d-v2.json 作为主线。
|
||||
3. 旧JZAO视频不进入生产线,只作为反例经验。
|
||||
4. 按 PIPELINE-3D-MANJU.hdlp 重建 EP01-15S-V2。
|
||||
4. 下一步生成/确认CHAR-003、ENV-002、PROP牌匾/广告牌视觉锚点。
|
||||
5. 状态文件必须由体检报告回写,不再靠人工记忆。
|
||||
6. 生成API只在体检通过后调用。
|
||||
6. 视觉锚点和生成前体检通过后才调用API。
|
||||
|
||||
@ -18,6 +18,8 @@ const SCRIPT_MD = path.join(ROOT, '动态漫:《付费才能修仙?我的宗
|
||||
const PRODUCT_LINES = path.join(SYS, 'config/product-lines.json');
|
||||
const STORYBOARD = path.join(SYS, 'data/ep01-storyboard.json');
|
||||
const DIRECTOR_ENCODING = path.join(OUT, '付费修仙-ep01-director-encoding.json');
|
||||
const DIRECTOR_ENCODING_V2 = path.join(OUT, 'ep01-director-encoding-3d-v2.json');
|
||||
const PROMPTS_V2 = path.join(OUT, 'ep01-prompts-3d-v2.json');
|
||||
const VIDEO_REGISTRY = path.join(OUT, 'video-registry.json');
|
||||
const STATUS = path.join(SYS, 'memory/zai-fu-fei-xiu-xian/STATUS.hdlp');
|
||||
const JZAO_EP01 = '/Volumes/JZAO/铸渊-ICE-GL-ZY001/OUT-输出/视频/zai-fu-fei-xiu-xian/ep01';
|
||||
@ -115,8 +117,8 @@ function detectIssues(data) {
|
||||
if (!data.storyboard.exists) {
|
||||
issues.push({ level: 'red', title: '分镜JSON缺失', detail: STORYBOARD });
|
||||
}
|
||||
if (!data.directorEncoding.exists) {
|
||||
issues.push({ level: 'red', title: '导演编码缺失', detail: DIRECTOR_ENCODING });
|
||||
if (!data.directorEncoding.exists && !data.directorEncodingV2.exists) {
|
||||
issues.push({ level: 'red', title: '导演编码缺失', detail: `${DIRECTOR_ENCODING} / ${DIRECTOR_ENCODING_V2}` });
|
||||
}
|
||||
if (data.localFinals.length === 0 && data.jzaoVideos.length === 0 && data.jzao3dVideos.length === 0) {
|
||||
issues.push({ level: 'red', title: '没有发现任何视频产物', detail: 'outputs和JZAO均为空。' });
|
||||
@ -128,11 +130,18 @@ function detectIssues(data) {
|
||||
detail: 'STATUS仍写生成中,但JZAO已发现D136 15秒成品。',
|
||||
});
|
||||
}
|
||||
if (data.promptsStillRealistic) {
|
||||
if (!data.promptsV2.exists) {
|
||||
issues.push({
|
||||
level: 'red',
|
||||
title: '3D主线提示词缺失',
|
||||
detail: PROMPTS_V2,
|
||||
});
|
||||
}
|
||||
if (data.promptsStillRealistic && !data.promptsV2.exists) {
|
||||
issues.push({
|
||||
level: 'yellow',
|
||||
title: '旧提示词仍是真人写实',
|
||||
detail: 'ep01-prompts.json属于旧线,不能作为3D主线继续生成。',
|
||||
detail: 'ep01-prompts.json属于旧线,不能作为3D主线继续生成;且尚未发现ep01-prompts-3d-v2.json。',
|
||||
});
|
||||
}
|
||||
if (data.registryMissingExistingFiles.length > 0) {
|
||||
@ -149,6 +158,8 @@ function main() {
|
||||
const product = readJson(PRODUCT_LINES, {});
|
||||
const storyboard = readJson(STORYBOARD, {});
|
||||
const encoding = readJson(DIRECTOR_ENCODING, {});
|
||||
const encodingV2 = readJson(DIRECTOR_ENCODING_V2, {});
|
||||
const promptsV2 = readJson(PROMPTS_V2, {});
|
||||
const registry = readJson(VIDEO_REGISTRY, { shots: {} });
|
||||
const promptsText = exists(path.join(SYS, 'data/ep01-prompts.json'))
|
||||
? fs.readFileSync(path.join(SYS, 'data/ep01-prompts.json'), 'utf8')
|
||||
@ -187,6 +198,19 @@ function main() {
|
||||
project: encoding.project,
|
||||
episode: encoding.episode,
|
||||
},
|
||||
directorEncodingV2: {
|
||||
exists: exists(DIRECTOR_ENCODING_V2),
|
||||
file: DIRECTOR_ENCODING_V2,
|
||||
shots: encodingV2.shots?.length || 0,
|
||||
targetDuration: encodingV2.target_duration || null,
|
||||
status: encodingV2._meta?.status || null,
|
||||
},
|
||||
promptsV2: {
|
||||
exists: exists(PROMPTS_V2),
|
||||
file: PROMPTS_V2,
|
||||
shots: promptsV2.shots?.length || 0,
|
||||
status: promptsV2._meta?.status || null,
|
||||
},
|
||||
localFinals: localVideos.filter(v => v.file.includes('/outputs/final/')),
|
||||
localVideos,
|
||||
jzaoVideos,
|
||||
@ -215,7 +239,8 @@ function main() {
|
||||
lines.push(`当前active制作线: ${data.activeLines.map(x => `${x.key}(${x.name})`).join(', ') || '无'}`);
|
||||
lines.push(`剧本MD: ${data.script.exists ? '存在' : '缺失'}`);
|
||||
lines.push(`分镜: ${data.storyboard.shots}镜 / ${data.storyboard.totalDuration}s`);
|
||||
lines.push(`导演编码: ${data.directorEncoding.shots}镜`);
|
||||
lines.push(`导演编码: 旧${data.directorEncoding.shots}镜 / V2 ${data.directorEncodingV2.shots}镜`);
|
||||
lines.push(`3D提示词V2: ${data.promptsV2.exists ? `${data.promptsV2.shots}镜` : '缺失'}`);
|
||||
lines.push(`本地产物: ${data.localVideos.length}个mp4`);
|
||||
lines.push(`JZAO ep01产物: ${data.jzaoVideos.length}个mp4`);
|
||||
lines.push(`JZAO ep01-3D产物: ${data.jzao3dVideos.length}个mp4`);
|
||||
@ -233,11 +258,15 @@ function main() {
|
||||
lines.push('');
|
||||
lines.push('## 推荐下一步');
|
||||
lines.push('1. 只保留3D漫剧为active制作线。');
|
||||
lines.push('2. 旧真人提示词不再继续生成,重新生成3D主线提示词。');
|
||||
lines.push(data.promptsV2.exists
|
||||
? '2. 旧真人提示词不再继续生成;使用 ep01-prompts-3d-v2.json 作为主线。'
|
||||
: '2. 旧真人提示词不再继续生成,重新生成3D主线提示词。');
|
||||
lines.push('3. 旧JZAO视频不进入生产线,只作为反例经验。');
|
||||
lines.push('4. 按 PIPELINE-3D-MANJU.hdlp 重建 EP01-15S-V2。');
|
||||
lines.push(data.directorEncodingV2.exists && data.promptsV2.exists
|
||||
? '4. 下一步生成/确认CHAR-003、ENV-002、PROP牌匾/广告牌视觉锚点。'
|
||||
: '4. 按 PIPELINE-3D-MANJU.hdlp 重建 EP01-15S-V2。');
|
||||
lines.push('5. 状态文件必须由体检报告回写,不再靠人工记忆。');
|
||||
lines.push('6. 生成API只在体检通过后调用。');
|
||||
lines.push('6. 视觉锚点和生成前体检通过后才调用API。');
|
||||
lines.push('');
|
||||
const mdPath = path.join(OUT, 'system-audit-latest.md');
|
||||
fs.writeFileSync(mdPath, lines.join('\n'), 'utf8');
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user