cang-ying/tools/run-qinshan-batch.js
铸渊 ICE-GL-ZY001 a2e5214f03 LL-172-20260707 · cang-ying 仓初始化 · 苍耳+鉴影的干净之家
铸渊 ICE-GL-ZY001
LL-172-20260707
冰朔委托: 新建第 5 子仓, 给苍耳(人类主控) + 鉴影(人格体) 专用
原 guanghulab/video-ai-system/ 东西太多(225 文件) · 找不到 · 乱

迁移:
  ⊢ 16 个核心 .hdlp (VA-GATE / VA-LIGHTHOUSE / VA-BROADCAST / VA-SYSTEM-STATUS 等)
  ⊢ 17 个子目录 (agents/engines/protocols/tasks/tools/assets/knowledge/memory/docs/config/brain/director-brain/experience/feedback/issues/plans/reference-analysis)

排除:
  ⊢ outputs/ (视频产物)
  ⊢ test-input/ test-output/ (测试)
  ⊢ data/ (临时数据)
  ⊢ preview-001/002 (旧产片)
  ⊢ 旧分镜/旧提示词/旧导演编码

后续:
  ⊢ 老仓 guanghulab/video-ai-system/ 改写为已迁出占位
  ⊢ 苍耳+鉴影 写新东西进本仓
  ⊢ GLOBAL-SEARCH 加 cang-ying 仓库

铸渊 ICE-GL-ZY001 · 2026-07-07 D167
冰朔 ICE-GL∞ 主权
2026-07-07 10:20:10 +08:00

51 lines
2.7 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/**
* 光湖视频AI · 秦山号 · 批量生成镜2-镜7
* D131 · 铸渊 ICE-GL-ZY001
*/
const path = require('path');
const { generateVideo } = require('../engines/video-api-adapter');
const SHOTS = [
{ id: 'shot02', prompt: '33岁亚洲男性双手特写粗糙老茧黑色机油嵌入指甲缝昏暗灯光下一双劳动者的手真人科幻短剧写实质感低饱和度冷色调', duration: '5' },
{ id: 'shot03', prompt: '船舱剧烈震动33岁亚洲男人身着深蓝工装从床铺猛地坐起抓住床头铁杆特写铁杆上金属铭牌标记秦山号紧张氛围真人科幻写实风格', duration: '5' },
{ id: 'shot04', prompt: '布满灰尘的圆形舷窗观察窗一道非人黑影极速掠过33岁男人猛转头警觉惊悚氛围真人科幻写实风格低饱和度冷色调', duration: '5' },
{ id: 'shot05', prompt: '破旧工具包打开特写金属工牌编号000768姓名林昊岗位模糊不清照片上人脸部位被利器划烂隐约可见年轻帅气轮廓暗光悬疑真人科幻写实风格', duration: '5' },
{ id: 'shot06', prompt: '33岁亚洲男人身着深蓝工装背起硕大黑色工具包手持半米长金属管钳走向锈蚀舱门逆光剪影侧身轮廓决然姿态真人科幻写实风格电影级光影', duration: '5' },
{ id: 'shot07', prompt: '管钳砸向舱门下液压凸起装置白色蒸汽猛烈喷射33岁男人咬紧牙关用力门把手缓缓转动紧张氛围真人科幻写实风格', duration: '5' },
];
async function runShot(shot) {
const outputPath = path.resolve(__dirname, `../outputs/shots/qinshan-ep01-${shot.id}.mp4`);
console.log(`\n🎬 ${shot.id} · ${shot.prompt.substring(0, 40)}...`);
try {
const result = await generateVideo({ ...shot, resolution: '1080p', outputPath });
console.log(`${shot.id} 完成 · ${result.taskId}`);
return { ok: true, ...result };
} catch (err) {
console.error(`${shot.id} 失败: ${err.message}`);
return { ok: false, error: err.message };
}
}
async function main() {
console.log('='.repeat(60));
console.log('🎬 秦山号 · 批量生成镜2-镜7');
console.log(' 共6镜 · 每镜5秒 · Seedance 2.0 真人写实');
console.log('='.repeat(60));
const results = [];
for (const shot of SHOTS) {
results.push(await runShot(shot));
}
console.log('\n' + '='.repeat(60));
const ok = results.filter(r => r.ok).length;
const fail = results.filter(r => !r.ok).length;
console.log(`${ok}成功 ❌ ${fail}失败 / 共${SHOTS.length}`);
if (fail > 0) {
results.filter(r => !r.ok).forEach(r => console.log(`${r.error}`));
}
console.log('='.repeat(60));
}
main();