@amaster.ai/pi-video-gen 0.1.7 → 0.1.9
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 +25 -3
- package/dist/config.d.ts +8 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +39 -11
- package/dist/config.js.map +1 -1
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +1 -0
- package/dist/errors.js.map +1 -1
- package/dist/frame-input.d.ts +2 -0
- package/dist/frame-input.d.ts.map +1 -0
- package/dist/frame-input.js +63 -0
- package/dist/frame-input.js.map +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +25 -14
- package/dist/index.js.map +1 -1
- package/dist/providers/ark.js +2 -2
- package/dist/providers/ark.js.map +1 -1
- package/dist/providers/dashscope.js +2 -2
- package/dist/providers/dashscope.js.map +1 -1
- package/dist/providers/kling.js +2 -2
- package/dist/providers/kling.js.map +1 -1
- package/dist/providers/minimax.d.ts +27 -0
- package/dist/providers/minimax.d.ts.map +1 -0
- package/dist/providers/minimax.js +181 -0
- package/dist/providers/minimax.js.map +1 -0
- package/dist/providers/models.d.ts +6 -0
- package/dist/providers/models.d.ts.map +1 -1
- package/dist/providers/models.js +33 -7
- package/dist/providers/models.js.map +1 -1
- package/dist/providers/newapi.js +2 -2
- package/dist/providers/newapi.js.map +1 -1
- package/dist/providers/openrouter.js +2 -2
- package/dist/providers/openrouter.js.map +1 -1
- package/dist/providers/task.d.ts +4 -0
- package/dist/providers/task.d.ts.map +1 -1
- package/dist/providers/task.js +14 -2
- package/dist/providers/task.js.map +1 -1
- package/dist/render.d.ts.map +1 -1
- package/dist/render.js +5 -5
- package/dist/render.js.map +1 -1
- package/dist/timeline-render.d.ts.map +1 -1
- package/dist/timeline-render.js +44 -50
- package/dist/timeline-render.js.map +1 -1
- package/dist/timeline.d.ts +2 -1
- package/dist/timeline.d.ts.map +1 -1
- package/dist/timeline.js +2 -1
- package/dist/timeline.js.map +1 -1
- package/dist/types.d.ts +6 -4
- package/dist/types.d.ts.map +1 -1
- package/package.json +7 -7
- package/skills/video-gen/SKILL.md +22 -12
- package/skills/video-gen/evals.json +65 -0
package/README.md
CHANGED
|
@@ -15,6 +15,7 @@ that orchestrates the full shot-book workflow together with
|
|
|
15
15
|
| `ark` (Volcengine Ark) | Seedance 2.0 standard / fast / mini | ✅ built-in |
|
|
16
16
|
| `dashscope` (Alibaba) | HappyHorse 1.1 / 1.0 (t2v/i2v/r2v auto-routed) | ✅ built-in |
|
|
17
17
|
| `kling` (Kuaishou) | Kling 3.0 Turbo / 3.0 Omni (API 2.0) | ✅ built-in |
|
|
18
|
+
| `minimax` | MiniMax-H3 (v2 API) | ✅ built-in |
|
|
18
19
|
| `openrouter` | google/veo-3.1 (+ custom models) | ✅ built-in |
|
|
19
20
|
| `newapi` | self-hosted NewAPI relay (Kling / Jimeng / Vidu / Gemini channels) | ✅ via `customProviders` — `baseUrl` **required** |
|
|
20
21
|
| custom | your own endpoints | ✅ via `customProviders` |
|
|
@@ -32,7 +33,7 @@ Global settings (`~/.pi/agent/settings.json`):
|
|
|
32
33
|
```jsonc
|
|
33
34
|
{
|
|
34
35
|
"pi-video-gen": {
|
|
35
|
-
"defaultModel": "seedance",
|
|
36
|
+
"defaultModel": "seedance-2.0", // alias of doubao-seedance-2-0-260128
|
|
36
37
|
"providers": {
|
|
37
38
|
"ark": { "apiKey": "${ARK_API_KEY}" } // Volcengine Ark key
|
|
38
39
|
},
|
|
@@ -44,7 +45,12 @@ Global settings (`~/.pi/agent/settings.json`):
|
|
|
44
45
|
|
|
45
46
|
**Custom providers** (same idea as pi-image-gen's — point any Ark-compatible
|
|
46
47
|
endpoint at your own models; string models get conservative capabilities,
|
|
47
|
-
object models declare them)
|
|
48
|
+
object models declare them). When a custom model's `id` names a built-in
|
|
49
|
+
model (e.g. `"MiniMax-H3"` behind your relay), the built-in capability table
|
|
50
|
+
and defaults are inherited automatically — undeclared `capabilities`,
|
|
51
|
+
`defaultResolution`/`defaultAspectRatio`/`defaultDurationSec` fall back to
|
|
52
|
+
the registry values instead of the conservative 720p/16:9 profile, and any
|
|
53
|
+
field you do declare overrides the inherited one:
|
|
48
54
|
|
|
49
55
|
```jsonc
|
|
50
56
|
{
|
|
@@ -96,6 +102,22 @@ ambiguous submits are parked for manual resolution rather than auto-retried:
|
|
|
96
102
|
}
|
|
97
103
|
```
|
|
98
104
|
|
|
105
|
+
**MiniMax notes** (v2 API, [create](https://platform.minimax.io/docs/api-reference/video-generation-v2-create) / [query](https://platform.minimax.io/docs/api-reference/video-generation-v2-query)):
|
|
106
|
+
MiniMax-H3 speaks a multimodal task API — prompt + frames ride in one
|
|
107
|
+
`content` array with `first_frame` / `last_frame` / `reference_image` roles
|
|
108
|
+
(first/last frames and reference images are mutually exclusive; a last frame
|
|
109
|
+
requires a first frame). Resolution is `768P` or `2K`, duration 4–15s, ratio
|
|
110
|
+
`16:9|4:3|1:1|3:4|9:16|21:9` — required and non-adaptive for text-to-video,
|
|
111
|
+
ignored (forced adaptive) once a first frame is present. There is no audio
|
|
112
|
+
toggle, no idempotency key and no documented cancel endpoint, so ambiguous
|
|
113
|
+
submits are parked for manual resolution rather than auto-retried. Auth is a
|
|
114
|
+
plain Bearer key (`providers.minimax.apiKey`, env `MINIMAX_API_KEY`), and keys
|
|
115
|
+
are region-locked: the default endpoint is international
|
|
116
|
+
`api.minimax.io` — mainland-China keys need `providers.minimax.baseUrl` set
|
|
117
|
+
to `https://api.minimaxi.com` (and vice versa a 401 means wrong region).
|
|
118
|
+
Result URLs are time-limited; clips are downloaded immediately, and tasks
|
|
119
|
+
stay queryable for 7 days.
|
|
120
|
+
|
|
99
121
|
**Kling notes** (verified against kling.ai/document-api via browser, 2026-07):
|
|
100
122
|
current Kling API 2.0 uses a plain API key (`providers.kling.apiKey`, env
|
|
101
123
|
`KLING_API_KEY`) — the JWT ak/sk scheme is legacy. The model lives in the URL
|
|
@@ -142,7 +164,7 @@ the binaries.
|
|
|
142
164
|
|
|
143
165
|
| Tool | What it does |
|
|
144
166
|
|---|---|
|
|
145
|
-
| `video_compose` | **Local video assembly, no paid models.** C0 (`compose-input.json`)
|
|
167
|
+
| `video_compose` | **Local video assembly, no paid video models.** C0 (`compose-input.json`) concatenates compatible clips. Timeline media, overlays, transitions, subtitles, source audio, and BGM render locally. Narration is an explicit network feature: setting `voice` to `edge-tts:<voice-name>` sends narration text to Microsoft Edge TTS. |
|
|
146
168
|
| `video_generate` | One short clip from a prompt (+ optional first/last frame images). Paid, minutes per clip. Interrupted after receiving a task id? Resume with the returned `jobId`; an ambiguous submit is parked and never resubmitted automatically. |
|
|
147
169
|
| `video_render` | Multi-shot film from `<jobDir>/render-input.json`: snapshots + hashes all frames, submits one paid task per shot (resume-aware, finished shots never re-bill), downloads clips, ffmpeg-concats into `final_video.mp4`. |
|
|
148
170
|
| `video_capabilities` | Read-only: active model's capability table + registered models. Call before composing prompts or shot books. |
|
package/dist/config.d.ts
CHANGED
|
@@ -1,4 +1,10 @@
|
|
|
1
1
|
import type { ResolvedModel, ResolvedProvider, VideoApiStyle, VideoGenSettings } from './types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Fallback model when neither the caller nor settings.defaultModel name one.
|
|
4
|
+
* A full registry id, NOT an alias — aliases can be dropped between versions,
|
|
5
|
+
* the default must not depend on one.
|
|
6
|
+
*/
|
|
7
|
+
export declare const DEFAULT_VIDEO_MODEL_ID = "doubao-seedance-2-0-260128";
|
|
2
8
|
/**
|
|
3
9
|
* Load `pi-video-gen` settings with the trust boundary applied:
|
|
4
10
|
* - untrusted project ⇒ the project layer is ignored entirely;
|
|
@@ -10,7 +16,8 @@ export declare function loadVideoGenSettings(cwd: string, projectTrusted: boolea
|
|
|
10
16
|
export declare function resolveProvider(settings: VideoGenSettings, style: VideoApiStyle): ResolvedProvider;
|
|
11
17
|
/**
|
|
12
18
|
* Resolve a model id/alias (defaulting to settings.defaultModel, then
|
|
13
|
-
*
|
|
19
|
+
* DEFAULT_VIDEO_MODEL_ID). Built-in registry wins over custom provider
|
|
20
|
+
* models on conflict.
|
|
14
21
|
*/
|
|
15
22
|
export declare function resolveModel(settings: VideoGenSettings, modelId?: string): ResolvedModel | null;
|
|
16
23
|
/** Registry view for the video_capabilities tool / `/video-gen models`. */
|
package/dist/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAEV,aAAa,EACb,gBAAgB,EAChB,aAAa,EACb,gBAAgB,EAEjB,MAAM,YAAY,CAAC;AAIpB;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,+BAA+B,CAAC;AA8OnE;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,EAAE,cAAc,EAAE,OAAO,GAAG,gBAAgB,CAmB3F;AAED,gFAAgF;AAChF,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,gBAAgB,EAC1B,KAAK,EAAE,aAAa,GACnB,gBAAgB,CAQlB;AA8FD;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,gBAAgB,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI,CAW/F;AAED,2EAA2E;AAC3E,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,gBAAgB,GAAG;IAC7D,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,OAAO,CAAC;IACxB,MAAM,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,EAAE,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,OAAO,CAAA;KAAE,EAAE,CAAC;CAClF,CA0BA;AAED,qCAAqC;AACrC,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,gBAAgB,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAEhF"}
|
package/dist/config.js
CHANGED
|
@@ -4,9 +4,16 @@ import { providerLabel, VideoGenError } from './errors.js';
|
|
|
4
4
|
import { ARK_DEFAULT_BASE_URL } from './providers/ark.js';
|
|
5
5
|
import { DASHSCOPE_DEFAULT_BASE_URL } from './providers/dashscope.js';
|
|
6
6
|
import { KLING_DEFAULT_BASE_URL } from './providers/kling.js';
|
|
7
|
+
import { MINIMAX_DEFAULT_BASE_URL } from './providers/minimax.js';
|
|
7
8
|
import { BUILT_IN_VIDEO_MODELS, findBuiltInModel } from './providers/models.js';
|
|
8
9
|
import { OPENROUTER_DEFAULT_BASE_URL } from './providers/openrouter.js';
|
|
9
10
|
const SETTINGS_KEY = 'pi-video-gen';
|
|
11
|
+
/**
|
|
12
|
+
* Fallback model when neither the caller nor settings.defaultModel name one.
|
|
13
|
+
* A full registry id, NOT an alias — aliases can be dropped between versions,
|
|
14
|
+
* the default must not depend on one.
|
|
15
|
+
*/
|
|
16
|
+
export const DEFAULT_VIDEO_MODEL_ID = 'doubao-seedance-2-0-260128';
|
|
10
17
|
/**
|
|
11
18
|
* Keys a project-level settings file may set. Everything else — notably
|
|
12
19
|
* `providers.*.baseUrl/apiKey` and `ffmpegPath` — is accepted ONLY from the
|
|
@@ -23,6 +30,7 @@ const PROVIDER_DEFAULT_BASE_URLS = {
|
|
|
23
30
|
kling: KLING_DEFAULT_BASE_URL,
|
|
24
31
|
dashscope: DASHSCOPE_DEFAULT_BASE_URL,
|
|
25
32
|
openrouter: OPENROUTER_DEFAULT_BASE_URL,
|
|
33
|
+
minimax: MINIMAX_DEFAULT_BASE_URL,
|
|
26
34
|
};
|
|
27
35
|
/** Resolve the effective base URL, failing clearly when the style mandates one. */
|
|
28
36
|
function requireBaseUrl(style, configured, settingsPath) {
|
|
@@ -101,7 +109,7 @@ function validateCapabilities(value, path) {
|
|
|
101
109
|
}
|
|
102
110
|
}
|
|
103
111
|
}
|
|
104
|
-
const WIRE_FORMATS = ['ark', 'kling', 'dashscope', 'openrouter', 'newapi'];
|
|
112
|
+
const WIRE_FORMATS = ['ark', 'kling', 'dashscope', 'openrouter', 'newapi', 'minimax'];
|
|
105
113
|
function validateCustomProviders(value) {
|
|
106
114
|
if (value === undefined)
|
|
107
115
|
return;
|
|
@@ -212,9 +220,13 @@ export function resolveProvider(settings, style) {
|
|
|
212
220
|
}
|
|
213
221
|
/**
|
|
214
222
|
* Conservative capabilities for custom models declared as a bare string (or
|
|
215
|
-
* with a partial capabilities object)
|
|
216
|
-
*
|
|
217
|
-
*
|
|
223
|
+
* with a partial capabilities object) whose id matches NO built-in registry
|
|
224
|
+
* entry: text-to-video + first frame only, no audio, no last-frame
|
|
225
|
+
* interpolation, 720p/16:9. Declare full capabilities in the custom model
|
|
226
|
+
* object to lift these. When the id DOES name a built-in model (e.g.
|
|
227
|
+
* "MiniMax-H3" behind a relay), the built-in capability table is the base
|
|
228
|
+
* instead — the remote contract is known, so resolution/duration/ratio
|
|
229
|
+
* defaults come from the registry.
|
|
218
230
|
*/
|
|
219
231
|
const CONSERVATIVE_CUSTOM_CAPABILITIES = {
|
|
220
232
|
maxReferenceImages: 1,
|
|
@@ -224,6 +236,14 @@ const CONSERVATIVE_CUSTOM_CAPABILITIES = {
|
|
|
224
236
|
nativeAudio: false,
|
|
225
237
|
supportsFirstLastFrame: false,
|
|
226
238
|
};
|
|
239
|
+
/**
|
|
240
|
+
* Default-value inheritance for custom models: an explicit settings value
|
|
241
|
+
* wins; then the built-in registry default (only while it stays valid against
|
|
242
|
+
* the merged capabilities); finally the caller-supplied fallback.
|
|
243
|
+
*/
|
|
244
|
+
function inheritDefault(explicit, builtIn, isValid, fallback) {
|
|
245
|
+
return explicit ?? (builtIn !== undefined && isValid(builtIn) ? builtIn : fallback);
|
|
246
|
+
}
|
|
227
247
|
function resolveCustomModel(settings, wanted) {
|
|
228
248
|
const needle = wanted.trim().toLowerCase();
|
|
229
249
|
for (const [providerName, cp] of Object.entries(settings.customProviders ?? {})) {
|
|
@@ -233,16 +253,23 @@ function resolveCustomModel(settings, wanted) {
|
|
|
233
253
|
(model.alias != null && model.alias.toLowerCase() === needle);
|
|
234
254
|
if (!matches)
|
|
235
255
|
continue;
|
|
236
|
-
const
|
|
256
|
+
const builtIn = findBuiltInModel(model.id);
|
|
257
|
+
const capabilities = {
|
|
258
|
+
...(builtIn?.capabilities ?? CONSERVATIVE_CUSTOM_CAPABILITIES),
|
|
259
|
+
...(model.capabilities ?? {}),
|
|
260
|
+
};
|
|
261
|
+
const defaultResolution = inheritDefault(model.defaultResolution, builtIn?.defaultResolution, (v) => capabilities.resolutions.includes(v), capabilities.resolutions[0]);
|
|
262
|
+
const defaultAspectRatio = inheritDefault(model.defaultAspectRatio, builtIn?.defaultAspectRatio, (v) => capabilities.aspectRatios.includes(v), capabilities.aspectRatios[0]);
|
|
263
|
+
const defaultDurationSec = inheritDefault(model.defaultDurationSec, builtIn?.defaultDurationSec, (v) => v >= capabilities.durations[0] && v <= capabilities.durations[1], capabilities.durations[0]);
|
|
237
264
|
return {
|
|
238
265
|
entry: {
|
|
239
266
|
id: model.id,
|
|
240
267
|
aliases: model.alias ? [model.alias] : [],
|
|
241
268
|
provider: cp.api,
|
|
242
269
|
capabilities,
|
|
243
|
-
defaultResolution
|
|
244
|
-
defaultAspectRatio
|
|
245
|
-
defaultDurationSec
|
|
270
|
+
defaultResolution,
|
|
271
|
+
defaultAspectRatio,
|
|
272
|
+
defaultDurationSec,
|
|
246
273
|
},
|
|
247
274
|
remoteId: model.id,
|
|
248
275
|
provider: {
|
|
@@ -258,10 +285,11 @@ function resolveCustomModel(settings, wanted) {
|
|
|
258
285
|
}
|
|
259
286
|
/**
|
|
260
287
|
* Resolve a model id/alias (defaulting to settings.defaultModel, then
|
|
261
|
-
*
|
|
288
|
+
* DEFAULT_VIDEO_MODEL_ID). Built-in registry wins over custom provider
|
|
289
|
+
* models on conflict.
|
|
262
290
|
*/
|
|
263
291
|
export function resolveModel(settings, modelId) {
|
|
264
|
-
const wanted = modelId ?? settings.defaultModel ??
|
|
292
|
+
const wanted = modelId ?? settings.defaultModel ?? DEFAULT_VIDEO_MODEL_ID;
|
|
265
293
|
const entry = findBuiltInModel(wanted);
|
|
266
294
|
if (entry) {
|
|
267
295
|
return {
|
|
@@ -274,7 +302,7 @@ export function resolveModel(settings, modelId) {
|
|
|
274
302
|
}
|
|
275
303
|
/** Registry view for the video_capabilities tool / `/video-gen models`. */
|
|
276
304
|
export function listModelRegistry(settings) {
|
|
277
|
-
const wanted = settings.defaultModel ??
|
|
305
|
+
const wanted = settings.defaultModel ?? DEFAULT_VIDEO_MODEL_ID;
|
|
278
306
|
const active = resolveModel(settings, wanted);
|
|
279
307
|
return {
|
|
280
308
|
activeId: active?.entry.id ?? wanted,
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
package/dist/errors.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD;;;;;;;GAOG;AACH,qBAAa,aAAc,SAAQ,KAAK;IACtC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;gBAChB,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM;CAKhD;AAED;;;;GAIG;AACH,qBAAa,oBAAqB,SAAQ,aAAa;CAAG;AAE1D,6EAA6E;AAC7E,qBAAa,sBAAuB,SAAQ,aAAa;CAAG;AAE5D,2EAA2E;AAC3E,qBAAa,qBAAsB,SAAQ,aAAa;IACtD,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;gBACrB,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM;CAIzE;AAED,gFAAgF;AAChF,qBAAa,uBAAwB,SAAQ,aAAa;CAAG;AAE7D,0EAA0E;AAC1E,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAGnD;AAED,8EAA8E;AAC9E,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAG1D;AAED;;;GAGG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAO7C;AAED,6EAA6E;AAC7E,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEjD;
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD;;;;;;;GAOG;AACH,qBAAa,aAAc,SAAQ,KAAK;IACtC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;gBAChB,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM;CAKhD;AAED;;;;GAIG;AACH,qBAAa,oBAAqB,SAAQ,aAAa;CAAG;AAE1D,6EAA6E;AAC7E,qBAAa,sBAAuB,SAAQ,aAAa;CAAG;AAE5D,2EAA2E;AAC3E,qBAAa,qBAAsB,SAAQ,aAAa;IACtD,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;gBACrB,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM;CAIzE;AAED,gFAAgF;AAChF,qBAAa,uBAAwB,SAAQ,aAAa;CAAG;AAE7D,0EAA0E;AAC1E,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAGnD;AAED,8EAA8E;AAC9E,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAG1D;AAED;;;GAGG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAO7C;AAED,6EAA6E;AAC7E,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEjD;AAWD,wBAAgB,aAAa,CAAC,KAAK,EAAE,aAAa,GAAG,MAAM,CAE1D;AAED,6EAA6E;AAC7E,wBAAgB,eAAe,CAC7B,KAAK,EAAE,aAAa,EACpB,MAAM,EAAE,MAAM,EACd,UAAU,SAA2C,GACpD,aAAa,CAKf;AAED,mFAAmF;AACnF,wBAAgB,eAAe,CAC7B,KAAK,EAAE,aAAa,EACpB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,GACb,aAAa,CAiBf;AAED,yFAAyF;AACzF,wBAAgB,YAAY,CAAC,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,GAAG,aAAa,CAKhF"}
|
package/dist/errors.js
CHANGED
package/dist/errors.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAEA;;;;;;;GAOG;AACH,MAAM,OAAO,aAAc,SAAQ,KAAK;IAC7B,UAAU,CAAS;IAC5B,YAAY,OAAe,EAAE,UAAkB;QAC7C,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,eAAe,CAAC;QAC5B,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,yBAAyB,CAAC;IAClF,CAAC;CACF;AAED;;;;GAIG;AACH,MAAM,OAAO,oBAAqB,SAAQ,aAAa;CAAG;AAE1D,6EAA6E;AAC7E,MAAM,OAAO,sBAAuB,SAAQ,aAAa;CAAG;AAE5D,2EAA2E;AAC3E,MAAM,OAAO,qBAAsB,SAAQ,aAAa;IAC7C,eAAe,CAAS;IACjC,YAAY,OAAe,EAAE,UAAkB,EAAE,eAAuB;QACtE,KAAK,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;QAC3B,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;IACzC,CAAC;CACF;AAED,gFAAgF;AAChF,MAAM,OAAO,uBAAwB,SAAQ,aAAa;CAAG;AAE7D,0EAA0E;AAC1E,MAAM,UAAU,YAAY,CAAC,KAAc;IACzC,IAAI,KAAK,YAAY,aAAa;QAAE,OAAO,KAAK,CAAC,UAAU,CAAC;IAC5D,OAAO,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,4BAA4B,CAAC;AACpF,CAAC;AAED,8EAA8E;AAC9E,MAAM,UAAU,mBAAmB,CAAC,KAAc;IAChD,IAAI,KAAK,YAAY,aAAa;QAAE,OAAO,KAAK,CAAC,OAAO,CAAC;IACzD,OAAO,8FAA8F,CAAC;AACxG,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,SAAS,CAAC,GAAW;IACnC,IAAI,CAAC;QACH,MAAM,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;QACvB,OAAO,GAAG,CAAC,CAAC,QAAQ,KAAK,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC;IACjD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,OAAO,CAAC;IACjB,CAAC;AACH,CAAC;AAED,6EAA6E;AAC7E,MAAM,UAAU,YAAY,CAAC,IAAY;IACvC,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,IAAI,MAAM,CAAC;AAC7C,CAAC;AAED,MAAM,eAAe,GAAkC;IACrD,GAAG,EAAE,gBAAgB;IACrB,KAAK,EAAE,OAAO;IACd,SAAS,EAAE,WAAW;IACtB,UAAU,EAAE,YAAY;IACxB,MAAM,EAAE,QAAQ;
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"frame-input.d.ts","sourceRoot":"","sources":["../src/frame-input.ts"],"names":[],"mappings":"AA2BA,wBAAsB,iBAAiB,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAwDxF"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { constants } from 'node:fs';
|
|
2
|
+
import { lstat, open, realpath } from 'node:fs/promises';
|
|
3
|
+
import { isAbsolute, relative, resolve, sep } from 'node:path';
|
|
4
|
+
import { VideoGenError } from './errors.js';
|
|
5
|
+
const MAX_FRAME_BYTES = 20 * 1024 * 1024;
|
|
6
|
+
function isInside(relativePath) {
|
|
7
|
+
return (relativePath === '' ||
|
|
8
|
+
(relativePath !== '..' && !relativePath.startsWith(`..${sep}`) && !isAbsolute(relativePath)));
|
|
9
|
+
}
|
|
10
|
+
function isSupportedImage(bytes) {
|
|
11
|
+
return ((bytes.length >= 8 &&
|
|
12
|
+
Buffer.from(bytes.subarray(0, 8)).equals(Buffer.from([0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a]))) ||
|
|
13
|
+
(bytes.length >= 3 && bytes[0] === 0xff && bytes[1] === 0xd8 && bytes[2] === 0xff) ||
|
|
14
|
+
(bytes.length >= 12 &&
|
|
15
|
+
Buffer.from(bytes.subarray(0, 4)).toString('ascii') === 'RIFF' &&
|
|
16
|
+
Buffer.from(bytes.subarray(8, 12)).toString('ascii') === 'WEBP'));
|
|
17
|
+
}
|
|
18
|
+
export async function readApprovedFrame(sourcePath, cwd) {
|
|
19
|
+
const absolute = resolve(cwd, sourcePath);
|
|
20
|
+
const lexicalRoot = resolve(cwd);
|
|
21
|
+
const lexicalRelative = relative(lexicalRoot, absolute);
|
|
22
|
+
if (!isInside(lexicalRelative)) {
|
|
23
|
+
throw new VideoGenError('Reference frame must be inside the approved project directory.', 'frame: outside cwd');
|
|
24
|
+
}
|
|
25
|
+
const info = await lstat(absolute).catch(() => null);
|
|
26
|
+
if (!info)
|
|
27
|
+
throw new VideoGenError('Reference frame is not readable.', 'frame: unreadable');
|
|
28
|
+
if (info.isSymbolicLink()) {
|
|
29
|
+
throw new VideoGenError('Reference frame must not be a symlink.', 'frame: symlink');
|
|
30
|
+
}
|
|
31
|
+
if (!info.isFile()) {
|
|
32
|
+
throw new VideoGenError('Reference frame must be a regular file.', 'frame: not regular');
|
|
33
|
+
}
|
|
34
|
+
if (info.size > MAX_FRAME_BYTES) {
|
|
35
|
+
throw new VideoGenError('Reference frame exceeds the size ceiling.', 'frame: too large');
|
|
36
|
+
}
|
|
37
|
+
const root = await realpath(cwd);
|
|
38
|
+
const file = await open(absolute, constants.O_RDONLY | (constants.O_NOFOLLOW ?? 0));
|
|
39
|
+
try {
|
|
40
|
+
const openedInfo = await file.stat();
|
|
41
|
+
if (!openedInfo.isFile() || openedInfo.size > MAX_FRAME_BYTES) {
|
|
42
|
+
throw new VideoGenError('Reference frame is invalid or too large.', 'frame: invalid');
|
|
43
|
+
}
|
|
44
|
+
const canonical = await realpath(absolute);
|
|
45
|
+
const canonicalInfo = await lstat(canonical);
|
|
46
|
+
const canonicalRelative = relative(root, canonical);
|
|
47
|
+
if (!isInside(canonicalRelative)) {
|
|
48
|
+
throw new VideoGenError('Reference frame must be inside the approved project directory.', 'frame: outside cwd');
|
|
49
|
+
}
|
|
50
|
+
if (openedInfo.dev !== canonicalInfo.dev || openedInfo.ino !== canonicalInfo.ino) {
|
|
51
|
+
throw new VideoGenError('Reference frame changed while it was being validated.', 'frame: changed during validation');
|
|
52
|
+
}
|
|
53
|
+
const bytes = await file.readFile();
|
|
54
|
+
if (!isSupportedImage(bytes)) {
|
|
55
|
+
throw new VideoGenError('Reference frame is not a valid image (png, jpg, or webp required).', 'frame: invalid image');
|
|
56
|
+
}
|
|
57
|
+
return bytes;
|
|
58
|
+
}
|
|
59
|
+
finally {
|
|
60
|
+
await file.close();
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=frame-input.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"frame-input.js","sourceRoot":"","sources":["../src/frame-input.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpC,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,MAAM,eAAe,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC;AAEzC,SAAS,QAAQ,CAAC,YAAoB;IACpC,OAAO,CACL,YAAY,KAAK,EAAE;QACnB,CAAC,YAAY,KAAK,IAAI,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,KAAK,GAAG,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,CAC7F,CAAC;AACJ,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAiB;IACzC,OAAO,CACL,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC;QAChB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CACtC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAC9D,CAAC;QACJ,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;QAClF,CAAC,KAAK,CAAC,MAAM,IAAI,EAAE;YACjB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,MAAM;YAC9D,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,MAAM,CAAC,CACnE,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,UAAkB,EAAE,GAAW;IACrE,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;IAC1C,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IACjC,MAAM,eAAe,GAAG,QAAQ,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;IACxD,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC;QAC/B,MAAM,IAAI,aAAa,CACrB,gEAAgE,EAChE,oBAAoB,CACrB,CAAC;IACJ,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;IACrD,IAAI,CAAC,IAAI;QAAE,MAAM,IAAI,aAAa,CAAC,kCAAkC,EAAE,mBAAmB,CAAC,CAAC;IAC5F,IAAI,IAAI,CAAC,cAAc,EAAE,EAAE,CAAC;QAC1B,MAAM,IAAI,aAAa,CAAC,wCAAwC,EAAE,gBAAgB,CAAC,CAAC;IACtF,CAAC;IACD,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC;QACnB,MAAM,IAAI,aAAa,CAAC,yCAAyC,EAAE,oBAAoB,CAAC,CAAC;IAC3F,CAAC;IACD,IAAI,IAAI,CAAC,IAAI,GAAG,eAAe,EAAE,CAAC;QAChC,MAAM,IAAI,aAAa,CAAC,2CAA2C,EAAE,kBAAkB,CAAC,CAAC;IAC3F,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,GAAG,CAAC,CAAC;IACjC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,QAAQ,EAAE,SAAS,CAAC,QAAQ,GAAG,CAAC,SAAS,CAAC,UAAU,IAAI,CAAC,CAAC,CAAC,CAAC;IACpF,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;QACrC,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,IAAI,UAAU,CAAC,IAAI,GAAG,eAAe,EAAE,CAAC;YAC9D,MAAM,IAAI,aAAa,CAAC,0CAA0C,EAAE,gBAAgB,CAAC,CAAC;QACxF,CAAC;QACD,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAC3C,MAAM,aAAa,GAAG,MAAM,KAAK,CAAC,SAAS,CAAC,CAAC;QAC7C,MAAM,iBAAiB,GAAG,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QACpD,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,CAAC;YACjC,MAAM,IAAI,aAAa,CACrB,gEAAgE,EAChE,oBAAoB,CACrB,CAAC;QACJ,CAAC;QACD,IAAI,UAAU,CAAC,GAAG,KAAK,aAAa,CAAC,GAAG,IAAI,UAAU,CAAC,GAAG,KAAK,aAAa,CAAC,GAAG,EAAE,CAAC;YACjF,MAAM,IAAI,aAAa,CACrB,uDAAuD,EACvD,kCAAkC,CACnC,CAAC;QACJ,CAAC;QACD,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;QACpC,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,EAAE,CAAC;YAC7B,MAAM,IAAI,aAAa,CACrB,oEAAoE,EACpE,sBAAsB,CACvB,CAAC;QACJ,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;YAAS,CAAC;QACT,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;IACrB,CAAC;AACH,CAAC"}
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAMA,OAAO,EACL,KAAK,YAAY,EAGlB,MAAM,iCAAiC,CAAC;AA2JzC,MAAM,CAAC,OAAO,UAAU,mBAAmB,CAAC,EAAE,EAAE,YAAY,GAAG,IAAI,CAw+BlE"}
|
package/dist/index.js
CHANGED
|
@@ -1,20 +1,21 @@
|
|
|
1
|
-
import { COPYFILE_EXCL } from 'node:constants';
|
|
2
1
|
import { createHash } from 'node:crypto';
|
|
3
2
|
import { existsSync, mkdirSync, mkdtempSync, rmSync, writeFileSync } from 'node:fs';
|
|
4
|
-
import {
|
|
3
|
+
import { open, readFile, rename } from 'node:fs/promises';
|
|
5
4
|
import { extname, join, resolve } from 'node:path';
|
|
6
5
|
import { isProjectTrusted } from '@amaster.ai/pi-shared/settings';
|
|
7
6
|
import { StringEnum } from '@earendil-works/pi-ai';
|
|
8
7
|
import { truncateHead, } from '@earendil-works/pi-coding-agent';
|
|
9
8
|
import { Type } from 'typebox';
|
|
10
9
|
import { runCompose } from './compose.js';
|
|
11
|
-
import { listModelRegistry, loadVideoGenSettings, resolveModel, resolveOutputDir, } from './config.js';
|
|
10
|
+
import { DEFAULT_VIDEO_MODEL_ID, listModelRegistry, loadVideoGenSettings, resolveModel, resolveOutputDir, } from './config.js';
|
|
12
11
|
import { AmbiguousSubmitError, errorMessageForUser, missingKeyError, providerLabel, RemoteTaskFailedError, RemoteTaskNotFoundError, redactUrl, toLogSummary, } from './errors.js';
|
|
13
12
|
import { resolveFfmpeg, resolveFfprobe, resolveGplFfmpeg } from './ffmpeg.js';
|
|
13
|
+
import { readApprovedFrame } from './frame-input.js';
|
|
14
14
|
import { ActiveJobs, assertSafeId, ensureSingleJobDir, loadRenderJob, loadSingleJob, newJobId, readJsonFile, resolveJobDirInsideOutput, saveRenderJob, saveSingleJob, singleJobDir, writeJsonAtomic, } from './jobs/store.js';
|
|
15
15
|
import { arkAdapter } from './providers/ark.js';
|
|
16
16
|
import { dashscopeAdapter } from './providers/dashscope.js';
|
|
17
17
|
import { klingAdapter } from './providers/kling.js';
|
|
18
|
+
import { minimaxAdapter } from './providers/minimax.js';
|
|
18
19
|
import { newapiAdapter } from './providers/newapi.js';
|
|
19
20
|
import { openrouterAdapter } from './providers/openrouter.js';
|
|
20
21
|
import { requestFingerprint } from './providers/request.js';
|
|
@@ -27,6 +28,7 @@ const ADAPTERS = {
|
|
|
27
28
|
ark: arkAdapter,
|
|
28
29
|
dashscope: dashscopeAdapter,
|
|
29
30
|
kling: klingAdapter,
|
|
31
|
+
minimax: minimaxAdapter,
|
|
30
32
|
newapi: newapiAdapter,
|
|
31
33
|
openrouter: openrouterAdapter,
|
|
32
34
|
};
|
|
@@ -34,6 +36,7 @@ const ENV_VAR_BY_STYLE = {
|
|
|
34
36
|
ark: 'ARK_API_KEY',
|
|
35
37
|
dashscope: 'DASHSCOPE_API_KEY',
|
|
36
38
|
kling: 'KLING_API_KEY',
|
|
39
|
+
minimax: 'MINIMAX_API_KEY',
|
|
37
40
|
newapi: 'NEWAPI_API_KEY',
|
|
38
41
|
openrouter: 'OPENROUTER_API_KEY',
|
|
39
42
|
};
|
|
@@ -68,12 +71,12 @@ function buildGenerateParams(caps) {
|
|
|
68
71
|
description: 'Text prompt for the clip. Describe subject, motion, and camera. When the active model has nativeAudio, append audio cues (e.g. "[Sound Effect] rain; [Speaker] Alice (soft): line").',
|
|
69
72
|
}),
|
|
70
73
|
firstFrame: Type.Optional(Type.String({
|
|
71
|
-
description: 'Path to a
|
|
74
|
+
description: 'Path to a regular png/jpg/webp first-frame image inside the session cwd. The path may be absolute or relative; symlinks and paths outside cwd are rejected.',
|
|
72
75
|
})),
|
|
73
76
|
...(caps?.supportsFirstLastFrame
|
|
74
77
|
? {
|
|
75
78
|
lastFrame: Type.Optional(Type.String({
|
|
76
|
-
description: 'Path to a last-frame
|
|
79
|
+
description: 'Path to a regular png/jpg/webp last-frame image inside the session cwd for first+last-frame interpolation.',
|
|
77
80
|
})),
|
|
78
81
|
}
|
|
79
82
|
: {}),
|
|
@@ -105,7 +108,8 @@ export default function piVideoGenExtension(pi) {
|
|
|
105
108
|
* record its content hash — a paid task must be provably tied to the exact
|
|
106
109
|
* image BYTES submitted, not just a path (decision 19②⑤⑧).
|
|
107
110
|
*/
|
|
108
|
-
const snapshotFrame = async (jobDir, sourcePath, label) => {
|
|
111
|
+
const snapshotFrame = async (jobDir, sourcePath, label, cwd) => {
|
|
112
|
+
const bytes = await readApprovedFrame(sourcePath, cwd);
|
|
109
113
|
const ext = extname(sourcePath) || '.png';
|
|
110
114
|
const rel = join('assets', `${label}${ext}`);
|
|
111
115
|
const dest = join(jobDir, rel);
|
|
@@ -114,7 +118,13 @@ export default function piVideoGenExtension(pi) {
|
|
|
114
118
|
for (let i = 0;; i++) {
|
|
115
119
|
const candidate = `${dest}.tmp-${process.pid}-${i}`;
|
|
116
120
|
try {
|
|
117
|
-
await
|
|
121
|
+
const file = await open(candidate, 'wx');
|
|
122
|
+
try {
|
|
123
|
+
await file.writeFile(bytes);
|
|
124
|
+
}
|
|
125
|
+
finally {
|
|
126
|
+
await file.close();
|
|
127
|
+
}
|
|
118
128
|
tmp = candidate;
|
|
119
129
|
break;
|
|
120
130
|
}
|
|
@@ -131,7 +141,7 @@ export default function piVideoGenExtension(pi) {
|
|
|
131
141
|
const runGenerate = async (toolParams, ctx, signal, onUpdate) => {
|
|
132
142
|
const resolved = resolveModel(settings);
|
|
133
143
|
if (!resolved) {
|
|
134
|
-
return errResult(`Cannot resolve model "${settings.defaultModel ??
|
|
144
|
+
return errResult(`Cannot resolve model "${settings.defaultModel ?? DEFAULT_VIDEO_MODEL_ID}" against the built-in registry. Run /video-gen models to see available ids and aliases, or fix "pi-video-gen.defaultModel" in settings.`);
|
|
135
145
|
}
|
|
136
146
|
const caps = resolved.entry.capabilities;
|
|
137
147
|
const adapter = ADAPTERS[resolved.provider.style];
|
|
@@ -258,19 +268,19 @@ export default function piVideoGenExtension(pi) {
|
|
|
258
268
|
const frameHashes = {};
|
|
259
269
|
try {
|
|
260
270
|
if (params.firstFramePath) {
|
|
261
|
-
const snap = await snapshotFrame(jobDir, params.firstFramePath, 'first_frame');
|
|
271
|
+
const snap = await snapshotFrame(jobDir, params.firstFramePath, 'first_frame', ctx.cwd);
|
|
262
272
|
frameHashes[snap.rel] = snap.hash;
|
|
263
273
|
params.firstFramePath = join(jobDir, snap.rel);
|
|
264
274
|
}
|
|
265
275
|
if (params.lastFramePath) {
|
|
266
|
-
const snap = await snapshotFrame(jobDir, params.lastFramePath, 'last_frame');
|
|
276
|
+
const snap = await snapshotFrame(jobDir, params.lastFramePath, 'last_frame', ctx.cwd);
|
|
267
277
|
frameHashes[snap.rel] = snap.hash;
|
|
268
278
|
params.lastFramePath = join(jobDir, snap.rel);
|
|
269
279
|
}
|
|
270
280
|
if (params.referenceImagePaths?.length) {
|
|
271
281
|
const frozenRefs = [];
|
|
272
282
|
for (let i = 0; i < params.referenceImagePaths.length; i++) {
|
|
273
|
-
const snap = await snapshotFrame(jobDir, params.referenceImagePaths[i], `ref_${i}
|
|
283
|
+
const snap = await snapshotFrame(jobDir, params.referenceImagePaths[i], `ref_${i}`, ctx.cwd);
|
|
274
284
|
frameHashes[snap.rel] = snap.hash;
|
|
275
285
|
frozenRefs.push(join(jobDir, snap.rel));
|
|
276
286
|
}
|
|
@@ -278,7 +288,7 @@ export default function piVideoGenExtension(pi) {
|
|
|
278
288
|
}
|
|
279
289
|
}
|
|
280
290
|
catch {
|
|
281
|
-
return errResult('A reference frame is not readable. Use
|
|
291
|
+
return errResult('A reference frame is not readable. Use an image_generate result inside the session cwd, or an existing png/jpg/webp file under cwd.');
|
|
282
292
|
}
|
|
283
293
|
writeJsonAtomic(`${jobDir}/input.json`, { model: resolved.remoteId, ...params });
|
|
284
294
|
await rateLimiter.acquire(signal);
|
|
@@ -446,7 +456,7 @@ export default function piVideoGenExtension(pi) {
|
|
|
446
456
|
try {
|
|
447
457
|
const resolved = resolveModel(settings);
|
|
448
458
|
if (!resolved) {
|
|
449
|
-
return errResult(`Cannot resolve model "${settings.defaultModel ??
|
|
459
|
+
return errResult(`Cannot resolve model "${settings.defaultModel ?? DEFAULT_VIDEO_MODEL_ID}". Run /video-gen models, or fix pi-video-gen.defaultModel.`);
|
|
450
460
|
}
|
|
451
461
|
const adapter = ADAPTERS[resolved.provider.style];
|
|
452
462
|
if (!adapter) {
|
|
@@ -542,6 +552,7 @@ export default function piVideoGenExtension(pi) {
|
|
|
542
552
|
'For timeline: each segment contains exactly one image or video. Video uses numeric durationSec with optional trimStartSec, fit, and sourceAudio; image may use auto duration and motion.',
|
|
543
553
|
'Reuse existing images/screenshots/clips first and generate only missing visuals with image_generate. Put Chinese titles in overlay and use subtitles.mode "burn" when narration subtitles must appear directly in the frames.',
|
|
544
554
|
'Timeline TTS failures stop by default. Set ttsFailureMode "silent-subtitles" in timeline-input.json only after the user explicitly accepts silent audio with preserved subtitles.',
|
|
555
|
+
'Narration is not fully local: require an explicit voice such as "edge-tts:zh-CN-YunyangNeural" only after disclosing that narration text is sent to Microsoft Edge TTS.',
|
|
545
556
|
'Local compute — no paid-model confirmation needed, but tell the user the segment/clip count and planned duration before calling.',
|
|
546
557
|
'The spec is immutable per job directory: rerunning the same path resumes identical input; changing input means a NEW job directory.',
|
|
547
558
|
],
|
|
@@ -772,7 +783,7 @@ export default function piVideoGenExtension(pi) {
|
|
|
772
783
|
// 1. video provider key + model resolution
|
|
773
784
|
const resolved = resolveModel(settings);
|
|
774
785
|
if (!resolved) {
|
|
775
|
-
checks.push(`❌ defaultModel "${settings.defaultModel ??
|
|
786
|
+
checks.push(`❌ defaultModel "${settings.defaultModel ?? DEFAULT_VIDEO_MODEL_ID}" not in registry — fix pi-video-gen.defaultModel`);
|
|
776
787
|
}
|
|
777
788
|
else {
|
|
778
789
|
const label = providerLabel(resolved.provider.style);
|