@shop-os/modelkit 0.4.0 → 0.4.2
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/CHANGELOG.md +18 -0
- package/dist/catalog.cjs +94 -36
- package/dist/catalog.cjs.map +1 -1
- package/dist/catalog.js +94 -36
- package/dist/catalog.js.map +1 -1
- package/dist/index.cjs +142 -39
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +142 -39
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -9,6 +9,24 @@ header in the release PR.
|
|
|
9
9
|
|
|
10
10
|
## [Unreleased]
|
|
11
11
|
|
|
12
|
+
## [0.4.2] - Unreleased
|
|
13
|
+
|
|
14
|
+
### Added
|
|
15
|
+
- `wan-3.0` (Wan 3) video row on the fal adapter (`alibaba/wan-3.0`), listed on `cowork` and `space_builder`. One row covers fal's three endpoints and the adapter picks one from the inputs: references (up to 10 images, 5 videos, 5 audio clips; 15 s of video and 15 s of audio in all) go to `/reference-to-video`, a first frame (optionally with a last frame) to `/image-to-video`, and a bare prompt to `/text-to-video`. 480p/720p/1080p, 2-30 s, `adaptive` plus five fixed ratios, switchable audio (default on), seed and the safety checker. Frames and references are exclusive (`framesExcludeReferences`), and a last frame needs a first frame (`lastFrameRequiresFirstFrame`): image-to-video requires `start_image_url`. Prompt expansion is left at fal's default (on); `file_url` / `web_url` and `enable_thinking` are not exposed.
|
|
16
|
+
|
|
17
|
+
### Live rows
|
|
18
|
+
pro-backend's boot `seed-model-catalog` inserts the row listed once a consumer on 0.4.2 deploys; seed its `credit_pricing_video` rows first.
|
|
19
|
+
|
|
20
|
+
## [0.4.1] - Unreleased
|
|
21
|
+
|
|
22
|
+
### Changed
|
|
23
|
+
- `veo-3.1`, `veo-3.1-fast`, `veo-3.1-lite` and `gemini-omni-flash` are `deprecated`, replaced by `gemini-omni-1.1-flash`, with no exposure. Google shuts down their provider models (`veo-3.1-generate-preview`, `veo-3.1-fast-generate-preview`, `veo-3.1-lite-generate-preview`, `gemini-omni-flash-preview`) on 2026-10-22. The rows still resolve, so stored ids keep working until then.
|
|
24
|
+
- `gemini-3-pro-image-preview` sends `gemini-3-pro-image` and `gemini-3.1-flash-image-preview` sends `gemini-3.1-flash-image`: Google listed the preview endpoints for shutdown on 2026-06-25, and the GA ids cost the same. The catalog ids are unchanged, since they are pricing keys and stored model ids.
|
|
25
|
+
- `higgsfield-dop-preview` is priced `flat`: Higgsfield bills DoP per generation, a fixed-length clip with no duration knob.
|
|
26
|
+
|
|
27
|
+
### Live rows
|
|
28
|
+
pro-backend's `apply-model-shutdowns` script (PR #1486) makes the same changes to the live `model_catalog` rows per environment, including clearing the deprecated rows' exposure.
|
|
29
|
+
|
|
12
30
|
## [0.4.0] - Unreleased
|
|
13
31
|
|
|
14
32
|
### Added
|
package/dist/catalog.cjs
CHANGED
|
@@ -275,35 +275,43 @@ var IMAGE_MODELS = [
|
|
|
275
275
|
GEMINI_PROMPT_MAX_CHARS,
|
|
276
276
|
NANO_BANANA_2_1_RATIOS
|
|
277
277
|
),
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
278
|
+
// Google retired the -preview endpoints for the GA ids; the catalog ids stay because they
|
|
279
|
+
// are pricing keys and stored model ids.
|
|
280
|
+
{
|
|
281
|
+
...geminiImage(
|
|
282
|
+
"gemini-3-pro-image-preview",
|
|
283
|
+
"Nano Banana Pro",
|
|
284
|
+
["nb-pro"],
|
|
285
|
+
["1K", "2K", "4K"],
|
|
286
|
+
{
|
|
287
|
+
provider: "google",
|
|
288
|
+
description: "Create stunning, production-quality visuals with exceptional realism, detail, and typography. Best for campaigns, e-commerce, product photography, and hero creatives.",
|
|
289
|
+
logo: "https://d31vvfpk2ppdyq.cloudfront.net/assets/image/192485d2-a76a-4657-9c06-930b2c70badd_compressed.png"
|
|
290
|
+
},
|
|
291
|
+
["cowork", "space_builder"],
|
|
292
|
+
{ images: 14 },
|
|
293
|
+
GEMINI_PROMPT_MAX_CHARS
|
|
294
|
+
),
|
|
295
|
+
providerModelId: "gemini-3-pro-image"
|
|
296
|
+
},
|
|
297
|
+
{
|
|
298
|
+
...geminiImage(
|
|
299
|
+
"gemini-3.1-flash-image-preview",
|
|
300
|
+
"Nano Banana 2",
|
|
301
|
+
["nb-2"],
|
|
302
|
+
// Flash 3.1 is the only Gemini image model with the 512 tier.
|
|
303
|
+
["512", "1K", "2K", "4K"],
|
|
304
|
+
{
|
|
305
|
+
provider: "google",
|
|
306
|
+
description: "Generate high-quality images at speed. Perfect for brainstorming, concept boards, concept testing, creative exploration, and large batch workflows.",
|
|
307
|
+
logo: "https://d31vvfpk2ppdyq.cloudfront.net/assets/image/192485d2-a76a-4657-9c06-930b2c70badd_compressed.png"
|
|
308
|
+
},
|
|
309
|
+
["cowork", "space_builder"],
|
|
310
|
+
{ images: 14 },
|
|
311
|
+
GEMINI_PROMPT_MAX_CHARS
|
|
312
|
+
),
|
|
313
|
+
providerModelId: "gemini-3.1-flash-image"
|
|
314
|
+
},
|
|
307
315
|
geminiImage(
|
|
308
316
|
"gemini-3.1-flash-lite-image",
|
|
309
317
|
"Nano Banana Lite",
|
|
@@ -1423,6 +1431,7 @@ var OMNI_RATIOS = ["16:9", "9:16"];
|
|
|
1423
1431
|
var GROK_RATIOS = ["1:1", "16:9", "9:16", "4:3", "3:4", "3:2", "2:3"];
|
|
1424
1432
|
var H3_RATIOS = ["21:9", "16:9", "4:3", "1:1", "3:4", "9:16"];
|
|
1425
1433
|
var H3_REFERENCE_RATIOS = ["adaptive", ...H3_RATIOS];
|
|
1434
|
+
var WAN_RATIOS = ["adaptive", "16:9", "4:3", "1:1", "3:4", "9:16"];
|
|
1426
1435
|
var NEGATIVE_PROMPT = "blur, distort, and low quality";
|
|
1427
1436
|
var FRAMES_EXCLUDE_REFERENCES = { framesExcludeReferences: true };
|
|
1428
1437
|
var KLING_PROMPT = { referenceSyntax: "numbered", maxChars: 2500 };
|
|
@@ -1433,10 +1442,12 @@ var SEEDANCE_2_AUDIO = {
|
|
|
1433
1442
|
audioMaxBytes: 15 * 1024 * 1024
|
|
1434
1443
|
};
|
|
1435
1444
|
var H3_PROMPT = { referenceSyntax: "numbered", maxChars: 5e4 };
|
|
1445
|
+
var WAN_PROMPT = { referenceSyntax: "numbered", maxChars: 2e4 };
|
|
1436
1446
|
var OMNI_PROMPT = { referenceSyntax: "caption", maxChars: 5e4 };
|
|
1437
1447
|
var BYTEDANCE_LOGO = "https://d31vvfpk2ppdyq.cloudfront.net/assets/image/3bba5d81-4e57-4e71-911b-cdfa05acca2c_compressed.png";
|
|
1438
1448
|
var GOOGLE_LOGO2 = "https://d31vvfpk2ppdyq.cloudfront.net/assets/image/192485d2-a76a-4657-9c06-930b2c70badd_compressed.png";
|
|
1439
1449
|
var VIDEO_MODELS = [
|
|
1450
|
+
// Google shuts down the Veo 3.1 previews and Omni Flash 1.0 on 2026-10-22.
|
|
1440
1451
|
{
|
|
1441
1452
|
id: "veo-3.1",
|
|
1442
1453
|
aliases: [
|
|
@@ -1449,8 +1460,9 @@ var VIDEO_MODELS = [
|
|
|
1449
1460
|
type: "video",
|
|
1450
1461
|
adapter: "google-genai",
|
|
1451
1462
|
providerModelId: "veo-3.1-generate-preview",
|
|
1452
|
-
lifecycle: "
|
|
1453
|
-
|
|
1463
|
+
lifecycle: "deprecated",
|
|
1464
|
+
replacedBy: "gemini-omni-1.1-flash",
|
|
1465
|
+
exposure: [],
|
|
1454
1466
|
constraints: {
|
|
1455
1467
|
aspectRatios: [...OMNI_RATIOS],
|
|
1456
1468
|
resolutions: ["720p", "1080p", "4k"],
|
|
@@ -1485,7 +1497,8 @@ var VIDEO_MODELS = [
|
|
|
1485
1497
|
type: "video",
|
|
1486
1498
|
adapter: "google-genai",
|
|
1487
1499
|
providerModelId: "veo-3.1-fast-generate-preview",
|
|
1488
|
-
lifecycle: "
|
|
1500
|
+
lifecycle: "deprecated",
|
|
1501
|
+
replacedBy: "gemini-omni-1.1-flash",
|
|
1489
1502
|
exposure: [],
|
|
1490
1503
|
constraints: {
|
|
1491
1504
|
aspectRatios: [...OMNI_RATIOS],
|
|
@@ -1515,7 +1528,8 @@ var VIDEO_MODELS = [
|
|
|
1515
1528
|
type: "video",
|
|
1516
1529
|
adapter: "google-genai",
|
|
1517
1530
|
providerModelId: "veo-3.1-lite-generate-preview",
|
|
1518
|
-
lifecycle: "
|
|
1531
|
+
lifecycle: "deprecated",
|
|
1532
|
+
replacedBy: "gemini-omni-1.1-flash",
|
|
1519
1533
|
exposure: [],
|
|
1520
1534
|
constraints: {
|
|
1521
1535
|
aspectRatios: [...OMNI_RATIOS],
|
|
@@ -1546,8 +1560,9 @@ var VIDEO_MODELS = [
|
|
|
1546
1560
|
type: "video",
|
|
1547
1561
|
adapter: "google-genai",
|
|
1548
1562
|
providerModelId: "gemini-omni-flash-preview",
|
|
1549
|
-
lifecycle: "
|
|
1550
|
-
|
|
1563
|
+
lifecycle: "deprecated",
|
|
1564
|
+
replacedBy: "gemini-omni-1.1-flash",
|
|
1565
|
+
exposure: [],
|
|
1551
1566
|
constraints: {
|
|
1552
1567
|
// 1.0 rejects `resolution`; it renders 720p. No defaults: the adapter
|
|
1553
1568
|
// sends ratio and duration only when the caller set them, so a
|
|
@@ -2033,6 +2048,48 @@ var VIDEO_MODELS = [
|
|
|
2033
2048
|
// references instead of the adapter silently dropping the frame.
|
|
2034
2049
|
capabilities: { ...FRAMES_EXCLUDE_REFERENCES }
|
|
2035
2050
|
},
|
|
2051
|
+
{
|
|
2052
|
+
// One row for fal's three Wan 3.0 endpoints; the adapter picks text-, image- or
|
|
2053
|
+
// reference-to-video from the inputs. Each takes aspect_ratio, so none is ignored.
|
|
2054
|
+
// https://fal.ai/models/alibaba/wan-3.0/reference-to-video/api
|
|
2055
|
+
id: "wan-3.0",
|
|
2056
|
+
aliases: ["wan-3", "wan3"],
|
|
2057
|
+
label: "Wan 3",
|
|
2058
|
+
type: "video",
|
|
2059
|
+
adapter: "fal",
|
|
2060
|
+
providerModelId: "alibaba/wan-3.0",
|
|
2061
|
+
lifecycle: "active",
|
|
2062
|
+
exposure: ["cowork", "space_builder"],
|
|
2063
|
+
constraints: {
|
|
2064
|
+
aspectRatios: [...WAN_RATIOS],
|
|
2065
|
+
resolutions: ["480p", "720p", "1080p"],
|
|
2066
|
+
durations: { min: 2, max: 30 },
|
|
2067
|
+
durationPresets: [5, 10, 15, 30],
|
|
2068
|
+
references: {
|
|
2069
|
+
images: 10,
|
|
2070
|
+
videos: 5,
|
|
2071
|
+
audios: 5,
|
|
2072
|
+
videoSeconds: { total: 15 },
|
|
2073
|
+
audioSeconds: { total: 15 }
|
|
2074
|
+
},
|
|
2075
|
+
supports: ["seed", "lastFrame", "generateAudio", "safetyChecker"],
|
|
2076
|
+
prompt: WAN_PROMPT,
|
|
2077
|
+
audio: "optional"
|
|
2078
|
+
},
|
|
2079
|
+
defaults: {
|
|
2080
|
+
durationSeconds: 5,
|
|
2081
|
+
resolution: "1080p",
|
|
2082
|
+
aspectRatio: "adaptive",
|
|
2083
|
+
generateAudio: true
|
|
2084
|
+
},
|
|
2085
|
+
usage: { ...VIDEO_USAGE },
|
|
2086
|
+
pricingKind: "video_per_second",
|
|
2087
|
+
display: {
|
|
2088
|
+
provider: "alibaba",
|
|
2089
|
+
description: "Alibaba Wan 3 video model for text-to-video, image-to-video (start/end frame), and reference-to-video from up to 10 images, 5 videos and 5 audio clips, with native audio; 2-30 seconds at up to 1080p."
|
|
2090
|
+
},
|
|
2091
|
+
capabilities: { ...FRAMES_EXCLUDE_REFERENCES, lastFrameRequiresFirstFrame: true }
|
|
2092
|
+
},
|
|
2036
2093
|
{
|
|
2037
2094
|
// Duration 3-10s per trigger-workflows mapDuration; the endpoint takes no resolution.
|
|
2038
2095
|
id: "kling-o1-v2v",
|
|
@@ -2102,7 +2159,8 @@ var VIDEO_MODELS = [
|
|
|
2102
2159
|
},
|
|
2103
2160
|
defaults: {},
|
|
2104
2161
|
usage: { ...VIDEO_USAGE },
|
|
2105
|
-
|
|
2162
|
+
// Higgsfield bills DoP per generation: a fixed-length clip with no duration knob.
|
|
2163
|
+
pricingKind: "flat",
|
|
2106
2164
|
display: {
|
|
2107
2165
|
provider: "higgsfield",
|
|
2108
2166
|
description: "Higgsfield DOP image-to-video model; animates a required first-frame image from a text prompt with an optional last-frame image and motion controls."
|