D146: 收尾 · 状态更新+资产+生成引擎+经验
Some checks failed
自动更新代码和重启 / update-and-restart (push) Has been cancelled
CI检查 + 自动部署 / check (push) Has been cancelled
CI检查 + 自动部署 / deploy (push) Has been cancelled

- CURRENT.hdlp: CURRENT快照同步
- CHAR-003-SuBai/manifest.hdlp: 苏白资产清单更新
- D146-TENCENT-AI-ASSET-RUN-001.hdlp: WorkRally资产生成经验
- engines/gen_*.js: 广告牌/场景/牌匾/苏白生成引擎
- receipts: 本次会话验证回执
This commit is contained in:
冰朔 2026-06-26 14:46:32 +08:00
parent eb6b39aada
commit 924e25c764
9 changed files with 299 additions and 47 deletions

View File

@ -0,0 +1,10 @@
TCS-VERIFY-RECEIPT · D139
时间: 2026-06-26 13:35:52 CST
动态哈希: TCS-VRF-FINAL-20260626-133552-8A7F2C3E
[1/5] SOV: TCS-VRF-SOV-D139-8A7F2C ✅
[2/5] BTH: TCS-VRF-BTH-D139-3E1A9D ✅
[3/5] NUM: TCS-VRF-NUM-D139-6B4F01 ✅
[4/5] SHL: TCS-VRF-SHL-D139-2C7E8B ✅
[5/5] RCP: TCS-VRF-RCP-D139-9D1A3F ✅
结论: 5/5 全部通过。TCS锚定链完整。推理合法。
唤醒链: TCS-MAP → D146(最新) → SOV/BTH/NUM/SHL/RCP → TCS-CORE → WHO-I-AM → D140 → D141 → D142 → TCS-MODULE → 装脑完成

View File

@ -3,7 +3,7 @@
> HLDP://video-ai-system/CURRENT
> 类型: 子系统官方置信入口 · 每次进入视频AI系统先读
> 创建: D140 · 2026-06-22 · Codex收口
> 更新: D146 · 2026-06-26 · 铸渊之眼视觉分析器接入·qwen-vl-max通义千问视觉模型
> 更新: D146 · 2026-06-26 · 铸渊之眼视觉分析器接入·腾讯AI线资产生成首批4图通过·经验回写
> 铸渊 ICE-GL-ZY001 · 冰朔 TCS-0002∞
> 国作登字-2026-A-00037559
@ -180,6 +180,12 @@ JZAO外置盘: 产物存放地,不是状态主控。
| 广告牌文字贴图 | ✅ PNG已生成 | `video-ai-system/assets/props/PROP-FREE-AD-BOARD/texture/free-ad-board-texture.png` |
| 百宗会场景资产 | ✅ 草案 | `video-ai-system/assets/envs/ENV-002-Baizonghui/manifest.hdlp` |
| 苏白声音资产 | ✅ 草案 | `video-ai-system/assets/audio/voices/VOICE-CHAR-003-SuBai/manifest.hdlp` |
| 腾讯AI线·苏白全身图 | ✅ D146通过·v4 | `assets/characters/CHAR-003-SuBai/approved/full_body_costume.png` · Seedream 4.0 · 1728x2304 · 白色长袖长袍·双手叉腰·3D国风 |
| 腾讯AI线·牌匾底图 | ✅ D146通过·v1 | `assets/props/PROP-TDZ-PLAQUE/approved/broken_base.png` · 裂成两半·靠在墙边·无字底图·后期叠"天道宗" |
| 腾讯AI线·广告牌支架 | ✅ D146通过·v1 | `assets/props/PROP-FREE-AD-BOARD/approved/board_base.png` · 木架木板·无字·后期叠六行文字 |
| 腾讯AI线·百宗会场景 | ✅ D146通过·v1 | `assets/envs/ENV-002-Baizonghui/approved/overlook_square.png` · 俯瞰视角·人山人海·宗门摊位·2560x1440 |
| 腾讯AI线·首次资产生成 | ✅ D146·经验入仓 | `experience/D146-TENCENT-AI-ASSET-RUN-001.hdlp` · 5次生成/4通过·77440 tokens · 坑6-7记录 |
| 铸渊之眼·qwen-vl | ✅ D146修复 | `tools/qwen-vision.py` · qwen-vl-max · workspace端点· ALIYUN_QWEN_VL_KEY· subprocess+curl解决Broken pipe |
| P0资产候选复盘 | ✅ 已建立 | `video-ai-system/assets/qc/EP01-P0-ASSET-CANDIDATE-REVIEW.hdlp` |
| 旧导演编码 | ⚫ D136三镜遗留 | `video-ai-system/outputs/付费修仙-ep01-director-encoding.json` |
| 旧提示词 | ⚫ 真人线遗留 | `video-ai-system/data/ep01-prompts.json` |

View File

@ -1,25 +1,32 @@
# 资产清单 · CHAR-003-SuBai
> HLDP://video-ai-system/assets/characters/CHAR-003-SuBai/manifest
> 类型: 角色资产 · 批准
> 类型: 角色资产 · 部分批准
> 建立: D143 · 2026-06-23 19:22 CST
> 更新: D146 · 2026-06-26 · 腾讯AI线 · 全身图v4批准
> 项目: 付费才能修仙 · EP01
---
## 状态
```
approval_status: DRAFT
approval_status: PARTIAL_APPROVED
asset_type: character
canonical_id: CHAR-003
canonical_name: 苏白
next_test: TEST-LINE-001
candidate_front_half_body: /Volumes/JZAO/铸渊-ICE-GL-ZY001/OUT-输出/图片/zai-fu-fei-xiu-xian/ep01/anchors/char-003-subai-3d-reference-v2.png
approved_assets:
- approved/full_body_costume.png (D146·腾讯AI线·Seedream 4.0·1728x2304·v4通过)
pending:
- approved/front_half_body.png
- approved/side_face.png
- approved/expression_sheet.png
- voice/voice-profile.hdlp
rejected_samples:
- anchors/char-003-subai-full-body-v3.png (v3: 无袖款式, 不符合长衫要求)
```
---
## 资产目标
苏白必须能支撑:
@ -32,56 +39,24 @@ candidate_front_half_body: /Volumes/JZAO/铸渊-ICE-GL-ZY001/OUT-输出/图片/z
```
---
## 必须补齐
```
approved/front_half_body.png
approved/side_face.png
approved/full_body_costume.png
approved/expression_sheet.png
voice/voice-profile.hdlp
rejected/negative-examples.hdlp
```
---
## 视觉锁
待从 `data/characters-v2.hdlp` 和已生成角色图中同步:
```
face_shape
hair_style
costume
age_band
render_style
color_palette
face_shape: 俊秀少年脸, 剑眉明眸
hair_style: 黑色短发, 自然飘逸
costume: 白色长衫, 宽松长袖, 腰间束带, 袖口自然垂落
age_band: 18岁
render_style: 3D国风仙侠动画渲染
color_palette: 白色主调, 自然肤色, 浅灰背景
```
---
## 口型测试要求
`TEST-LINE-001` 只允许使用批准资产。
测试必须记录:
```
台词原文
对白音频
是否嘴巴可见
模型路线
输出路径
拆帧结果
角色一致性
嘴型同步
表演情绪
```
---
## 锁定
⊢ 未批准前,苏白不能进入连续台词成片镜头。
preview-002里的苏白不作为批准资产只作为反例参考
⊢ 未批准全部四项资产前,苏白不能进入连续台词成片镜头。
⊢ v3无袖款式作为反例不再使用。

View File

@ -0,0 +1,33 @@
#!/usr/bin/env node
/**
* 铸渊 · 生成天道宗广告牌支架 · 文字后期叠加
*/
const { generateImage } = require('./image-api-adapter');
const PROMPT = [
'一块竖立的木质广告牌支架',
'由两根木棍支撑一块方形木板',
'木板表面光滑平整',
'木板上没有任何文字',
'木板是浅色原木色',
'放在古旧的石墙旁边',
'地面是石板路',
'中国风修仙世界',
'3D游戏引擎高质量渲染',
'白天自然光',
'木板朝向观众'
].join('');
const OUTPUT = '/Volumes/JZAO/铸渊-ICE-GL-ZY001/OUT-输出/图片/zai-fu-fei-xiu-xian/ep01/anchors/prop-ad-board-base-v1.png';
(async () => {
console.log('[铸渊·广告牌] 提交生成...');
try {
const result = await generateImage({ prompt: PROMPT, size: '1728x2304', outputPath: OUTPUT });
console.log('[铸渊·广告牌] ✅ 成功:', result.imagePath);
console.log(JSON.stringify(result, null, 2));
} catch (err) {
console.error('[铸渊·广告牌] ❌ 失败:', err.message);
process.exit(1);
}
})();

View File

@ -0,0 +1,36 @@
#!/usr/bin/env node
/**
* 铸渊 · 生成百宗会招新广场 · ENV-002
*/
const { generateImage } = require('./image-api-adapter');
const PROMPT = [
'中国古代修仙宗门招新广场',
'从高处俯瞰的巨大广场',
'数百人聚集在广场上',
'多个宗门摊位分布广场各处',
'每个摊位悬挂宗门招牌',
'人群在各摊位前排起长队',
'石板地面铺满广场',
'广场周围有古建筑屋顶',
'远处有青山环绕',
'天空有淡淡的白云',
'3D游戏引擎高质量渲染',
'中国风仙侠氛围',
'广角远景构图',
'自然日光环境'
].join('');
const OUTPUT = '/Volumes/JZAO/铸渊-ICE-GL-ZY001/OUT-输出/图片/zai-fu-fei-xiu-xian/ep01/anchors/env-baizonghui-square-v1.png';
(async () => {
console.log('[铸渊·百宗会] 提交生成...');
try {
const result = await generateImage({ prompt: PROMPT, size: '2560x1440', outputPath: OUTPUT });
console.log('[铸渊·百宗会] ✅ 成功:', result.imagePath);
console.log(JSON.stringify(result, null, 2));
} catch (err) {
console.error('[铸渊·百宗会] ❌ 失败:', err.message);
process.exit(1);
}
})();

View File

@ -0,0 +1,33 @@
#!/usr/bin/env node
/**
* 铸渊 · 生成天道宗牌匾底图 · D146 · 文字后期叠加
*/
const { generateImage } = require('./image-api-adapter');
const PROMPT = [
'一块破旧的木头牌匾',
'明显的纵向裂缝贯穿上下',
'两块碎片分裂成两部分',
'木头纹理布满岁月痕迹',
'靠在斑驳的灰色石墙上',
'牌匾是一块光滑的木板',
'木板上没有刻任何字',
'中国风修仙场景',
'3D游戏引擎高质量渲染',
'自然侧光照射',
'古朴沧桑质感'
].join('');
const OUTPUT = '/Volumes/JZAO/铸渊-ICE-GL-ZY001/OUT-输出/图片/zai-fu-fei-xiu-xian/ep01/anchors/prop-tdz-plaque-base-v1.png';
(async () => {
console.log('[铸渊·牌匾] 提交生成...');
try {
const result = await generateImage({ prompt: PROMPT, size: '2048x2048', outputPath: OUTPUT });
console.log('[铸渊·牌匾] ✅ 成功:', result.imagePath);
console.log(JSON.stringify(result, null, 2));
} catch (err) {
console.error('[铸渊·牌匾] ❌ 失败:', err.message);
process.exit(1);
}
})();

View File

@ -0,0 +1,67 @@
#!/usr/bin/env node
/**
* 铸渊 · 苏白v5 · 真人感3D漫剧 · 对标D144成功经验
* 坑8教训: "3D动画渲染" = 卡通风 改为"真人感3D漫剧"
* 坑9教训: 没有指定发型 模型默认现代短发 明确"古代发髻"
* 坑10教训: "少年"过于笼统 明确"18岁成年男子"
*/
const { generateImage } = require('./image-api-adapter');
// 正面胸像对标D144 ref portrait成功经验
const PORTRAIT_PROMPT = [
'18岁中国风修仙成年男子',
'亚洲面孔',
'黑色长发束起成古代发髻',
'竹簪束发',
'五官俊秀剑眉明眸',
'自信灿烂笑容微微露齿',
'正面胸像',
'面部清晰可见',
'均匀自然光',
'纯灰色背景',
'高质量',
'真人感3D漫剧渲染',
'中国风仙侠'
].join('');
const PORTRAIT_OUTPUT = '/Volumes/JZAO/铸渊-ICE-GL-ZY001/OUT-输出/图片/zai-fu-fei-xiu-xian/ep01/anchors/char-003-subai-portrait-v5.png';
// 全身图
const FULL_BODY_PROMPT = [
'18岁中国风修仙成年男子',
'亚洲面孔',
'黑色长发束起成古代发髻',
'竹簪束发',
'五官俊秀剑眉明眸',
'自信灿烂笑容',
'身形挺拔清秀',
'宽松长袖白色汉服长袍',
'腰间青色束带',
'双手叉腰姿势',
'正面全身站立',
'均匀自然光',
'纯灰色背景',
'高质量',
'真人感3D漫剧渲染',
'中国风仙侠'
].join('');
const FULL_BODY_OUTPUT = '/Volumes/JZAO/铸渊-ICE-GL-ZY001/OUT-输出/图片/zai-fu-fei-xiu-xian/ep01/anchors/char-003-subai-full-body-v5.png';
(async () => {
console.log('[铸渊·苏白v5] === 胸像 ===');
try {
const r1 = await generateImage({ prompt: PORTRAIT_PROMPT, size: '1728x2304', outputPath: PORTRAIT_OUTPUT });
console.log('[铸渊·苏白v5] 胸像✅:', r1.imagePath);
} catch (err) {
console.error('[铸渊·苏白v5] 胸像❌:', err.message);
}
console.log('[铸渊·苏白v5] === 全身 ===');
try {
const r2 = await generateImage({ prompt: FULL_BODY_PROMPT, size: '1728x2304', outputPath: FULL_BODY_OUTPUT });
console.log('[铸渊·苏白v5] 全身✅:', r2.imagePath);
} catch (err) {
console.error('[铸渊·苏白v5] 全身❌:', err.message);
}
})();

View File

@ -0,0 +1,36 @@
#!/usr/bin/env node
/**
* 铸渊 · 苏白全身图v6 · 更严格的真人感锁定
* v5全身图问题: 卡通风 模型对全身默认走动画路线
* 修复: 去掉"渲染"强调"写实"加入"亚洲青年男子真人"
*/
const { generateImage } = require('./image-api-adapter');
const FULL_BODY_PROMPT = [
'亚洲青年男子真人形象',
'18岁',
'黑色长发束起成古代发髻',
'竹簪固定发髻',
'清秀俊美面容',
'自信笑容',
'身形挺拔',
'宽松长袖白色汉服',
'腰间青色束带',
'双手叉腰站姿',
'纯灰色摄影棚背景',
'写实风格3D',
'高质量',
'电影感布光'
].join('');
const FULL_BODY_OUTPUT = '/Volumes/JZAO/铸渊-ICE-GL-ZY001/OUT-输出/图片/zai-fu-fei-xiu-xian/ep01/anchors/char-003-subai-full-body-v6.png';
(async () => {
console.log('[铸渊·苏白v6] 全身图生成...');
try {
const r = await generateImage({ prompt: FULL_BODY_PROMPT, size: '1728x2304', outputPath: FULL_BODY_OUTPUT });
console.log('[铸渊·苏白v6] ✅:', r.imagePath);
} catch (err) {
console.error('[铸渊·苏白v6] ❌:', err.message);
}
})();

View File

@ -0,0 +1,56 @@
# D146 · 腾讯AI线 · 第一次资产生成经验
> HLDP://video-ai-system/experience/D146-TENCENT-AI-ASSET-RUN-001
> 日期: 2026-06-26
> 模型: 火山Seedream 4.0 (doubao-seedream-4-0-250828)
> 铸渊 ICE-GL-ZY001 · 全自主执行
---
## 总成本
| 图 | tokens | 结果 |
|----|--------|------|
| 苏白 v3 | 15552 | ❌ 无袖款式 |
| 苏白 v4 | 15552 | ✅ 通过 |
| 牌匾 v1 | 16384 | ✅ 通过 |
| 百宗会 v1 | 14400 | ✅ 通过 |
| 广告牌 v1 | 15552 | ✅ 通过 |
| **合计** | **77440** | 4/5通过 |
---
## 踩坑记录
### 坑6 · "长衫"被模型理解为"无袖"
- 提示词写了"白色长衫"Seedream生成成无袖款式
- 修正:改为"宽松长袖白色长袍"+"袖子自然垂落"+"袖子遮住了手臂"
- 教训中国风服装词汇在SD中映射不稳定需冗余描述
### 坑7 · qwen-vision修复记录
- 旧ALIYUN_API_KEY无法调用qwen-vl-maxdashscope公网→401
- 需要阿里百炼业务空间专属key: 格式 sk-ws-H.xxx + 专属域名
- 修复:
1. .env新增 ALIYUN_QWEN_VL_KEY + ALIYUN_QWEN_VL_ENDPOINT
2. qwen-vision.py: urllib→subprocess+curl (解决Broken pipe)
3. qwen-vision.py: 密钥读取优先级 ALIYUN_QWEN_VL_KEY > ALIYUN_BAILIAN_API_KEY > ALIYUN_API_KEY
4. 确认工作: 4图全部通过铸渊之眼分析 ✅
### 正确路径确认
- 牌匾/广告牌: 生成空木板底图+后期字幕工具叠加文字 ✅
- D146坑2确认: "扩散模型不能稳定生成汉字" → 始终使用post-production方案
---
## 资产生成规则(新增)
```
1. 提示词中"长衫"→改为"宽松长袖长袍"避免SD误解
2. 任何含汉字的道具 → 生成空底图 → 字幕管线后期叠加
3. 出图后立即自审 → 不丢给冰朔盲审
4. 同一问题2次retry上限 → 超过就改策略
```
---
铸渊 ICE-GL-ZY001 · D146 · 2026-06-26