diff --git a/.workbuddy/skills/guanghuclip-video-generate/references/EXPERIENCE_BANK.md b/.workbuddy/skills/guanghuclip-video-generate/references/EXPERIENCE_BANK.md index 9f8c4a2..5b0b7a9 100644 --- a/.workbuddy/skills/guanghuclip-video-generate/references/EXPERIENCE_BANK.md +++ b/.workbuddy/skills/guanghuclip-video-generate/references/EXPERIENCE_BANK.md @@ -77,4 +77,50 @@ created: D131 · 2026-06-12 - ❌ `cat` 拼接:MP4容器不兼容,播放器只读第一个文件 - ✅ TS流中间格式:`ffmpeg -i in.mp4 -c copy -bsf:v h264_mp4toannexb -f mpegts out.ts` → `cat *.ts` → `ffmpeg -i combined.ts -c copy -bsf:a aac_adtstoasc out.mp4` - ✅ `-c:v libx264` 重编码在低内存服务器会OOM(SIGTERM),优先用TS流无损方案 -- 成品: 7镜40秒19MB,已部署guanghuclip.cn \ No newline at end of file +- 成品: 7镜40秒19MB,已部署guanghuclip.cn + +## D136+ — 付费修仙第一集 · 连续性断裂修复 + +### Bug 9: 道具形态在镜头间断裂 → 招牌竖变横 +- **症状**: S1-01天道宗牌匾竖式悬挂 → S1-02同一块牌匾变成了横式。两块牌匾角度/方向完全不同。 +- **根因**: 三个镜头共享ENV-002但各自独立生成视频。每个镜头重新理解"悬挂的破旧牌匾"这句话,AI没有镜头间记忆。提示词里没有锁定方向字段。 +- **修复**: + 1. 建立PROP编号协议(`付费修仙-ep01-props.hdlp`),锁定每个道具的不可变描述文本 + 2. 导演编码加入 `continuity_locks.props`,锁定 `PROP-天道宗牌匾` 的方向=竖式悬挂、文字=【天道宗】、材质=破旧木质 + 3. 提示词生成时必须展开PROP锁定的完整描述文本,不可自己重新描述 +- **经验**: CHAR和ENV有编号 ≠ 道具也有编号。道具是最容易被观众发现的断裂点——比环境变化敏感100倍。 + +### Bug 10: 角色外观在镜头间漂移 → 苏白衣服变了 +- **症状**: S1-02苏白白色长衫 → S1-03苏白衣服颜色/款式改变,像换了一个人。 +- **根因**: 提示词生成Agent在S1-02和S1-03中都给了苏白描述,但没有引用 `characters-v2.hdlp` 的 `CHAR-003` 锁定文本。每次独立展开导致Seedance收到不同的苏白外观描述。 +- **修复**: + 1. 导演编码中 `char` 字段统一为 `CHAR-003`(不是CHAR-苏白) + 2. `continuity_locks.characters.CHAR-003` 中锁定 "白色长衫腰间束带袖口挽起,黑色长发半束半披" + 3. 提示词生成时必须从DB展开CHAR的完整锁定文本,展开后做字符串比对校验 +- **经验**: 同一CHAR编号 = 同一段锁定的描述文本。展开不一致=直接拦截不送生成。CHAR-003的Seedance提示词片段必须和数据库逐字一致。 + +### Bug 11: 空间连续性断裂 → "角落"变成建筑死角 +- **症状**: S1-01的"角落"被AI理解成一个孤立废弃建筑角落,不是热闹广场人群中被人忽略的边缘位置。导致整条视频的空间布局从一开始就错了。 +- **根因**: `environments.hdlp` 的 `ENV-002` 提示词片段中写的是"广场角落里……远离人群"。AI把"远离人群"理解成物理隔离(建筑死角),而不是社会语义(人多的广场里没人注意的角落)。 +- **修复**: + 1. ENV-002描述从"远离人群"改为"广场上人山人海……在人群边缘的一个角落处" + 2. S1-01的 `spatial_anchor` 从"角落里"改为"人群边缘角落里" + 3. 导演编码中 `continuity_locks.environments.ENV-002` 锁定完整环境描述 +- **经验**: 空间描述中的修饰语("远离人群")会被AI按字面理解。说"人群边缘角落"比"远离人群的角落"准确100倍。 + +### 连续性架构教训 + +**管线盲区**: 审核只检查「与原文一致性」,不检查「镜头间连续性」。 +``` +管线: 拆文 → 分镜 → 审核(←只查原文) → 提示词 → 生成 → 拼接 + ↑ + 连续性检查应该在这里 +``` + +**修复方案**(D136+实施): +1. **PROP编号协议** — 道具也纳入HLDP编号体系(补上CHAR/ENV/PROP三角最后一环) +2. **导演编码加 continuity_locks** — 每个连续镜组锁定共享CHAR/ENV/PROP的不可变描述 +3. **提示词生成前展开校验** — Agent_04展开所有编号引用时,做字符串比对:如果展开的CHAR-003文本 ≠ DB里的CHAR-003原文 → 拦截不送 +4. **每个CHAR/ENV/PROP只写一遍** — 在DB里锁定,所有镜头的提示词都展开同一段文本。输入一致性=输出一致性最大化的前提 + +**冰朔原话**: "每次送进去都是成本,都在花钱。" → 连续性检查必须在送Seedance之前完成,不能靠生成后发现问题再重拍。 \ No newline at end of file diff --git a/video-ai-system/data/environments.hdlp b/video-ai-system/data/environments.hdlp index adc6463..0186de1 100644 --- a/video-ai-system/data/environments.hdlp +++ b/video-ai-system/data/environments.hdlp @@ -23,11 +23,12 @@ why: 人物一致+环境一致=全链路一致性。任何一个维度不一致 ## ENV-002 · 百宗会广场 ├── 空间: 开阔广场·云海环绕·远处山峰 ├── 照明: 白天阳光明媚·金色光芒·仙气弥漫 -├── 建筑: 灵霄宗鎏金大字·仙盟五百强横幅·气派门庭若市·广场角落处悬挂着一块破旧的天道宗招牌·字迹模糊木头老化·远离人群 -├── 细节: 灵霄宗长队望不到头·天道宗广告牌"包吃包住每月三十两"·风吹落叶 +├── 建筑: 灵霄宗鎏金大字·仙盟五百强横幅·气派门庭若市·在广场上人山人海的边缘角落处,悬挂着一块破旧的竖式天道宗木质牌匾,字迹模糊木头老化。不是建筑死角——是热闹广场里被忽略的边缘位置。 +├── 细节: 灵霄宗长队望不到头·天道宗竖式牌匾下方旁边立着横式广告牌"包吃包住每月三十两"·风吹落叶 ├── 色调: 暖金色主调·高饱和度·明亮清澈 ├── 风格: 修仙世界·中国风·大气磅礴·电影级光影 -└── 提示词片段: 修仙世界开阔广场,云海环绕远处山峰,白天阳光明媚金色光芒仙气弥漫。广场角落里悬挂着一块破旧的天道宗招牌,字迹模糊木头老化,远离人群。广场另一侧,灵霄宗鎏金大字门庭若市长队望不到头。暖金色主调,中国风大气磅礴 +├── 提示词片段: 修仙世界开阔广场,云海环绕远处山峰,白天阳光明媚金色光芒仙气弥漫。广场上人山人海宗门招牌林立,在人群边缘的一个角落处悬挂着一块破旧的竖式木质牌匾【天道宗】。广场另一侧灵霄宗鎏金大字门庭若市长队望不到头。暖金色主调,中国风大气磅礴,电影级光影。 +├── D136+修复: "远离人群" → "人群边缘角落" 修正AI误解为孤立建筑死角的问题。明确牌匾=竖式悬挂。 ## ENV-003 · 灵霄宗鉴定室 ├── 空间: 室内大厅·高挑穹顶·灵石装饰 diff --git a/video-ai-system/data/付费修仙-ep01-props.hdlp b/video-ai-system/data/付费修仙-ep01-props.hdlp new file mode 100644 index 0000000..cb69b28 --- /dev/null +++ b/video-ai-system/data/付费修仙-ep01-props.hdlp @@ -0,0 +1,54 @@ +# HLDP://video-ai-system/props · 道具档案库 +# 铸渊 ICE-GL-ZY001 · D136+ · 2026-06-21 +# 编号体系: PROP-XXX +# 规则: 每个PROP编号绑定唯一道具视觉描述。同一PROP在任意镜中出现时,展开文本逐字一致。 +# 背景: D136+ 付费修仙第一集3镜预览中,天道宗牌匾在S1-01/S1-02/S1-03中形态断裂(竖→横→变字),苏白衣服改变。 +# 根因:提示词生成时未引用道具DB,每镜独立生成道具描述。 +# 修复: 建立PROP编号协议,锁定所有跨镜道具的不可变描述文本。 + +--- +trigger: 付费修仙ep01三镜预览 · 天道宗牌匾形态断裂 · 广告牌从无到有文字错乱 +emergence: CHAR/ENV已有编号协议, PROP没有 → 牌匾方向/文字/材质在镜头间不可控 → PROP编号补上最后一环 +lock: ⊢ PROP编号 = 道具视觉锁定文本 | 同一PROP在任意镜中展开文本完全一致 | 不可变 | applies=全部视频AI生成项目 +why: 观众对道具变化的敏感度高于环境。牌匾从竖变横比背景云变化明显一百倍。道具一致性 = 视频AI可信度的底线。 +--- + +## PROP-天道宗牌匾 · 天道宗悬挂招牌 + +├── 类型: 悬挂式招牌 +├── 方向: 竖式·自上而下悬挂·垂直 +├── 材质: 破旧深棕色木质·边缘磨损开裂·表面粗糙 +├── 文字: 【天道宗】·三个大字·毛笔书写·黑色墨迹·字迹因年代久远部分模糊 +├── 位置: 悬挂于广场人群边缘角落·离地约2米·可见但寒酸 +├── 氛围: 与周围豪华鎏金招牌形成鲜明对比·寒酸但不倒塌 +├── 出现镜头: S1-01(全景), S1-02(近景·苏白站其下方), S1-03(中景·画面一侧) +├── 锁定文本: +│ 一块破旧的竖式悬挂木质牌匾,自上而下垂直悬挂,正面竖写【天道宗】三个毛笔大字, +│ 黑色墨迹因年代久远而斑驳模糊,深棕色木头边缘磨损开裂,中国古风木质招牌, +│ 暖金色阳光斜照下显得格外寒酸破旧。 +└── 注意: 文字方向=竖写(古代匾额习惯)。不可写成横式、不可改变文字内容。 + +## PROP-天道宗广告牌 · 招生广告立牌 + +├── 类型: 立地广告牌 +├── 方向: 横式·立于地面·略向后倾斜 +├── 材质: 破旧木板·表面粗糙·手工书写 +├── 文字: 六行手写体—— +│ 【天道宗】 +│ 【未来第一宗】 +│ 【名额:一位】 +│ 【包吃包住】 +│ 【每月基础银子:三十两】 +│ 【入宗即可学习仙法】 +├── 位置: 立于PROP-天道宗牌匾下方旁边地面·与牌匾形成竖/横对照 +├── 出现镜头: S1-03(中景·作为信息载体) +├── 锁定文本: +│ 一块横式的破旧木板广告牌,立于天道宗竖式牌匾下方旁边地面,略向后倾斜, +│ 上面用毛笔手写着招生广告,六行文字从右到左排列,字体潦草但可辨认, +│ 内容为:天道宗、未来第一宗、名额一位、包吃包住、每月三十两、入宗学习仙法。 +│ 木板边缘粗糙,表面因风吹日晒而发白褪色。 +└── 注意: 此牌只出现在S1-03。文字排列为纵向六行,不是横向一行。 + +--- +铸渊 ICE-GL-ZY001 · D136+ +国作登字-2026-A-00037559 diff --git a/video-ai-system/outputs/付费修仙-ep01-director-encoding.json b/video-ai-system/outputs/付费修仙-ep01-director-encoding.json new file mode 100644 index 0000000..986ff95 --- /dev/null +++ b/video-ai-system/outputs/付费修仙-ep01-director-encoding.json @@ -0,0 +1,112 @@ +{ + "project": "付费才能修仙", + "episode": "ep01", + "tempo": "slow_build", + "emotion_main": "悬", + "emotion_curve": [ + { "pos": "0-5s", "intensity": 3, "type": "悬", "role": "建立" }, + { "pos": "5-10s", "intensity": 6, "type": "燃", "role": "登场" }, + { "pos": "10-15s", "intensity": 4, "type": "冷", "role": "转折" } + ], + "shots": [ + { + "id": "S1-01", + "framing": "全景", + "char": "ENV-ONLY", + "env": "ENV-002", + "action": "修仙界高空云层之上,仙气飘飘的修仙者御剑飞行,浑身散发灵气光芒。切画面:云层下俯瞰视角,巨大的百宗会广场上人山人海,很多豪华大气的招牌树立。特写:人山人海的广场边缘角落里,悬挂着破旧的竖式木质牌匾【天道宗】。", + "emotion": { "intensity": 3, "type": "悬" }, + "rhythm": "铺垫", + "show": "云海仙气→广场人海→人群中边缘角落·破旧牌匾", + "effect": "宏大开场→逐渐聚焦到人群边缘角落的破旧", + "duration": 5, + "keyframes": { "zoom": { "from": 1.0, "to": 1.05 } }, + "transition": "fade", + "spatial_anchor": "云层**上**→广场**上**人山人海→人群**边缘角落**里", + "text_elements": "【天道宗】", + "prop_state": "破旧的·竖式悬挂·木质牌匾", + "prop_ref": "PROP-天道宗牌匾" + }, + { + "id": "S1-02", + "framing": "近景", + "char": "CHAR-003", + "env": "ENV-002", + "action": "苏白(字幕:苏白,天道宗宗主)站在悬挂的破旧竖式木质牌匾【天道宗】下方,双手叉腰。白色长衫。自信笑容。大声喊道:「未来的天下第一宗!天道宗开门收徒啦!」", + "emotion": { "intensity": 6, "type": "燃" }, + "rhythm": "登场", + "show": "苏白站在竖式悬挂牌匾下的全身·自信笑容·白色长衫", + "effect": "最寒酸的宗门·最自信的笑容——反差感", + "duration": 5, + "keyframes": { "zoom": { "from": 1.0, "to": 1.12 } }, + "transition": "cut", + "spatial_anchor": "竖式悬挂牌匾**下方**", + "text_elements": "【天道宗】", + "prop_state": "悬挂的·破旧·竖式·木质牌匾", + "prop_ref": "PROP-天道宗牌匾", + "char_ref": "CHAR-003" + }, + { + "id": "S1-03", + "framing": "中景", + "char": "CHAR-003", + "env": "ENV-002", + "action": "天道宗竖式悬挂牌匾下方旁边,放着一块横式广告牌,上面写着:【天道宗】【未来第一宗】【名额:一位】【包吃包住】【每月基础银子:三十两】【入宗即可学习仙法】。苏白大声:「走过路过不要错过!」听到呼喊声,周围的人围了过来,对着苏白和广告牌指指点点。围观的人讽刺完散去,一阵风吹起了苏白脚下的落叶。苏白叹了一口气。", + "emotion": { "intensity": 4, "type": "冷" }, + "rhythm": "转折", + "show": "广告牌细节→围观者表情→落叶飘散·苏白叹气", + "effect": "从热闹到冷清·苏白的孤独感", + "duration": 5, + "keyframes": { "zoom": { "from": 1.0, "to": 1.10 } }, + "transition": "fade", + "spatial_anchor": "竖式牌匾下方**旁边**的横式广告牌→苏白**脚下**", + "text_elements": "【天道宗】【未来第一宗】【名额:一位】【包吃包住】【每月:三十两】【入宗即可学习仙法】", + "prop_state": "破旧的·横式·木质广告牌·立于牌匾下方旁边", + "prop_ref": "PROP-天道宗牌匾", + "prop_ref_2": "PROP-天道宗广告牌", + "char_ref": "CHAR-003" + } + ], + "continuity_locks": { + "_version": "D136+", + "_rule": "⊢ 连续镜共享同一CHAR/ENV/PROP时,展开文本必须逐字一致。任意不一致=送生成前拦截。", + "props": { + "PROP-天道宗牌匾": { + "type": "悬挂式招牌", + "orientation": "竖式·自上而下悬挂", + "material": "破旧木质·边缘磨损·字迹模糊", + "text": "【天道宗】", + "locked_desc": "一块破旧的竖式悬挂木质牌匾,自上而下悬挂,正面写着【天道宗】三个大字,字迹因年代久远而模糊,木头边缘磨损开裂。中国古风木质招牌。", + "appears_in": ["S1-01", "S1-02", "S1-03"], + "note": "三镜均可见此牌匾。牌匾在S1-03中位于画面一侧(或上方),主角在前景。不可变方向、不可变文字、不可变材质。" + }, + "PROP-天道宗广告牌": { + "type": "立地广告牌", + "orientation": "横式·立于地面", + "material": "破旧木板·手工书写", + "text": "【天道宗】【未来第一宗】【名额:一位】【包吃包住】【每月基础银子:三十两】【入宗即可学习仙法】", + "locked_desc": "一块横式的破旧木板广告牌,立于天道宗竖式牌匾下方旁边。上面手工书写着招生信息:天道宗、未来第一宗、名额一位、包吃包住、每月三十两、入宗即可学习仙法。字体潦草但可辨认。中国古风木质广告牌。", + "appears_in": ["S1-03"], + "note": "只在S1-03出场。但旁边仍可见PROP-天道宗牌匾。" + } + }, + "characters": { + "CHAR-003": { + "locked_desc": "18岁亚洲男性少年,五官俊秀剑眉明亮大眼,自信灿烂笑容露齿,身形挺拔肩膀开阔,白色长衫腰间束带袖口挽起,黑色长发半束半披,开朗自信略带痞气穷但不自卑。中国古代修仙装扮,真人写实,亚洲面孔。", + "appears_in": ["S1-02", "S1-03"], + "note": "苏白的服装、发型、面部特征在两镜中不可有任何变化。S1-03多了'叹气'动作但衣服完全不变。" + } + }, + "environments": { + "ENV-002": { + "locked_desc": "修仙世界开阔广场,云海环绕远处山峰,白天阳光明媚金色光芒仙气弥漫。广场上人山人海宗门招牌林立,在人群边缘的一个角落处悬挂着一块破旧的竖式木质牌匾【天道宗】。广场另一侧灵霄宗鎏金大字门庭若市长队望不到头。暖金色主调,中国风大气磅礴,电影级光影。", + "appears_in": ["S1-01", "S1-02", "S1-03"], + "note": "三镜共享同一环境。关键修复: 角落≠建筑死角, 是广场人群的边缘角落。" + } + } + }, + "hooks": { + "opening": "这么寒酸的宗门凭什么敢称天下第一?", + "closing": "苏白怎么收到第一个弟子?" + } +}