diff --git a/video-ai-system/CURRENT.hdlp b/video-ai-system/CURRENT.hdlp index bb2b290..a3be468 100644 --- a/video-ai-system/CURRENT.hdlp +++ b/video-ai-system/CURRENT.hdlp @@ -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镜 diff --git a/video-ai-system/memory/zai-fu-fei-xiu-xian/STATUS.hdlp b/video-ai-system/memory/zai-fu-fei-xiu-xian/STATUS.hdlp index 31905e1..96bb933 100644 --- a/video-ai-system/memory/zai-fu-fei-xiu-xian/STATUS.hdlp +++ b/video-ai-system/memory/zai-fu-fei-xiu-xian/STATUS.hdlp @@ -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个连续性断裂 diff --git a/video-ai-system/outputs/ep01-director-encoding-3d-v2.json b/video-ai-system/outputs/ep01-director-encoding-3d-v2.json new file mode 100644 index 0000000..a7df26a --- /dev/null +++ b/video-ai-system/outputs/ep01-director-encoding-3d-v2.json @@ -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镜,不连续抽卡。" + } +} diff --git a/video-ai-system/outputs/ep01-prompts-3d-v2.json b/video-ai-system/outputs/ep01-prompts-3d-v2.json new file mode 100644 index 0000000..d25c6f1 --- /dev/null +++ b/video-ai-system/outputs/ep01-prompts-3d-v2.json @@ -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镜,不连续抽卡。" + } +} diff --git a/video-ai-system/outputs/system-audit-latest.json b/video-ai-system/outputs/system-audit-latest.json index e06a6ad..ccf1ca2 100644 --- a/video-ai-system/outputs/system-audit-latest.json +++ b/video-ai-system/outputs/system-audit-latest.json @@ -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": [] } \ No newline at end of file diff --git a/video-ai-system/outputs/system-audit-latest.md b/video-ai-system/outputs/system-audit-latest.md index 2b5b1bc..3bf4785 100644 --- a/video-ai-system/outputs/system-audit-latest.md +++ b/video-ai-system/outputs/system-audit-latest.md @@ -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。 diff --git a/video-ai-system/tools/audit-system.js b/video-ai-system/tools/audit-system.js index ba905e9..0099a3d 100644 --- a/video-ai-system/tools/audit-system.js +++ b/video-ai-system/tools/audit-system.js @@ -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');