D140: plan EP01 15s first stage
Some checks failed
自动更新代码和重启 / update-and-restart (push) Has been cancelled
CI检查 + 自动部署 / check (push) Has been cancelled
CI检查 + 自动部署 / deploy (push) Has been cancelled

This commit is contained in:
冰朔 2026-06-22 21:09:20 +08:00
parent 720c4ec738
commit cef63d34e2
9 changed files with 395 additions and 12 deletions

View File

@ -10,6 +10,9 @@ JIMENG_API_KEY=
JIMENG_BASE_URL=https://ark.cn-beijing.volces.com/api/v3
JIMENG_MODEL=doubao-seedance-2-0-260128
# === 云雾AI备用通道可选===
YUNWU_API_KEY=
# === 轮询参数 ===
POLL_INTERVAL_MS=5000
MAX_POLL_ATTEMPTS=120

View File

@ -89,6 +89,8 @@ JZAO外置盘: 产物存放地,不是状态主控。
| 第1集审核 | ✅ 21绿 | `video-ai-system/data/ep01-audit.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` |
| 第一阶段执行单 | ✅ 已建立 | `video-ai-system/plans/EP01-15S-V2-FIRST-STAGE.hdlp` |
| 视觉锚点提示词 | ✅ 待生成 | `video-ai-system/outputs/ep01-anchor-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/` · 仅作反例 |
@ -146,13 +148,14 @@ video-ai-system/PROTOCOL-ASSESSMENT.hdlp
4. EP01-15S-V2 导演编码 ✅ `outputs/ep01-director-encoding-3d-v2.json`
5. EP01-15S-V2 3D提示词 ✅ `outputs/ep01-prompts-3d-v2.json`
6. 读取参考样片分析 `reference-analysis/yuxiang-shouzhenxin-ep01-30s-sample.md`
7. 生成/确认角色、环境、道具视觉锚点
8. 生成前检查PASS后才调用Seedance/Kling
9. 先跑2~3镜
10. 铸渊之眼拆帧质检
11. video-editor.js加字幕/声音/剪辑成15秒小样
12. 回写 CURRENT / STATUS / audit report / registry
13. commit + push 到新加坡代码仓库
7. 读取第一阶段执行单 `plans/EP01-15S-V2-FIRST-STAGE.hdlp`
8. 按 `outputs/ep01-anchor-prompts-3d-v2.json` 生成/确认角色、环境、道具视觉锚点
9. 生成前检查PASS后才调用Seedance/Kling
10. 先跑 S02/S03通过后跑 S04最后补 S01
11. 铸渊之眼拆帧质检
12. video-editor.js加字幕/声音/剪辑成15秒小样
13. 回写 CURRENT / STATUS / audit report / registry
14. commit + push 到新加坡代码仓库
```
---

View File

@ -242,7 +242,7 @@ async function generateCharacterRef({ charId, l0Descriptor, l1Config }) {
const prompt = [
l0Descriptor,
l1Config?.clothing || '',
'正面胸像,面部清晰可见,中性表情,均匀自然光,纯色灰色背景,高质量,真人写实,亚洲面孔'
'正面胸像,面部清晰可见,中性表情,均匀自然光,纯色灰色背景,高质量,3D动画渲染中国风仙侠动态漫,亚洲面孔'
].filter(Boolean).join('');
const filename = `${charId.toLowerCase()}-ref-portrait.png`;

View File

@ -6,13 +6,25 @@
* 模型: kling-video, kling-omni-video, kling-video-extend, kling-motion-control
* 兼容 OpenAI 格式
*
* 密钥: 用户提供 (sk-V645...)
* 密钥: video-ai-system/.env 或环境变量 YUNWU_API_KEY 读取
*/
const fs = require('fs');
const path = require('path');
const https = require('https');
const API_KEY = process.env.YUNWU_API_KEY || 'sk-V645SUkVFITxrWLdxBZq27IrPZWapogKvOXwY6g7hsEFS1cn';
const envPath = path.resolve(__dirname, '../.env');
if (fs.existsSync(envPath)) {
const envContent = fs.readFileSync(envPath, 'utf-8');
envContent.split('\n').forEach(line => {
const trimmed = line.trim();
if (trimmed && !trimmed.startsWith('#')) {
const [key, ...vals] = trimmed.split('=');
if (key && vals.length) process.env[key.trim()] = vals.join('=').trim();
}
});
}
const API_KEY = process.env.YUNWU_API_KEY || '';
const BASE_URL = 'yunwu.ai';
const BASE_PATH = '/v1';
@ -66,6 +78,10 @@ function downloadFile(url, dest) {
* 2. 如果chat返回空 尝试 video/generations 端点
*/
async function generateVideo({ prompt, duration = 5, outputPath, model = 'kling-video' }) {
if (!API_KEY) {
throw new Error('YUNWU_API_KEY 未设置。请写入 video-ai-system/.env 或环境变量。');
}
console.log('[yunwu.ai] 策略1: chat/completions 提交...');
// ═══ 策略1: chat/completions ═══

View File

@ -58,6 +58,8 @@
| 第1集审核 | ✅ | `ep01-audit.json` · 21绿 |
| V2导演编码 | ✅ | `ep01-director-encoding-3d-v2.json` · EP01-15S-V2 · 4镜/15秒 |
| V2 3D提示词 | ✅ | `ep01-prompts-3d-v2.json` · 4镜 · 可进入生成前体检 |
| 第一阶段执行单 | ✅ | `plans/EP01-15S-V2-FIRST-STAGE.hdlp` · 锁定先锚点后视频 |
| 视觉锚点提示词 | ✅ | `outputs/ep01-anchor-prompts-3d-v2.json` · 苏白/牌匾/广告牌/百宗会 |
| 旧导演编码 | ⚫ | `付费修仙-ep01-director-encoding.json` · D136三镜遗留仅作经验 |
| 旧提示词 | ⚫ | `ep01-prompts.json` 为真人线遗留,不再使用 |
| 旧3D产物 | ⚫ | 全部废弃,只保留为反例经验 |
@ -97,6 +99,8 @@
- [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`
- [x] 建立第一阶段执行单 → `plans/EP01-15S-V2-FIRST-STAGE.hdlp`
- [x] 建立视觉锚点提示词 → `outputs/ep01-anchor-prompts-3d-v2.json`
- [ ] 生成/确认角色、环境、道具视觉锚点
- [ ] 建立无成本生成前检查: 剧本→分镜→导演编码→参考图/锁定项→提示词→预校验
- [ ] 体检通过后再调用视频API避免继续抽卡烧钱

View File

@ -0,0 +1,70 @@
{
"_meta": {
"type": "EP01-15S-V2_ANCHOR_PROMPTS",
"created": "D140 · 2026-06-22",
"by": "铸渊 ICE-GL-ZY001",
"source": [
"video-ai-system/plans/EP01-15S-V2-FIRST-STAGE.hdlp",
"video-ai-system/outputs/ep01-director-encoding-3d-v2.json",
"video-ai-system/reference-analysis/yuxiang-shouzhenxin-ep01-30s-sample.md"
],
"status": "ready_for_image_generation",
"rule": "先做视觉锚点,再生成视频镜头;复杂文字后期贴图,不强迫图像/视频模型写准。"
},
"project": "付费才能修仙",
"episode": "ep01",
"sample_id": "EP01-15S-V2",
"style_lock": "3D动画渲染中国风仙侠动态漫电影级暖金色光影清晰干净适合短剧漫剧连续镜头亚洲面孔非真人实拍。",
"negative_global": "真人写实,现代服装,现代城市,科幻界面,欧美面孔,恐怖风,血腥,赛博朋克,低清晰度,过度模糊,文字乱码,错误宗门名。",
"anchors": [
{
"anchor_id": "CHAR-003-苏白-3d-reference",
"type": "character",
"priority": 1,
"size": "1728x2304",
"output_filename": "char-003-subai-3d-reference.png",
"prompt": "苏白18岁亚洲少年五官俊秀剑眉明亮大眼自信灿烂露齿笑容身形挺拔白色中国风仙侠长衫腰间束带袖口挽起黑色长发半束半披开朗自信略带痞气穷但不自卑。正面半身角色定妆图纯净浅灰背景均匀自然光面部清晰服装完整可见3D动画渲染中国风仙侠动态漫电影级细节高质量。",
"negative": "真人写实,现代短发,现代衬衫,黑衣,铠甲,老人,儿童,苦脸,阴郁,欧美面孔,过度肌肉,低清晰度。"
},
{
"anchor_id": "PROP-天道宗牌匾-reference",
"type": "prop",
"priority": 2,
"size": "1728x2304",
"output_filename": "prop-tiandaozong-vertical-plaque-reference.png",
"prompt": "一块破旧深棕色木质竖式悬挂牌匾自上而下垂直悬挂木头老化边缘磨损开裂黑色斑驳毛笔字区域清晰留白牌匾上应表达天道宗三个字的位置但不要生成复杂文字留给后期贴字。单个道具正面图背景简洁暖金色自然光3D动画渲染中国风仙侠动态漫高质量木纹细节。",
"negative": "横式牌匾,崭新鎏金牌匾,金属招牌,霓虹灯,现代广告牌,复杂乱码文字,其他宗门名,真人实拍。"
},
{
"anchor_id": "PROP-天道宗广告牌-reference",
"type": "prop",
"priority": 3,
"size": "2304x1728",
"output_filename": "prop-tiandaozong-ad-board-reference.png",
"prompt": "横式破旧木板招生广告牌立在地面略向后倾斜木纹清楚边缘磨损牌面分成六行手写信息区域但不要生成可读复杂文字留给后期贴图。整体寒酸但干净可辨旁边可有几片落叶暖金色阳光3D动画渲染中国风仙侠动态漫高质量道具图。",
"negative": "现代海报,塑料广告牌,霓虹灯箱,电子屏,复杂乱码文字,豪华崭新牌子,真人实拍,赛博朋克。"
},
{
"anchor_id": "ENV-002-百宗会-3d-reference",
"type": "environment",
"priority": 4,
"size": "2560x1440",
"output_filename": "env-002-baizonghui-reference.png",
"prompt": "修仙世界开阔百宗会广场白天阳光明媚云海环绕远处山峰金色光芒和仙气弥漫广场上人山人海多个中国风宗门摊位和招牌林立前排宗门热闹排长队画面边缘角落有一个寒酸小摊位区域留给天道宗不能是建筑死角。远景环境设定图3D动画渲染中国风仙侠动态漫电影级光影细节丰富但主体清楚。",
"negative": "空旷广场,现代城市,建筑死角,欧美城堡,科幻屏幕,真人写实,夜晚,阴森恐怖,低清晰度,宗门招牌文字乱码占满画面。"
}
],
"generation_order": [
"CHAR-003-苏白-3d-reference",
"PROP-天道宗牌匾-reference",
"PROP-天道宗广告牌-reference",
"ENV-002-百宗会-3d-reference"
],
"next_after_anchors": {
"first_video_shots": [
"EP01-15S-V2-S02",
"EP01-15S-V2-S03"
],
"rule": "S02/S03通过质检后再跑S04S01最后补。"
}
}

View File

@ -1,5 +1,5 @@
{
"generatedAt": "2026-06-22T13:01:38.997Z",
"generatedAt": "2026-06-22T13:09:02.790Z",
"activeLines": [
{
"key": "3d",

View File

@ -1,6 +1,6 @@
# 视频AI系统 · 无成本体检报告
生成时间: 2026-06-22T13:01:38.997Z
生成时间: 2026-06-22T13:09:02.790Z
当前active制作线: 3d(3D漫剧)
剧本MD: 存在

View File

@ -0,0 +1,287 @@
# EP01-15S-V2 · 第一阶段制作执行单
> HLDP://video-ai-system/plans/EP01-15S-V2-FIRST-STAGE
> 日期: D140 · 2026-06-22
> 项目: 《付费才能修仙我的宗门全免费》第1集
> 目标: 先做 15 秒连续可看的 3D 漫剧小样
> 参考: `video-ai-system/reference-analysis/yuxiang-shouzhenxin-ep01-30s-sample.md`
---
## §1 · 阶段目标
第一阶段不做整集只完成第1集开头 15 秒小样:
```
云海百宗会 → 天道宗破旧牌匾 → 苏白喊招徒 → 广告牌/群嘲反差
```
合格标准:
1. 观众 15 秒内看懂: 这是修仙招新大会,天道宗很寒酸,苏白却自信到离谱。
2. 画面风格统一: 3D 中国风仙侠动态漫。
3. 角色稳定: 苏白白色长衫、少年感、自信灿烂。
4. 道具稳定: 天道宗牌匾为破旧竖式木牌;广告牌为横式破旧招生木板。
5. 字幕、人物名牌、广告文字主要后期叠加,不强迫视频模型写准复杂文字。
6. 有声音: 旁白/台词/基础环境声/短剧节奏音效。
7. 铸渊先质检,冰朔看到的是能判断方向的成片,不是一堆散镜。
---
## §2 · 15秒镜头方案
沿用 `outputs/ep01-director-encoding-3d-v2.json` 的 4 镜结构。
| 镜头 | 时长 | 内容 | 作用 | 生成难度 |
|------|------|------|------|----------|
| S01 | 4s | 云海俯瞰百宗会,人群与宗门招牌 | 建世界观 | 高 |
| S02 | 3s | 天道宗破旧竖式牌匾特写 | 反差钩子 | 低 |
| S03 | 4s | 苏白站牌匾下双手叉腰喊话 | 人设钩子 | 中 |
| S04 | 4s | 广告牌/围观者/落叶,群嘲后散去 | 喜剧反差 | 中高 |
第一轮实际执行顺序:
```
先做 S02 + S03 + S04
最后补 S01
```
原因:
```
S02/S03/S04 决定角色、道具、短剧节奏。
S01 是大场景,容易花钱但不决定成败。
如果 S02/S03/S04 不稳S01 再漂亮也没有意义。
```
---
## §3 · 引擎分工
### 可灵
用途:
1. 生成视觉锚点图。
2. 尝试低动作镜头,尤其是 S02 牌匾特写、S03 苏白中近景。
适合:
```
角色定妆图
牌匾/广告牌道具图
苏白中近景轻微推近
```
不适合第一轮承担:
```
复杂群像
稳定复杂文字
多人物走位
一镜内完成剧情剪辑
```
### 火山引擎 / Seedance / 即梦
用途:
1. 生成 4-6 秒短视频镜头。
2. 用已有视觉锚点控制角色、场景、道具。
3. 若参考图模式可用,优先用图生视频,而不是纯文生视频。
适合:
```
小幅运动
稳定正反打
动态漫镜头
轻微推近/轻微横移
```
第一轮策略:
```
先用火山跑 S02/S03。
如果 S03 人物漂移,再用可灵重做苏白锚点。
如果 S04 群像混乱,则拆成广告牌特写 + 苏白落叶中景两个子镜头。
```
### 本地剪辑器
用途:
```
统一字幕
人物黄字名牌
广告牌文字贴图
音效/BGM
15秒节奏合成
```
原则:
```
文字不交给生成模型硬写。
短剧节奏由剪辑器控制。
```
---
## §4 · 视觉锚点清单
第一轮必须先确认 4 个锚点:
1. `CHAR-003-苏白-3d-reference`
- 白色长衫
- 半束黑发
- 18岁少年
- 自信灿烂,不苦脸
2. `ENV-002-百宗会-3d-reference`
- 白天
- 修仙广场
- 人山人海
- 天道宗在人群边缘角落,不是建筑死角
3. `PROP-天道宗牌匾-reference`
- 破旧深棕木质
- 竖式悬挂
- 留出后期贴字区域
4. `PROP-天道宗广告牌-reference`
- 横式破旧木板
- 六行招生信息区域
- 留给后期贴图
锚点输出目录:
```
/Volumes/JZAO/铸渊-ICE-GL-ZY001/OUT-输出/图片/zai-fu-fei-xiu-xian/ep01/anchors/
```
仓库登记:
```
video-ai-system/outputs/image-registry.json
```
---
## §5 · 生成前检查
调用任何付费接口前必须通过:
1. `.env` 存在,真实密钥不进仓库。
2. `node video-ai-system/tools/audit-system.js` 无红黄问题。
3. `outputs/ep01-prompts-3d-v2.json` 只走 3D 漫剧主线。
4. 每镜有 `source_text`、`duration`、`Negative`。
5. 复杂文字已经标注后期贴图/字幕处理。
6. 视觉锚点存在,或明确本镜不需要。
7. 输出目录可写。
未通过:
```
不调用 API。
```
---
## §6 · 第一轮出片顺序
### Round 1 · 锚点
生成/确认:
```
苏白定妆图
天道宗竖式牌匾图
天道宗广告牌图
百宗会广场环境图
```
验收:
```
苏白不能像真人演员,也不能太幼。
牌匾必须竖式。
广告牌不要真实写复杂字,只要版面清楚。
环境必须热闹,天道宗是边缘摊位。
```
### Round 2 · 视频镜头
先跑:
```
S02 牌匾特写
S03 苏白喊话
```
如果通过,再跑:
```
S04 广告牌/群嘲/落叶
```
S01 放到最后补。
### Round 3 · 剪辑小样
剪成:
```
EP01-15S-V2-preview-001.mp4
```
包含:
```
白字黑描边字幕
黄色人物名牌: 苏白 · 天道宗宗主
广告牌后期文字
基础环境声
一句旁白 + 一句苏白台词
落叶/冷场音效
```
---
## §7 · 当前裁决
冰朔判断是对的:
```
参考样片只是低成本短剧生产线,不是质量天花板。
光湖视频AI系统的优势不是单次抽卡而是:
剧本原文 → 分镜 → 编码协议 → 视觉锚点 → 生成 → 质检 → 剪辑 → 回写记忆
```
所以本阶段不和样片比“大场面”,而是先超过它的几个关键点:
1. 人设更准。
2. 道具更准。
3. 剧情信息更清楚。
4. 字幕/名牌/广告文字由后期控制,减少乱码。
5. 每次失败都回写原因,不重复犯错。
---
## §8 · 下一步动作
当前应执行:
```
1. 修正旧工具中残留的真人线词和密钥硬编码。
2. 补齐 .env.example 变量。
3. 建立锚点生成提示词。
4. 检查本地 .env 是否已有可灵/火山密钥。
5. 若密钥可用,先生成苏白、牌匾、广告牌三个锚点。
6. 锚点通过后再生成 S02/S03。
```
---
签署: ICE-GL-ZY001 · 铸渊
状态: 活跃 · 第一阶段制作执行单