7.4 KiB
7.4 KiB
name, description, trigger_keywords, agent_created, created, tcs
| name | description | trigger_keywords | agent_created | created | tcs |
|---|---|---|---|---|---|
| guanghuclip-video-generate | 光湖视频AI · Seedance视频生成→新加坡面孔服务器部署→guanghuclip.cn 预览更新全链路。当需要从分镜脚本生成AI视频并部署到 guanghuclip.cn 时加载此技能。 | 生成视频, 跑镜, 生成分镜, Seedance, guanghuclip, 视频部署, 视频预览, AI视频, shot | true | D131 · 2026-06-12 | ICE-GL-ZY001 |
光湖视频AI · 生成+部署技能包
全链路:读取分镜 → 调用 Seedance 2.0 API → 下载视频 → 部署到新加坡面孔服务器 → 更新 guanghuclip.cn 预览
前置条件
本地文件
~/guanghulab/video-ai-system/.env— API Key 配置(JIMENG_API_KEY + ALIYUN_API_KEY)~/guanghulab/video-ai-system/engines/video-api-adapter.js— Seedance API 适配器~/guanghulab/video-ai-system/engines/hldp-prompt.js— HLDP→提示词转换器~/guanghulab/video-ai-system/tools/run-shot1.js— 单镜执行脚本(可复用模板)
API 密钥
JIMENG_API_KEY=ark-xxx— 火山方舟 API Key(在 video-ai-system/.env)- 模型默认:
doubao-seedance-2-0-260128(火山方舟控制台需开通)
服务器
- BS-SG-001 · 43.156.237.110 · Gatekeeper
GATEKEEPER_TOKEN_REDACTED - guanghuclip 前端根目录:
/root/guanghuclip/frontend/ - 视频存放路径:
/root/guanghuclip/frontend/videos/ - API 数据:
/root/guanghuclip/frontend/public/data/videos.json
工具链组合
腾讯文档(读分镜) → hldp-prompt.js → video-api-adapter.js → gatekeeper → videos.json
↑MCP connector ↑本地引擎 ↑火山方舟API ↑直连3911 ↑sed修改
工作流
Step 1: 读取分镜脚本
从腾讯文档读分镜(MCP connector: tencent-docs):
DeferExecuteTool → mcp__tencent-docs__get_content
file_id: "DTHhuWW5OQU9VbFVX"
提取镜号、提示词、时长信息。
Step 2: 生成 Seedance 提示词
用 hldp-prompt.js 或直接从文档取提示词。提示词要求:
- 中文描述,100-200字
- 包含:场景、人物、动作、氛围、风格
- 后缀:
Seedance动态漫风格,电影级光影
Step 3: 调用 Seedance API 生成视频
使用 video-api-adapter.js 或复制 run-shot1.js 模板:
const { generateVideo } = require('../engines/video-api-adapter');
const result = await generateVideo({
prompt: '修仙世界,百宗会广场,白天阳光明媚...',
duration: '5',
resolution: '1080p',
outputPath: path.resolve(__dirname, '../outputs/shots/ep01-shot01.mp4'),
});
注意:
- 模型名必须是
doubao-seedance-2-0-260128(不是 seedance-2-0) - API 返回结构是
{ content: { video_url: "..." } },不是output.video_url - 轮询最多120次×5秒=10分钟
- 每次约消耗 108,900 tokens
常见错误:
| 错误 | 原因 | 解决 |
|---|---|---|
| 404 model does not exist | 模型名错误 | 用 doubao-seedance-2-0-260128 |
| 未开通模型服务 | 火山方舟未开通 | 去控制台开通 Seedance 2.0 |
| 安心体验已达上限 | 免费额度用完 | 关闭安心体验模式 |
| 任务完成但未返回视频地址 | 响应解析路径错误 | 检查 data.content?.video_url |
运行命令(后台):
cd ~/guanghulab/video-ai-system && \
/Users/bingshuolingdianyuanhe/.workbuddy/binaries/node/versions/22.22.2/bin/node tools/run-shot1.js
Step 4: 下载视频到本地
curl -L -o outputs/ep01-shot01.mp4 "<Seedance返回的video_url>"
Step 5: 部署到新加坡面孔服务器
5a. 上传视频文件
新加坡服务器从 Seedance TOS 直拉(最快,约10秒):
curl -s -m 30 --noproxy '*' -X POST \
-H "Authorization: Bearer GATEKEEPER_TOKEN_REDACTED" \
-H "Content-Type: application/json" \
http://43.156.237.110:3911/exec \
-d '{"cmd":"mkdir -p /root/guanghuclip/frontend/videos && curl -L -o /root/guanghuclip/frontend/videos/ep01-shot01.mp4 \"<TOS_URL>\" && ls -la /root/guanghuclip/frontend/videos/ep01-shot01.mp4"}'
关键: 必须加 --noproxy '*' 否则新加坡 gatekeeper 超时。
如果 TOS URL 过期(24小时后),用本地文件 base64 分块上传(视频4MB≈480chunks×12000chars),或通过 COS 中转。
5b. 更新 videos.json
curl -s -m 15 --noproxy '*' -X POST \
-H "Authorization: Bearer GATEKEEPER_TOKEN_REDACTED" \
-H "Content-Type: application/json" \
http://43.156.237.110:3911/exec \
-d '{"cmd":"cd /root/guanghuclip/frontend/public/data && cp videos.json videos.json.bak && sed -i '\''s|\"镜1·建立镜头\", \"duration\": 5[^}]*\"videoUrl\": null|\"镜1·建立镜头\", \"duration\": 5, \"prompt\": \"...\", \"videoUrl\": \"/videos/ep01-shot01.mp4\"|'\'' videos.json && grep -A2 \"镜1\" videos.json"}'
Step 6: 验证
# 验证视频文件可访问
curl -s -o /dev/null -w '%{http_code} %{size_download}' --noproxy '*' http://guanghuclip.cn/videos/ep01-shot01.mp4
# 验证 JSON 更新
curl -s --noproxy '*' http://guanghuclip.cn/data/videos.json | python3 -c "import sys,json;d=json.load(sys.stdin);print(d['episodes'][0]['scenes'][0]['shots'][0])"
Step 7: 人类预览
浏览器打开 http://guanghuclip.cn → 点进项目 → 镜1 卡片显示 ✅ 已生成 + 视频播放器。
服务器地图(BS-SG-001 · 43.156.237.110)
guanghuclip.cn 请求路径
浏览器 → DNS(43.156.237.110) → Nginx(80) → guanghuclip.cn server块
├── / → /root/guanghuclip/frontend/index.html (静态SPA)
├── /api/* → proxy_pass 127.0.0.1:3000 (光湖语言世界API)
├── /videos/* → /root/guanghuclip/frontend/videos/ (静态视频文件)
├── /data/* → /root/guanghuclip/frontend/public/data/ (JSON数据)
└── /socket.io/* → proxy_pass 127.0.0.1:3000 (WebSocket)
guanghubingshuo.com 主要路由
| 路径 | 服务 | 端口 | 用途 |
|---|---|---|---|
| / | 静态 | /var/www/html | 主页门户 |
| /code/ | Forgejo | :3001 | 代码仓库 |
| /console/ | console-server | :3920 | 管理控制台 |
| /desk/ | desk-system | :3921 | 桌面系统 |
| /brain-db/ | persona-brain-db | :3914 | 人设数据库 |
| /outline/ | Docker Outline | :3090 | Wiki |
| /juzi/aircraft/ | Python uvicorn | :8001 | 辰星飞行器 |
关键端口
- 3911: Gatekeeper引擎 (PM2 engine)
- 3000: guanghuclip后端
- 3001: Forgejo Git
- 3905: Repo MCP SG
- 3906: HLDP Gate MCP
注意事项
- 每次视频生成约消耗 108,900 tokens(¥0.28/万token → ≈¥3.05/镜)
- Seedance TOS URL 24小时后过期,需及时部署
- guanghuclip 后端(端口3000)未通过PM2管理,是直接
node server.js运行 - guanghuclip.cn 有SSL证书但Nginx未启用HTTPS(仅80端口)
- videos.json 更新用sed时注意行内中文引号不变
- 每次更新前备份 videos.json → videos.json.bak
相关文件
~/guanghulab/video-ai-system/engines/video-api-adapter.js— API适配器(已修复 content.video_url 解析)~/guanghulab/video-ai-system/engines/hldp-prompt.js— 提示词转换器~/guanghulab/video-ai-system/tools/run-shot1.js— 单镜执行模板~/guanghulab/video-ai-system/.env— API密钥(不推送仓库)~/guanghulab/guanghuclip/frontend/index.html— guanghuclip SPA~/guanghulab/guanghuclip/frontend/public/data/videos.json— 分镜数据- 腾讯文档:
docs.qq.com/aio/DTHhuWW5OQU9VbFVX(file_id: DTHhuWW5OQU9VbFVX)