@starreel/mcp 0.1.42 → 0.1.43
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +172 -29
- package/README.zh-CN.md +108 -0
- package/SKILL.md +10 -0
- package/dist/tools/produce.js +11 -1
- package/openapi.json +6345 -0
- package/package.json +18 -6
- package/server.json +10 -4
package/README.md
CHANGED
|
@@ -1,51 +1,194 @@
|
|
|
1
|
-
#
|
|
1
|
+
# StarReel MCP
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
任何 MCP 客户端:让 AI agent 一句话从**剧本跑到可下载的成片**。
|
|
3
|
+
> Turn a script into a finished, downloadable short-drama episode — from Claude, Cursor, or any MCP client.
|
|
5
4
|
|
|
6
|
-
|
|
5
|
+
[](https://www.npmjs.com/package/@starreel/mcp)
|
|
6
|
+
[](https://www.npmjs.com/package/@starreel/mcp)
|
|
7
|
+
[](./LICENSE)
|
|
8
|
+
[](https://nodejs.org)
|
|
7
9
|
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
10
|
+
**StarReel** is a prepaid AI video-production pipeline. This MCP server exposes the
|
|
11
|
+
whole factory — **80+ tools** covering every stage — so an AI agent can take a raw
|
|
12
|
+
script all the way to a finished `.mp4`:
|
|
11
13
|
|
|
12
|
-
|
|
14
|
+
```
|
|
15
|
+
script → AI rewrite → cast / scenes / props extraction → character portraits & sheets
|
|
16
|
+
→ storyboards → keyframes → video shots → voiceover (TTS) → final cut (.mp4 link)
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
It is a thin, open client: all the heavy lifting (character-consistency gates,
|
|
20
|
+
frame chaining, best-of-N auditing, billing) runs server-side at
|
|
21
|
+
[starreel.ai](https://starreel.ai).
|
|
22
|
+
|
|
23
|
+
## Quick start
|
|
24
|
+
|
|
25
|
+
[](https://cursor.com/en/install-mcp?name=starreel&config=eyJjb21tYW5kIjoibnB4IiwiYXJncyI6WyIteSIsIkBzdGFycmVlbC9tY3AiXSwiZW52Ijp7IlNUQVJSRUVMX0FQSV9LRVkiOiJzcmtfbGl2ZV94eHgifX0=)
|
|
26
|
+
[](https://vscode.dev/redirect/mcp/install?name=starreel&config=%7B%22command%22%3A%22npx%22%2C%22args%22%3A%5B%22-y%22%2C%22%40starreel%2Fmcp%22%5D%2C%22env%22%3A%7B%22STARREEL_API_KEY%22%3A%22srk_live_xxx%22%7D%7D)
|
|
13
27
|
|
|
14
|
-
1.
|
|
15
|
-
|
|
28
|
+
1. Create an API key with `produce` scope in **StarReel → Settings → API Keys**
|
|
29
|
+
(`srk_live_...`, shown once).
|
|
30
|
+
2. Add the server to Claude Code:
|
|
16
31
|
|
|
17
32
|
```bash
|
|
18
33
|
claude mcp add starreel -e STARREEL_API_KEY=srk_live_xxx -- npx -y @starreel/mcp
|
|
19
34
|
```
|
|
20
35
|
|
|
21
|
-
|
|
36
|
+
Or install the **Claude Code plugin** — MCP server + agent skill in one step
|
|
37
|
+
(set `STARREEL_API_KEY` in your shell first):
|
|
38
|
+
|
|
39
|
+
```text
|
|
40
|
+
/plugin marketplace add waydaxp/starreel-mcp
|
|
41
|
+
/plugin install starreel@starreel
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
3. Ask your agent: *"Take this script and produce a full episode: `<your script>`"* —
|
|
45
|
+
it will quote each paid stage first and only spend after you confirm.
|
|
46
|
+
|
|
47
|
+
## Works with any MCP client
|
|
48
|
+
|
|
49
|
+
Requires Node ≥ 18 (`npx`). The **standard config** below works as-is in
|
|
50
|
+
**Cursor · Windsurf · Cline / Roo Code · Claude Desktop · Trae · Cherry Studio ·
|
|
51
|
+
Chatbox · DeepChat** and any client that reads an `mcpServers` JSON block:
|
|
52
|
+
|
|
53
|
+
```json
|
|
54
|
+
{
|
|
55
|
+
"mcpServers": {
|
|
56
|
+
"starreel": {
|
|
57
|
+
"command": "npx",
|
|
58
|
+
"args": ["-y", "@starreel/mcp"],
|
|
59
|
+
"env": { "STARREEL_API_KEY": "srk_live_xxx" }
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
Clients with their own format:
|
|
66
|
+
|
|
67
|
+
<details>
|
|
68
|
+
<summary><b>Codex CLI</b> — <code>~/.codex/config.toml</code></summary>
|
|
69
|
+
|
|
70
|
+
```toml
|
|
71
|
+
[mcp_servers.starreel]
|
|
72
|
+
command = "npx"
|
|
73
|
+
args = ["-y", "@starreel/mcp"]
|
|
74
|
+
env = { "STARREEL_API_KEY" = "srk_live_xxx" }
|
|
75
|
+
```
|
|
76
|
+
</details>
|
|
77
|
+
|
|
78
|
+
<details>
|
|
79
|
+
<summary><b>VS Code (Copilot agent mode)</b> — <code>.vscode/mcp.json</code> or user <code>mcp.json</code></summary>
|
|
80
|
+
|
|
81
|
+
```json
|
|
82
|
+
{
|
|
83
|
+
"servers": {
|
|
84
|
+
"starreel": {
|
|
85
|
+
"command": "npx",
|
|
86
|
+
"args": ["-y", "@starreel/mcp"],
|
|
87
|
+
"env": { "STARREEL_API_KEY": "srk_live_xxx" }
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
```
|
|
92
|
+
</details>
|
|
93
|
+
|
|
94
|
+
<details>
|
|
95
|
+
<summary><b>Gemini CLI</b> — <code>~/.gemini/settings.json</code></summary>
|
|
96
|
+
|
|
97
|
+
```json
|
|
98
|
+
{
|
|
99
|
+
"mcpServers": {
|
|
100
|
+
"starreel": {
|
|
101
|
+
"command": "npx",
|
|
102
|
+
"args": ["-y", "@starreel/mcp"],
|
|
103
|
+
"env": { "STARREEL_API_KEY": "srk_live_xxx" }
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
```
|
|
108
|
+
</details>
|
|
22
109
|
|
|
23
|
-
|
|
110
|
+
<details>
|
|
111
|
+
<summary><b>No Node / can't run npx?</b> (Coze, Dify, GPTs, custom agents)</summary>
|
|
24
112
|
|
|
25
|
-
|
|
113
|
+
Drive the same pipeline over REST (`/v1/produce/*`) and paste
|
|
114
|
+
[`SKILL.md`](./SKILL.md) into your system prompt — it carries the full
|
|
115
|
+
workflow order, billing disciplines, and failure playbook.
|
|
116
|
+
See the [API docs](https://api.shortreelai.com/docs/mcp).
|
|
117
|
+
</details>
|
|
26
118
|
|
|
27
|
-
|
|
119
|
+
## What's inside
|
|
120
|
+
|
|
121
|
+
| Stage | Tools (selection) |
|
|
28
122
|
|---|---|
|
|
29
|
-
|
|
|
30
|
-
|
|
|
31
|
-
|
|
|
32
|
-
|
|
|
33
|
-
|
|
|
34
|
-
|
|
|
123
|
+
| Project setup | `create_drama` · `update_project_settings` · `list_project_options` |
|
|
124
|
+
| Script | `set_script` · AI rewrite · `edit_rewritten_script` |
|
|
125
|
+
| Cast & world | asset extraction · `update_character` · `generate_world_concept` · `generate_art_bible` |
|
|
126
|
+
| Identity anchors | `generate_portraits_and_sheets` (portraits + character sheets = the consistency anchor) |
|
|
127
|
+
| Storyboards | `quote_storyboards` → `generate_storyboards` → `get_storyboards` |
|
|
128
|
+
| Frames & video | `quote_frames` → `generate_frames` · `quote_videos` → `generate_videos` |
|
|
129
|
+
| Audio | `generate_tts` · `generate_bgm` · `generate_sfx` · voice management |
|
|
130
|
+
| Finishing | `compose_episode` (free) · `get_final_cut` · `render_multi_aspect` · posters & covers |
|
|
131
|
+
| Localization | `translate_subtitles` · localization jobs |
|
|
132
|
+
| Ads / MV modes | product library & product sheets · MV lyrics → story → script |
|
|
133
|
+
|
|
134
|
+
Project types: `drama` / `ad` / `mv` / `brand_film`.
|
|
35
135
|
|
|
36
|
-
|
|
37
|
-
`quote_id` 调 `generate_*`。整集一次执行,不逐图打扰。长任务后台异步,用 `get_storyboards`/
|
|
38
|
-
`get_final_cut` 轮询到完成。
|
|
136
|
+
## Billing is agent-safe by design
|
|
39
137
|
|
|
40
|
-
|
|
138
|
+
- **Prepaid, never negative.** Costs are pre-authorized *before* any vendor call;
|
|
139
|
+
insufficient balance returns a clean `402` — nothing half-runs.
|
|
140
|
+
- **Quote before spend.** Big-ticket stages are `quote_*` → show the user →
|
|
141
|
+
`generate_*` with the returned `quote_id`. For video, **quote == actual charge**
|
|
142
|
+
(same function computes both).
|
|
143
|
+
- **Final cut is free.** Composition, transitions, SFX matching and deliverable
|
|
144
|
+
packaging don't bill.
|
|
145
|
+
- API keys are stored hashed and exchanged for 15-minute short-lived tokens;
|
|
146
|
+
revoke in Settings at any time.
|
|
41
147
|
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
148
|
+
## Built for agents: the operating skill
|
|
149
|
+
|
|
150
|
+
[`SKILL.md`](./SKILL.md) ships inside the package — a platform-agnostic operating
|
|
151
|
+
manual (full pipeline order + ten operating disciplines + a failure playbook).
|
|
152
|
+
Skill-aware clients load it automatically; on platforms that can't run `npx`
|
|
153
|
+
(Coze / Dify / GPTs / custom agents) paste it into the system prompt and drive
|
|
154
|
+
the same pipeline over REST (`/v1/produce/*`).
|
|
155
|
+
|
|
156
|
+
Install it as a standalone agent skill (Claude Code, Codex, Cursor, OpenCode
|
|
157
|
+
and [70+ agents](https://github.com/vercel-labs/skills#supported-agents)) via
|
|
158
|
+
the [`skills`](https://skills.sh) CLI:
|
|
159
|
+
|
|
160
|
+
```bash
|
|
161
|
+
npx skills add waydaxp/starreel-mcp
|
|
162
|
+
```
|
|
45
163
|
|
|
46
|
-
##
|
|
164
|
+
## Environment variables
|
|
47
165
|
|
|
48
|
-
|
|
|
166
|
+
| Variable | Required | Default |
|
|
49
167
|
|---|---|---|
|
|
50
168
|
| `STARREEL_API_KEY` | ✅ | — |
|
|
51
169
|
| `STARREEL_AUTH_BASE` | | `https://api.shortreelai.com` |
|
|
170
|
+
|
|
171
|
+
## REST API (OpenAPI)
|
|
172
|
+
|
|
173
|
+
Prefer plain REST? The full production facade is described in
|
|
174
|
+
[`openapi.json`](./openapi.json) (OpenAPI 3.1, 100+ operations — generated from
|
|
175
|
+
this package's tool surface, so `operationId`s match MCP tool names 1:1).
|
|
176
|
+
Browse it rendered at
|
|
177
|
+
[waydaxp.github.io/starreel-mcp](https://waydaxp.github.io/starreel-mcp/), or
|
|
178
|
+
generate a typed client for any language:
|
|
179
|
+
|
|
180
|
+
```bash
|
|
181
|
+
npx openapi-typescript https://raw.githubusercontent.com/waydaxp/starreel-mcp/main/openapi.json -o starreel.d.ts
|
|
182
|
+
```
|
|
183
|
+
|
|
184
|
+
## Links
|
|
185
|
+
|
|
186
|
+
- Website: [starreel.ai](https://starreel.ai)
|
|
187
|
+
- API reference (OpenAPI): [waydaxp.github.io/starreel-mcp](https://waydaxp.github.io/starreel-mcp/)
|
|
188
|
+
- Full MCP / REST docs: [api.shortreelai.com/docs/mcp](https://api.shortreelai.com/docs/mcp)
|
|
189
|
+
- npm: [@starreel/mcp](https://www.npmjs.com/package/@starreel/mcp)
|
|
190
|
+
- 中文文档: [README.zh-CN.md](./README.zh-CN.md)
|
|
191
|
+
|
|
192
|
+
## License
|
|
193
|
+
|
|
194
|
+
[MIT](./LICENSE) — this client is open; the production pipeline is a hosted service.
|
package/README.zh-CN.md
ADDED
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
# @starreel/mcp
|
|
2
|
+
|
|
3
|
+
StarReel 的 MCP 服务器 —— 把 AI 短剧**编排产线**暴露给 Claude Code / Cursor /
|
|
4
|
+
任何 MCP 客户端:让 AI agent 一句话从**剧本跑到可下载的成片**。
|
|
5
|
+
|
|
6
|
+
完整接入文档:https://api.shortreelai.com/docs/mcp
|
|
7
|
+
|
|
8
|
+
**给 AI agent 的操作 Skill 与纪律**:本包内 [`SKILL.md`](./SKILL.md) —— 一份平台无关的
|
|
9
|
+
操作手册(完整产线顺序 + 十条接入纪律 + 失败处理决策)。支持 Skill 的客户端会自动加载;
|
|
10
|
+
不能 npx 的平台(Coze / Dify / GPTs / 自研 agent)可把它整段贴进 system prompt。
|
|
11
|
+
|
|
12
|
+
也可用 [`skills`](https://skills.sh) CLI 一条命令装成独立 agent skill
|
|
13
|
+
(Claude Code / Codex / Cursor / OpenCode 等 70+ 工具):
|
|
14
|
+
|
|
15
|
+
```bash
|
|
16
|
+
npx skills add waydaxp/starreel-mcp
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
## 接入
|
|
20
|
+
|
|
21
|
+
1. 在 StarReel → 设置 → API Key 创建一把 `produce` scope 的 key(`srk_live_...`,只展示一次)。
|
|
22
|
+
2. Claude Code:
|
|
23
|
+
|
|
24
|
+
```bash
|
|
25
|
+
claude mcp add starreel -e STARREEL_API_KEY=srk_live_xxx -- npx -y @starreel/mcp
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
也可装 **Claude Code 插件**——MCP server + agent skill 一步到位
|
|
29
|
+
(先在 shell 里 `export STARREEL_API_KEY=srk_live_xxx`):
|
|
30
|
+
|
|
31
|
+
```text
|
|
32
|
+
/plugin marketplace add waydaxp/starreel-mcp
|
|
33
|
+
/plugin install starreel@starreel
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
一键安装:
|
|
37
|
+
[](https://cursor.com/en/install-mcp?name=starreel&config=eyJjb21tYW5kIjoibnB4IiwiYXJncyI6WyIteSIsIkBzdGFycmVlbC9tY3AiXSwiZW52Ijp7IlNUQVJSRUVMX0FQSV9LRVkiOiJzcmtfbGl2ZV94eHgifX0=)
|
|
38
|
+
[](https://vscode.dev/redirect/mcp/install?name=starreel&config=%7B%22command%22%3A%22npx%22%2C%22args%22%3A%5B%22-y%22%2C%22%40starreel%2Fmcp%22%5D%2C%22env%22%3A%7B%22STARREEL_API_KEY%22%3A%22srk_live_xxx%22%7D%7D)
|
|
39
|
+
|
|
40
|
+
## 全客户端接入
|
|
41
|
+
|
|
42
|
+
要求 Node ≥ 18(能跑 `npx`)。下面这段**标准配置**在
|
|
43
|
+
**Cursor · Windsurf · Cline / Roo Code · Claude Desktop · Trae · Cherry Studio ·
|
|
44
|
+
Chatbox · DeepChat** 及任何读 `mcpServers` JSON 的客户端里通用:
|
|
45
|
+
|
|
46
|
+
```json
|
|
47
|
+
{
|
|
48
|
+
"mcpServers": {
|
|
49
|
+
"starreel": {
|
|
50
|
+
"command": "npx",
|
|
51
|
+
"args": ["-y", "@starreel/mcp"],
|
|
52
|
+
"env": { "STARREEL_API_KEY": "srk_live_xxx" }
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
格式不同的客户端:
|
|
59
|
+
|
|
60
|
+
- **Codex CLI** — `~/.codex/config.toml`:
|
|
61
|
+
|
|
62
|
+
```toml
|
|
63
|
+
[mcp_servers.starreel]
|
|
64
|
+
command = "npx"
|
|
65
|
+
args = ["-y", "@starreel/mcp"]
|
|
66
|
+
env = { "STARREEL_API_KEY" = "srk_live_xxx" }
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
- **VS Code(Copilot agent 模式)** — `.vscode/mcp.json` 或用户级 `mcp.json`,外层键是 `servers` 而非 `mcpServers`,内容同标准配置。
|
|
70
|
+
- **Gemini CLI** — `~/.gemini/settings.json`,直接放标准配置。
|
|
71
|
+
- **跑不了 npx 的平台(扣子 Coze / Dify / GPTs / 自研 agent)** — 走 REST(`/v1/produce/*`)+ 把 [`SKILL.md`](./SKILL.md) 整段贴进 system prompt,见[接入文档](https://api.shortreelai.com/docs/mcp)。
|
|
72
|
+
|
|
73
|
+
## 产线工具(从剧本到成片)
|
|
74
|
+
|
|
75
|
+
一集短剧的完整链路,每个花钱阶段先报价、你确认后才执行:
|
|
76
|
+
|
|
77
|
+
| 阶段 | 工具 |
|
|
78
|
+
|---|---|
|
|
79
|
+
| 建剧 | `create_drama`(建剧壳+自动建集,返回 episode_id) |
|
|
80
|
+
| 灌本 | `set_script` |
|
|
81
|
+
| 拆镜 | `quote_storyboards` → `generate_storyboards` → `get_storyboards`(审阅) |
|
|
82
|
+
| 出首帧 | `quote_frames` → `generate_frames` |
|
|
83
|
+
| 出视频 | `quote_videos` → `generate_videos`(大额,报价与扣费同函数) |
|
|
84
|
+
| 成片 | `compose_episode`(免费终拼) → `get_final_cut`(拿 COS 下载链接) |
|
|
85
|
+
|
|
86
|
+
**批量报价确认**:每个 `quote_*` 返回预估点数,agent 应把点数告诉你、你同意后才用返回的
|
|
87
|
+
`quote_id` 调 `generate_*`。整集一次执行,不逐图打扰。长任务后台异步,用 `get_storyboards`/
|
|
88
|
+
`get_final_cut` 轮询到完成。
|
|
89
|
+
|
|
90
|
+
## 计费与安全
|
|
91
|
+
|
|
92
|
+
- 预付制:必须有余额才能生成,账户**永不为负**;成本在调厂商**之前**预授权,不够返回 402。
|
|
93
|
+
- 视频报价 == 实际扣费(同一函数);终拼(成片)免费。
|
|
94
|
+
- API key 只存哈希;换取的是 15 分钟短期令牌;泄露在设置页吊销即失效,不影响网页登录。
|
|
95
|
+
|
|
96
|
+
## REST API(OpenAPI)
|
|
97
|
+
|
|
98
|
+
想直接裸调 REST?整个产线门面见 [`openapi.json`](./openapi.json)
|
|
99
|
+
(OpenAPI 3.1,100+ 操作,从本包工具面生成,operationId 与 MCP 工具名一一对应)。
|
|
100
|
+
在线渲染版:[waydaxp.github.io/starreel-mcp](https://waydaxp.github.io/starreel-mcp/);
|
|
101
|
+
也可用它给任意语言生成带类型客户端(如 `npx openapi-typescript`)。
|
|
102
|
+
|
|
103
|
+
## 环境变量
|
|
104
|
+
|
|
105
|
+
| 变量 | 必填 | 默认 |
|
|
106
|
+
|---|---|---|
|
|
107
|
+
| `STARREEL_API_KEY` | ✅ | — |
|
|
108
|
+
| `STARREEL_AUTH_BASE` | | `https://api.shortreelai.com` |
|
package/SKILL.md
CHANGED
|
@@ -147,6 +147,16 @@ content that will be rejected.
|
|
|
147
147
|
`generate_frames` / `generate_shot_frame` may override per call. Options:
|
|
148
148
|
`gemini-3-pro-image` (Nano Banana Pro, finer, pricier), `gemini-3.1-flash-lite-image`
|
|
149
149
|
(Lite, cheap), `doubao-seedream-5-0-260128` (Seedream 5.0), `gpt-image-2`.
|
|
150
|
+
**Video engine**: videos use a drama-level engine, set via `create_drama` /
|
|
151
|
+
`update_project_settings` field `video_engine`. Two options — surface the
|
|
152
|
+
choice to the customer with the price gap and let them decide:
|
|
153
|
+
`seedance-2.5` (default; full capability: frame chain / scene groups /
|
|
154
|
+
in-place edit / extend / reference anchors; 720p ≈ 212 pts/s) or `hailuo-3`
|
|
155
|
+
(MiniMax H3, beta; ≈1/3 cost at 70 pts/s for 720p; native dialogue & SFX
|
|
156
|
+
baked into the clip; up to 2K; ~6 min per shot; in-place edit / extend /
|
|
157
|
+
keyframe groups not yet available). **Set it before generating any video**:
|
|
158
|
+
switching never re-renders existing shots, and mixing engines inside one
|
|
159
|
+
drama risks style/identity drift.
|
|
150
160
|
**Images are slow** (tens of seconds to minutes each; a whole episode can take
|
|
151
161
|
10+ min): poll `get_storyboards` and read `frame_status` — `pending` = still
|
|
152
162
|
generating (keep waiting, NEVER re-call generate_frames — that double-charges),
|
package/dist/tools/produce.js
CHANGED
|
@@ -72,6 +72,9 @@ const WORKFLOW_HINT = '★三档执行策略(别把三档混着问客户):' +
|
|
|
72
72
|
'建剧/改设定时 AI 应主动告知客户「默认用视频原声,如需 TTS 配音把 use_clip_audio 设 false」,让客户选。' +
|
|
73
73
|
'★图片模型默认香蕉2(Nano Banana 2 = gemini-3.1-flash-image·整剧统一画风):create_drama/update_project_settings 的 image_model 设,不传即默认香蕉2;' +
|
|
74
74
|
'可选 gemini-3-pro-image(香蕉Pro·更精细·175点)/gemini-3.1-flash-lite-image(香蕉2 Lite·便宜·31点)/doubao-seedream-5-0-260128(Seedream5.0)/gpt-image-2(ChatGPT Image2);generate_frames 可临时覆盖某次。' +
|
|
75
|
+
'★视频引擎二选一(drama级·AI 建剧时应主动告知客户并给价差让客户定):seedance-2.5(默认·全能力·720p约212点/秒) vs ' +
|
|
76
|
+
'hailuo-3(MiniMax H3·灰度·约1/3成本70点/秒·原生对白音效·2K·单镜约6分钟·就地编辑/延长/关键帧组暂不可用);' +
|
|
77
|
+
'create_drama/update_project_settings 的 video_engine 设,★必须在出视频前定——切换不回溯已生成镜头,同剧混用会画风/身份漂移。' +
|
|
75
78
|
'★图片生成慢≠失败:每张几十秒~数分钟、整集可能十几分钟,轮询 get_storyboards 看 frame_status——pending=还在生成(耐心等、别重复调 generate_frames 白花钱)、ready=完成、failed=才是真失败。' +
|
|
76
79
|
'★改某一镜画面 / 换定妆图后要让新图生效,走**单镜重生 generate_shot_frame**(平台自动带该镜身份锚·场景道具参考·画风锚,保全片一致);' +
|
|
77
80
|
'generate_frames 只批量补「缺帧」的镜、已有首帧的镜跳过(正常、不是"拒绝"),尾帧用 frame_type=last_frame 可批量补。换定妆图(set_character_portrait)后响应里的 stale_frames 就是被旧图污染、需逐镜重生的镜。' +
|
|
@@ -100,6 +103,8 @@ const ETHNICITY_CODES = [
|
|
|
100
103
|
const FRAME_TYPE_ARG = z.enum(['first_frame', 'last_frame', 'both']);
|
|
101
104
|
const ASPECT_RATIOS = ['9:16', '16:9', '1:1', '4:5', '4:3', '21:9'];
|
|
102
105
|
const VIDEO_RESOLUTIONS = ['480p', '720p', '1080p', '4k'];
|
|
106
|
+
// 剧级视频引擎(与后端 video-engine-policy 白名单同源;短 id,后端归一化)。
|
|
107
|
+
const VIDEO_ENGINES = ['seedance-2.5', 'hailuo-3'];
|
|
103
108
|
// 「项目设定页」通用视觉/音频/字幕/转场设定 —— create_drama 与 update_project_settings 共用。
|
|
104
109
|
// 后端内部 PUT /dramas 已接受写库,facade 白名单 Wave3 已放行(produce-create-fields.ts)。
|
|
105
110
|
// 不含内部产线/成本开关(strict_mode/best_of_n/shoppable/budget_points 等,需产品决策)。
|
|
@@ -108,6 +113,11 @@ const PROJECT_SETTINGS_FIELDS = {
|
|
|
108
113
|
image_model: z.string().optional().describe('图片模型(★drama级·整剧统一画风·默认香蕉2 Nano Banana 2)。可选:' +
|
|
109
114
|
'gemini-3.1-flash-image(香蕉2·默认·71点)/gemini-3-pro-image(香蕉Pro·精细·175点)/gemini-3.1-flash-lite-image(香蕉2 Lite·31点)/' +
|
|
110
115
|
'doubao-seedream-5-0-260128(Seedream 5.0)/gpt-image-2(ChatGPT Image 2)。建剧即定、整剧统一;generate_frames 可临时覆盖某次出图'),
|
|
116
|
+
// drama 级视频引擎(整剧统一,单镜/批量/场景组/重生全走它)
|
|
117
|
+
video_engine: z.enum(VIDEO_ENGINES).optional().describe('视频引擎(★drama级·整剧统一·AI应主动告知客户可选并给出两档价差让客户定):' +
|
|
118
|
+
'seedance-2.5(默认·全能力:帧链/场景组/就地编辑/延长/参考图锚·720p约212点/秒) / ' +
|
|
119
|
+
'hailuo-3(MiniMax H3·灰度:约1/3成本 720p 70点/秒·原生对白与音效·支持2K·单镜生成约6分钟·就地编辑/延长/关键帧组暂不可用)。' +
|
|
120
|
+
'★必须在出视频**前**设置——切换不回溯已生成的镜头,同剧混用两引擎会有画风/身份漂移风险'),
|
|
111
121
|
// 整剧视觉一致性锚(注入所有出图/视频 prompt,决定跨镜一致)
|
|
112
122
|
cinematography_prompt: z.string().optional().describe('摄影DNA:镜头/镜片/光圈/调色一揽子,注入所有出图/视频prompt,整剧镜头一致'),
|
|
113
123
|
art_bible: z.string().optional().describe('美术圣经:色调/材质/气质,注入所有生图prompt,统一视觉风格'),
|
|
@@ -145,7 +155,7 @@ function buildEthnicityLock(ethnicity, note) {
|
|
|
145
155
|
}
|
|
146
156
|
export function registerProduceTools(server, client) {
|
|
147
157
|
// ---------- 建剧前:列可选项 ----------
|
|
148
|
-
server.tool('list_project_options', '列出建剧的全部可选项:项目类型(短剧/广告/MV/品牌片)
|
|
158
|
+
server.tool('list_project_options', '列出建剧的全部可选项:项目类型(短剧/广告/MV/品牌片)、画幅比例、视频分辨率、视频引擎(Seedance 2.5/MiniMax H3,带价差与能力差)(带中英标签+说明+默认值)。' +
|
|
149
159
|
'建剧前先调它,把选项给用户挑,再照 key 传给 create_drama。免费。', {}, async () => jsonResult(await client.produceGet('/project-options')));
|
|
150
160
|
// ---------- 建剧 ----------
|
|
151
161
|
// 参数=「项目设定 / 新建项目」页对外能设的全部通用字段(不含内部产线开关)。
|