@shop-os/modelkit 0.1.6 → 0.1.8
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 +13 -0
- package/dist/catalog.cjs +2140 -0
- package/dist/catalog.cjs.map +1 -0
- package/dist/catalog.d.cts +458 -0
- package/dist/catalog.d.ts +458 -0
- package/dist/catalog.js +2117 -0
- package/dist/catalog.js.map +1 -0
- package/dist/index.cjs +783 -82
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +42 -1
- package/dist/index.d.ts +42 -1
- package/dist/index.js +783 -82
- package/dist/index.js.map +1 -1
- package/package.json +7 -2
package/dist/index.cjs
CHANGED
|
@@ -118,6 +118,23 @@ var Catalog = class _Catalog {
|
|
|
118
118
|
for (const model of models) this.add(model);
|
|
119
119
|
}
|
|
120
120
|
add(model) {
|
|
121
|
+
if (this.byId.has(model.id)) {
|
|
122
|
+
throw new Error(`Duplicate model id "${model.id}"`);
|
|
123
|
+
}
|
|
124
|
+
if (this.byAlias.has(model.id)) {
|
|
125
|
+
throw new Error(
|
|
126
|
+
`Model id "${model.id}" collides with an alias of "${this.byAlias.get(model.id)}"`
|
|
127
|
+
);
|
|
128
|
+
}
|
|
129
|
+
for (const alias of model.aliases) {
|
|
130
|
+
if (alias === model.id) {
|
|
131
|
+
throw new Error(`Alias "${alias}" collides with its own model id "${model.id}"`);
|
|
132
|
+
}
|
|
133
|
+
const existing = this.byAlias.get(alias);
|
|
134
|
+
if (existing !== void 0) {
|
|
135
|
+
throw new Error(`Duplicate alias "${alias}" (already maps to "${existing}")`);
|
|
136
|
+
}
|
|
137
|
+
}
|
|
121
138
|
this.byId.set(model.id, model);
|
|
122
139
|
this.byAlias.set(model.id, model.id);
|
|
123
140
|
for (const alias of model.aliases) this.byAlias.set(alias, model.id);
|
|
@@ -166,6 +183,7 @@ var Catalog = class _Catalog {
|
|
|
166
183
|
|
|
167
184
|
// src/catalog/image.ts
|
|
168
185
|
var IMAGE_USAGE = { unit: "images", modality: "IMAGE" };
|
|
186
|
+
var IMAGE_GENERATE_EDIT = { imageGenerate: true, imageEdit: true };
|
|
169
187
|
var GEMINI_RATIOS = [
|
|
170
188
|
"1:1",
|
|
171
189
|
"2:3",
|
|
@@ -179,7 +197,7 @@ var GEMINI_RATIOS = [
|
|
|
179
197
|
"5:4",
|
|
180
198
|
"adaptive"
|
|
181
199
|
];
|
|
182
|
-
function geminiImage(id, label, aliases, sizes) {
|
|
200
|
+
function geminiImage(id, label, aliases, sizes, display, exposure) {
|
|
183
201
|
const model = {
|
|
184
202
|
id,
|
|
185
203
|
aliases,
|
|
@@ -188,6 +206,7 @@ function geminiImage(id, label, aliases, sizes) {
|
|
|
188
206
|
adapter: "google-image",
|
|
189
207
|
providerModelId: id,
|
|
190
208
|
lifecycle: "active",
|
|
209
|
+
exposure,
|
|
191
210
|
constraints: {
|
|
192
211
|
aspectRatios: [...GEMINI_RATIOS],
|
|
193
212
|
sizes,
|
|
@@ -195,40 +214,88 @@ function geminiImage(id, label, aliases, sizes) {
|
|
|
195
214
|
},
|
|
196
215
|
defaults: { size: "1K", aspectRatio: "1:1" },
|
|
197
216
|
usage: { ...IMAGE_USAGE },
|
|
198
|
-
pricingKind: "image_size"
|
|
217
|
+
pricingKind: "image_size",
|
|
218
|
+
display,
|
|
219
|
+
capabilities: { ...IMAGE_GENERATE_EDIT }
|
|
199
220
|
};
|
|
200
221
|
return model;
|
|
201
222
|
}
|
|
202
223
|
var IMAGE_MODELS = [
|
|
203
|
-
geminiImage(
|
|
224
|
+
geminiImage(
|
|
225
|
+
"gemini-3-pro-image-preview",
|
|
226
|
+
"Nano Banana Pro",
|
|
227
|
+
["nb-pro"],
|
|
228
|
+
["1K", "2K", "4K"],
|
|
229
|
+
{
|
|
230
|
+
provider: "google",
|
|
231
|
+
description: "Create stunning, production-quality visuals with exceptional realism, detail, and typography. Best for campaigns, e-commerce, product photography, and hero creatives.",
|
|
232
|
+
logo: "https://d31vvfpk2ppdyq.cloudfront.net/assets/image/192485d2-a76a-4657-9c06-930b2c70badd_compressed.png"
|
|
233
|
+
},
|
|
234
|
+
"catalog"
|
|
235
|
+
),
|
|
204
236
|
geminiImage(
|
|
205
237
|
"gemini-3.1-flash-image-preview",
|
|
206
|
-
"Nano Banana
|
|
238
|
+
"Nano Banana 2",
|
|
207
239
|
["nb-2"],
|
|
208
240
|
// Flash 3.1 is the only Gemini image model with the 512 tier.
|
|
209
|
-
["512", "1K", "2K", "4K"]
|
|
241
|
+
["512", "1K", "2K", "4K"],
|
|
242
|
+
{
|
|
243
|
+
provider: "google",
|
|
244
|
+
description: "Generate high-quality images at speed. Perfect for brainstorming, moodboards, concept testing, creative exploration, and large batch workflows.",
|
|
245
|
+
logo: "https://d31vvfpk2ppdyq.cloudfront.net/assets/image/192485d2-a76a-4657-9c06-930b2c70badd_compressed.png"
|
|
246
|
+
},
|
|
247
|
+
"catalog"
|
|
248
|
+
),
|
|
249
|
+
geminiImage(
|
|
250
|
+
"gemini-3.1-flash-lite-image",
|
|
251
|
+
"Nano Banana Lite",
|
|
252
|
+
["nb-lite"],
|
|
253
|
+
["1K"],
|
|
254
|
+
{
|
|
255
|
+
provider: "google",
|
|
256
|
+
description: "The fastest and most affordable image model. Ideal for rapid drafts, bulk exploration, and iterative concept testing at 1K resolution.",
|
|
257
|
+
logo: "https://d31vvfpk2ppdyq.cloudfront.net/assets/image/192485d2-a76a-4657-9c06-930b2c70badd_compressed.png"
|
|
258
|
+
},
|
|
259
|
+
"catalog"
|
|
210
260
|
),
|
|
211
|
-
geminiImage("gemini-3.1-flash-lite-image", "Nano Banana Lite", ["nb-lite"], ["1K"]),
|
|
212
261
|
// trigger-workflows validates 1K only; pricing seeds 2K/4K rows so allow all three.
|
|
213
|
-
geminiImage(
|
|
262
|
+
geminiImage(
|
|
263
|
+
"gemini-2.5-flash-image",
|
|
264
|
+
"Gemini 2.5 Flash Image",
|
|
265
|
+
[],
|
|
266
|
+
["1K", "2K", "4K"],
|
|
267
|
+
{
|
|
268
|
+
provider: "google",
|
|
269
|
+
description: "Nano Banana (legacy Gemini 2.5 Flash Image) native image generation and editing model for high-volume, low-latency creative workflows."
|
|
270
|
+
},
|
|
271
|
+
"internal"
|
|
272
|
+
),
|
|
214
273
|
{
|
|
215
274
|
// Cowork "auto" lets OpenAI pick the size; the canonical equivalent is adaptive.
|
|
216
275
|
id: "gpt-image-2",
|
|
217
276
|
aliases: [],
|
|
218
|
-
label: "GPT
|
|
277
|
+
label: "GPT-image-2",
|
|
219
278
|
type: "image",
|
|
220
279
|
adapter: "openai-image",
|
|
221
280
|
providerModelId: "gpt-image-2",
|
|
222
281
|
lifecycle: "active",
|
|
282
|
+
exposure: "catalog",
|
|
223
283
|
constraints: {
|
|
224
284
|
aspectRatios: ["1:1", "3:2", "2:3", "16:9", "9:16", "4:5", "5:4", "adaptive"],
|
|
225
285
|
sizes: ["1K", "2K", "4K"],
|
|
286
|
+
qualityOptions: ["auto", "low", "medium", "high"],
|
|
226
287
|
references: { images: 16 },
|
|
227
288
|
supports: ["quality", "count"]
|
|
228
289
|
},
|
|
229
290
|
defaults: { size: "1K", aspectRatio: "adaptive", quality: "auto" },
|
|
230
291
|
usage: { ...IMAGE_USAGE },
|
|
231
|
-
pricingKind: "image_size"
|
|
292
|
+
pricingKind: "image_size",
|
|
293
|
+
display: {
|
|
294
|
+
provider: "openai",
|
|
295
|
+
description: "The most capable model for image editing and complex creative instructions. Excels at text rendering, visual consistency, design generation, and iterative refinement.",
|
|
296
|
+
logo: "https://d31vvfpk2ppdyq.cloudfront.net/assets/image/1204b494-8962-4f7f-af5e-699a8bdc98e3_compressed.png"
|
|
297
|
+
},
|
|
298
|
+
capabilities: { ...IMAGE_GENERATE_EDIT }
|
|
232
299
|
},
|
|
233
300
|
{
|
|
234
301
|
// Same Images API surface as gpt-image-2 plus the "xhigh" and "max" quality tiers.
|
|
@@ -239,15 +306,22 @@ var IMAGE_MODELS = [
|
|
|
239
306
|
adapter: "openai-image",
|
|
240
307
|
providerModelId: "gpt-image-2.5-sunburst",
|
|
241
308
|
lifecycle: "active",
|
|
309
|
+
exposure: "internal",
|
|
242
310
|
constraints: {
|
|
243
311
|
aspectRatios: ["1:1", "3:2", "2:3", "16:9", "9:16", "4:5", "5:4", "adaptive"],
|
|
244
312
|
sizes: ["1K", "2K", "4K"],
|
|
313
|
+
qualityOptions: ["auto", "low", "medium", "high"],
|
|
245
314
|
references: { images: 16 },
|
|
246
315
|
supports: ["quality", "count"]
|
|
247
316
|
},
|
|
248
317
|
defaults: { size: "1K", aspectRatio: "adaptive", quality: "auto" },
|
|
249
318
|
usage: { ...IMAGE_USAGE },
|
|
250
|
-
pricingKind: "image_size"
|
|
319
|
+
pricingKind: "image_size",
|
|
320
|
+
display: {
|
|
321
|
+
provider: "openai",
|
|
322
|
+
description: "OpenAI's most capable GPT Image 2.5 tier, built for editing precision; takes text and image input and outputs images in low, medium, high, xhigh, or max quality."
|
|
323
|
+
},
|
|
324
|
+
capabilities: { ...IMAGE_GENERATE_EDIT }
|
|
251
325
|
},
|
|
252
326
|
{
|
|
253
327
|
// Same Images API surface as gpt-image-2 plus the "xhigh" and "max" quality tiers.
|
|
@@ -258,25 +332,33 @@ var IMAGE_MODELS = [
|
|
|
258
332
|
adapter: "openai-image",
|
|
259
333
|
providerModelId: "gpt-image-2.5-flare",
|
|
260
334
|
lifecycle: "active",
|
|
335
|
+
exposure: "internal",
|
|
261
336
|
constraints: {
|
|
262
337
|
aspectRatios: ["1:1", "3:2", "2:3", "16:9", "9:16", "4:5", "5:4", "adaptive"],
|
|
263
338
|
sizes: ["1K", "2K", "4K"],
|
|
339
|
+
qualityOptions: ["auto", "low", "medium", "high"],
|
|
264
340
|
references: { images: 16 },
|
|
265
341
|
supports: ["quality", "count"]
|
|
266
342
|
},
|
|
267
343
|
defaults: { size: "1K", aspectRatio: "adaptive", quality: "auto" },
|
|
268
344
|
usage: { ...IMAGE_USAGE },
|
|
269
|
-
pricingKind: "image_size"
|
|
345
|
+
pricingKind: "image_size",
|
|
346
|
+
display: {
|
|
347
|
+
provider: "openai",
|
|
348
|
+
description: "OpenAI's fastest GPT Image 2.5 tier for high-quality everyday image generation and editing; takes text and image input and outputs images."
|
|
349
|
+
},
|
|
350
|
+
capabilities: { ...IMAGE_GENERATE_EDIT }
|
|
270
351
|
},
|
|
271
352
|
{
|
|
272
353
|
// Cowork allows 7 ratios; trigger-workflows allows 9 (adds 3:2, 9:21, drops 4:5/5:4).
|
|
273
354
|
id: "muse-image-1.0",
|
|
274
|
-
aliases: [],
|
|
355
|
+
aliases: ["meta-muse"],
|
|
275
356
|
label: "Meta Muse",
|
|
276
357
|
type: "image",
|
|
277
358
|
adapter: "fal",
|
|
278
359
|
providerModelId: "muse-image-1.0",
|
|
279
360
|
lifecycle: "active",
|
|
361
|
+
exposure: "catalog",
|
|
280
362
|
constraints: {
|
|
281
363
|
aspectRatios: [
|
|
282
364
|
"21:9",
|
|
@@ -298,7 +380,13 @@ var IMAGE_MODELS = [
|
|
|
298
380
|
},
|
|
299
381
|
defaults: { size: "1K", aspectRatio: "1:1", outputFormat: "png", count: 1 },
|
|
300
382
|
usage: { ...IMAGE_USAGE },
|
|
301
|
-
pricingKind: "image_size"
|
|
383
|
+
pricingKind: "image_size",
|
|
384
|
+
display: {
|
|
385
|
+
provider: "meta",
|
|
386
|
+
description: "Meta's image model with built-in world knowledge and strong prompt adherence. Great for concept-rich scenes, realistic compositions, and reference-guided edits.",
|
|
387
|
+
logo: "https://d31vvfpk2ppdyq.cloudfront.net/assets/characters/1787909065794-k9a7zz.png"
|
|
388
|
+
},
|
|
389
|
+
capabilities: { ...IMAGE_GENERATE_EDIT }
|
|
302
390
|
},
|
|
303
391
|
{
|
|
304
392
|
id: "seedream-5-0-pro",
|
|
@@ -308,6 +396,7 @@ var IMAGE_MODELS = [
|
|
|
308
396
|
adapter: "ark",
|
|
309
397
|
providerModelId: "dola-seedream-5-0-pro-260628",
|
|
310
398
|
lifecycle: "active",
|
|
399
|
+
exposure: "catalog",
|
|
311
400
|
constraints: {
|
|
312
401
|
aspectRatios: ["1:1", "4:3", "3:4", "16:9", "9:16", "3:2", "2:3", "21:9", "4:5", "5:4"],
|
|
313
402
|
sizes: ["1K", "2K"],
|
|
@@ -318,7 +407,12 @@ var IMAGE_MODELS = [
|
|
|
318
407
|
},
|
|
319
408
|
defaults: { size: "1K", aspectRatio: "1:1" },
|
|
320
409
|
usage: { ...IMAGE_USAGE },
|
|
321
|
-
pricingKind: "image_size"
|
|
410
|
+
pricingKind: "image_size",
|
|
411
|
+
display: {
|
|
412
|
+
provider: "bytedance",
|
|
413
|
+
description: "ByteDance Seedream 5.0 Pro text-to-image and multi-reference image-to-image (up to 10 inputs) with region editing; outputs 1K, 1.5K, or 2K."
|
|
414
|
+
},
|
|
415
|
+
capabilities: { ...IMAGE_GENERATE_EDIT }
|
|
322
416
|
},
|
|
323
417
|
{
|
|
324
418
|
id: "seedream-4.5",
|
|
@@ -328,6 +422,7 @@ var IMAGE_MODELS = [
|
|
|
328
422
|
adapter: "ark",
|
|
329
423
|
providerModelId: "seedream-4-5-251128",
|
|
330
424
|
lifecycle: "active",
|
|
425
|
+
exposure: "internal",
|
|
331
426
|
constraints: {
|
|
332
427
|
// 97:30 has no Ark size spelling; the A+ flow pads inputs to 97:30 and
|
|
333
428
|
// omits the ratio instead. Advertise only sizes the adapter can send.
|
|
@@ -350,7 +445,12 @@ var IMAGE_MODELS = [
|
|
|
350
445
|
},
|
|
351
446
|
defaults: { size: "1K", aspectRatio: "1:1" },
|
|
352
447
|
usage: { ...IMAGE_USAGE },
|
|
353
|
-
pricingKind: "image_size"
|
|
448
|
+
pricingKind: "image_size",
|
|
449
|
+
display: {
|
|
450
|
+
provider: "bytedance",
|
|
451
|
+
description: "ByteDance Seedream 4.5 text-to-image and image-to-image with up to 14 reference images and batch image-set generation; outputs 2K or 4K."
|
|
452
|
+
},
|
|
453
|
+
capabilities: { ...IMAGE_GENERATE_EDIT }
|
|
354
454
|
},
|
|
355
455
|
{
|
|
356
456
|
id: "flux-2-pro",
|
|
@@ -360,6 +460,7 @@ var IMAGE_MODELS = [
|
|
|
360
460
|
adapter: "prodia",
|
|
361
461
|
providerModelId: "flux-2-pro",
|
|
362
462
|
lifecycle: "active",
|
|
463
|
+
exposure: "catalog",
|
|
363
464
|
constraints: {
|
|
364
465
|
aspectRatios: ["1:1", "2:3", "3:2", "16:9", "9:16", "4:3", "3:4", "4:5", "5:4", "21:9"],
|
|
365
466
|
sizes: ["1K"],
|
|
@@ -368,7 +469,12 @@ var IMAGE_MODELS = [
|
|
|
368
469
|
},
|
|
369
470
|
defaults: { size: "1K", aspectRatio: "1:1" },
|
|
370
471
|
usage: { ...IMAGE_USAGE },
|
|
371
|
-
pricingKind: "image_size"
|
|
472
|
+
pricingKind: "image_size",
|
|
473
|
+
display: {
|
|
474
|
+
provider: "black-forest-labs",
|
|
475
|
+
description: "Black Forest Labs FLUX.2 [pro] text-to-image and multi-reference editing model served via Prodia; takes a prompt and up to 8 input images and outputs up to 4096x4096."
|
|
476
|
+
},
|
|
477
|
+
capabilities: { ...IMAGE_GENERATE_EDIT }
|
|
372
478
|
},
|
|
373
479
|
{
|
|
374
480
|
// Prodia's gemini-3-pro jobs take aspect_ratio + resolution (1K/2K/4K), not
|
|
@@ -381,6 +487,7 @@ var IMAGE_MODELS = [
|
|
|
381
487
|
adapter: "prodia",
|
|
382
488
|
providerModelId: "inference.gemini-3-pro.img2img.v1",
|
|
383
489
|
lifecycle: "active",
|
|
490
|
+
exposure: "internal",
|
|
384
491
|
constraints: {
|
|
385
492
|
aspectRatios: ["1:1", "2:3", "3:2", "4:3", "3:4", "4:5", "5:4", "9:16", "16:9", "21:9"],
|
|
386
493
|
sizes: ["1K", "2K", "4K"],
|
|
@@ -389,7 +496,12 @@ var IMAGE_MODELS = [
|
|
|
389
496
|
},
|
|
390
497
|
defaults: { size: "1K", aspectRatio: "1:1" },
|
|
391
498
|
usage: { ...IMAGE_USAGE },
|
|
392
|
-
pricingKind: "image_size"
|
|
499
|
+
pricingKind: "image_size",
|
|
500
|
+
display: {
|
|
501
|
+
provider: "google",
|
|
502
|
+
description: "Google Gemini 3 Pro image generation and editing served via Prodia; takes a prompt plus up to 3 reference images and outputs 1K, 2K, or 4K."
|
|
503
|
+
},
|
|
504
|
+
capabilities: { ...IMAGE_GENERATE_EDIT }
|
|
393
505
|
},
|
|
394
506
|
{
|
|
395
507
|
// Nano Banana (img2img.v2) is flat-rate with aspect_ratio only; 3:2, 4:5,
|
|
@@ -401,6 +513,7 @@ var IMAGE_MODELS = [
|
|
|
401
513
|
adapter: "prodia",
|
|
402
514
|
providerModelId: "inference.nano-banana.img2img.v2",
|
|
403
515
|
lifecycle: "active",
|
|
516
|
+
exposure: "internal",
|
|
404
517
|
constraints: {
|
|
405
518
|
aspectRatios: ["1:1", "2:3", "3:4", "4:3", "9:16", "16:9", "21:9"],
|
|
406
519
|
sizes: ["1K"],
|
|
@@ -409,7 +522,12 @@ var IMAGE_MODELS = [
|
|
|
409
522
|
},
|
|
410
523
|
defaults: { size: "1K", aspectRatio: "1:1" },
|
|
411
524
|
usage: { ...IMAGE_USAGE },
|
|
412
|
-
pricingKind: "image_size"
|
|
525
|
+
pricingKind: "image_size",
|
|
526
|
+
display: {
|
|
527
|
+
provider: "google",
|
|
528
|
+
description: "Google Nano Banana image generation and editing served via Prodia; takes a prompt plus 1-3 input images and matches the first input's aspect ratio in roughly 8 seconds."
|
|
529
|
+
},
|
|
530
|
+
capabilities: { ...IMAGE_GENERATE_EDIT }
|
|
413
531
|
},
|
|
414
532
|
{
|
|
415
533
|
// WAN 2.7 takes `images` (up to 9) and a `size` enum whose exact values
|
|
@@ -422,6 +540,7 @@ var IMAGE_MODELS = [
|
|
|
422
540
|
adapter: "replicate",
|
|
423
541
|
providerModelId: "wan-video/wan-2.7-image-pro",
|
|
424
542
|
lifecycle: "active",
|
|
543
|
+
exposure: "internal",
|
|
425
544
|
constraints: {
|
|
426
545
|
aspectRatios: ["1:1", "16:9", "9:16", "4:3", "3:4"],
|
|
427
546
|
sizes: ["1K", "2K", "4K"],
|
|
@@ -430,7 +549,12 @@ var IMAGE_MODELS = [
|
|
|
430
549
|
},
|
|
431
550
|
defaults: { size: "1K", aspectRatio: "1:1" },
|
|
432
551
|
usage: { unit: "compute_seconds", modality: "IMAGE" },
|
|
433
|
-
pricingKind: "image_size"
|
|
552
|
+
pricingKind: "image_size",
|
|
553
|
+
display: {
|
|
554
|
+
provider: "alibaba",
|
|
555
|
+
description: "Alibaba Wan 2.7 Image Pro text-to-image and image-editing model; takes a prompt plus up to 9 reference images and generates up to 4K (4096x4096)."
|
|
556
|
+
},
|
|
557
|
+
capabilities: { ...IMAGE_GENERATE_EDIT }
|
|
434
558
|
},
|
|
435
559
|
{
|
|
436
560
|
// Qwen Image 2 Pro has aspect_ratio but no size input; resolution follows
|
|
@@ -443,6 +567,7 @@ var IMAGE_MODELS = [
|
|
|
443
567
|
adapter: "replicate",
|
|
444
568
|
providerModelId: "qwen/qwen-image-2-pro",
|
|
445
569
|
lifecycle: "active",
|
|
570
|
+
exposure: "internal",
|
|
446
571
|
constraints: {
|
|
447
572
|
aspectRatios: ["1:1", "16:9", "9:16", "4:3", "3:4", "3:2", "2:3"],
|
|
448
573
|
sizes: [],
|
|
@@ -452,7 +577,12 @@ var IMAGE_MODELS = [
|
|
|
452
577
|
},
|
|
453
578
|
defaults: { aspectRatio: "1:1" },
|
|
454
579
|
usage: { unit: "compute_seconds", modality: "IMAGE" },
|
|
455
|
-
pricingKind: "image_size"
|
|
580
|
+
pricingKind: "image_size",
|
|
581
|
+
display: {
|
|
582
|
+
provider: "alibaba",
|
|
583
|
+
description: "Alibaba Qwen Image 2 Pro unified text-to-image and editing model; takes a prompt plus an optional single reference image and generates native 2K output."
|
|
584
|
+
},
|
|
585
|
+
capabilities: { ...IMAGE_GENERATE_EDIT }
|
|
456
586
|
},
|
|
457
587
|
{
|
|
458
588
|
// Qwen Image Edit Plus takes aspect_ratio (or match_input_image) and
|
|
@@ -465,6 +595,7 @@ var IMAGE_MODELS = [
|
|
|
465
595
|
adapter: "replicate",
|
|
466
596
|
providerModelId: "qwen-edit-apps/qwen-image-edit-plus-lora-skin",
|
|
467
597
|
lifecycle: "active",
|
|
598
|
+
exposure: "internal",
|
|
468
599
|
constraints: {
|
|
469
600
|
aspectRatios: ["1:1", "16:9", "9:16", "4:3", "3:4"],
|
|
470
601
|
sizes: [],
|
|
@@ -474,7 +605,12 @@ var IMAGE_MODELS = [
|
|
|
474
605
|
},
|
|
475
606
|
defaults: { outputFormat: "png" },
|
|
476
607
|
usage: { unit: "compute_seconds", modality: "IMAGE" },
|
|
477
|
-
pricingKind: "image_size"
|
|
608
|
+
pricingKind: "image_size",
|
|
609
|
+
display: {
|
|
610
|
+
provider: "alibaba",
|
|
611
|
+
description: "Alibaba Qwen Image Edit Plus with Lightning and a skin-retouching LoRA; takes one or more reference images plus an edit prompt and outputs webp, jpg, or png."
|
|
612
|
+
},
|
|
613
|
+
capabilities: { ...IMAGE_GENERATE_EDIT }
|
|
478
614
|
}
|
|
479
615
|
];
|
|
480
616
|
|
|
@@ -488,6 +624,7 @@ var OTHER_MODELS = [
|
|
|
488
624
|
adapter: "google-genai",
|
|
489
625
|
providerModelId: "lyria-3-clip-preview",
|
|
490
626
|
lifecycle: "active",
|
|
627
|
+
exposure: "catalog",
|
|
491
628
|
constraints: {
|
|
492
629
|
durations: [30],
|
|
493
630
|
references: { images: 10 },
|
|
@@ -495,7 +632,12 @@ var OTHER_MODELS = [
|
|
|
495
632
|
},
|
|
496
633
|
defaults: {},
|
|
497
634
|
usage: { unit: "images", modality: "AUDIO" },
|
|
498
|
-
pricingKind: "flat"
|
|
635
|
+
pricingKind: "flat",
|
|
636
|
+
display: {
|
|
637
|
+
provider: "google",
|
|
638
|
+
description: "Google Lyria 3 Clip short music clips, loops, and previews; takes text and up to 10 image prompts and returns a fixed 30-second MP3 plus lyrics."
|
|
639
|
+
},
|
|
640
|
+
capabilities: {}
|
|
499
641
|
},
|
|
500
642
|
{
|
|
501
643
|
id: "lyria-3-pro-preview",
|
|
@@ -505,13 +647,19 @@ var OTHER_MODELS = [
|
|
|
505
647
|
adapter: "google-genai",
|
|
506
648
|
providerModelId: "lyria-3-pro-preview",
|
|
507
649
|
lifecycle: "active",
|
|
650
|
+
exposure: "catalog",
|
|
508
651
|
constraints: {
|
|
509
652
|
references: { images: 10 },
|
|
510
653
|
supports: []
|
|
511
654
|
},
|
|
512
655
|
defaults: {},
|
|
513
656
|
usage: { unit: "images", modality: "AUDIO" },
|
|
514
|
-
pricingKind: "flat"
|
|
657
|
+
pricingKind: "flat",
|
|
658
|
+
display: {
|
|
659
|
+
provider: "google",
|
|
660
|
+
description: "Google Lyria 3 Pro flagship music model for full-length songs with verses, choruses, and bridges; takes text and up to 10 image prompts and returns MP3 plus lyrics."
|
|
661
|
+
},
|
|
662
|
+
capabilities: {}
|
|
515
663
|
},
|
|
516
664
|
{
|
|
517
665
|
id: "google/lyria-2",
|
|
@@ -521,13 +669,19 @@ var OTHER_MODELS = [
|
|
|
521
669
|
adapter: "replicate",
|
|
522
670
|
providerModelId: "google/lyria-2",
|
|
523
671
|
lifecycle: "active",
|
|
672
|
+
exposure: "internal",
|
|
524
673
|
constraints: {
|
|
525
674
|
durations: [30],
|
|
526
675
|
supports: ["seed", "negativePrompt"]
|
|
527
676
|
},
|
|
528
677
|
defaults: {},
|
|
529
678
|
usage: { unit: "compute_seconds", modality: "AUDIO" },
|
|
530
|
-
pricingKind: "flat"
|
|
679
|
+
pricingKind: "flat",
|
|
680
|
+
display: {
|
|
681
|
+
provider: "google",
|
|
682
|
+
description: "Lyria 2 music generation on Replicate; produces 30 seconds of 48 kHz stereo audio from a text prompt."
|
|
683
|
+
},
|
|
684
|
+
capabilities: {}
|
|
531
685
|
},
|
|
532
686
|
{
|
|
533
687
|
id: "mmaudio",
|
|
@@ -537,6 +691,7 @@ var OTHER_MODELS = [
|
|
|
537
691
|
adapter: "replicate",
|
|
538
692
|
providerModelId: "zsxkib/mmaudio:62871fb59889b2d7c13777f08deb3b36bdff88f7e1d53a50ad7694548a41b484",
|
|
539
693
|
lifecycle: "active",
|
|
694
|
+
exposure: "catalog",
|
|
540
695
|
constraints: {
|
|
541
696
|
durations: { min: 1, max: 30 },
|
|
542
697
|
requires: ["sourceVideo"],
|
|
@@ -544,7 +699,12 @@ var OTHER_MODELS = [
|
|
|
544
699
|
},
|
|
545
700
|
defaults: { durationSeconds: 8 },
|
|
546
701
|
usage: { unit: "compute_seconds", modality: "AUDIO" },
|
|
547
|
-
pricingKind: "flat"
|
|
702
|
+
pricingKind: "flat",
|
|
703
|
+
display: {
|
|
704
|
+
provider: "mmaudio",
|
|
705
|
+
description: "MMAudio V2 video-to-audio model on Replicate; takes a source video and prompt and synthesizes synchronized environmental, action, and speech-like audio."
|
|
706
|
+
},
|
|
707
|
+
capabilities: {}
|
|
548
708
|
},
|
|
549
709
|
{
|
|
550
710
|
id: "elevenlabs-music",
|
|
@@ -554,6 +714,7 @@ var OTHER_MODELS = [
|
|
|
554
714
|
adapter: "replicate",
|
|
555
715
|
providerModelId: "elevenlabs/music",
|
|
556
716
|
lifecycle: "active",
|
|
717
|
+
exposure: "internal",
|
|
557
718
|
constraints: {
|
|
558
719
|
durations: { min: 5, max: 300 },
|
|
559
720
|
supports: ["instrumental"]
|
|
@@ -561,7 +722,12 @@ var OTHER_MODELS = [
|
|
|
561
722
|
defaults: { durationSeconds: 15, instrumental: true },
|
|
562
723
|
// Replicate's run() does not report predict_time; billed by generated length.
|
|
563
724
|
usage: { unit: "seconds", modality: "AUDIO" },
|
|
564
|
-
pricingKind: "flat"
|
|
725
|
+
pricingKind: "flat",
|
|
726
|
+
display: {
|
|
727
|
+
provider: "elevenlabs",
|
|
728
|
+
description: "ElevenLabs Music text-to-music on Replicate; generates full songs, instrumental or with vocals, up to 5 minutes long at up to 44.1 kHz."
|
|
729
|
+
},
|
|
730
|
+
capabilities: {}
|
|
565
731
|
},
|
|
566
732
|
{
|
|
567
733
|
id: "topaz",
|
|
@@ -571,6 +737,7 @@ var OTHER_MODELS = [
|
|
|
571
737
|
adapter: "replicate",
|
|
572
738
|
providerModelId: "topazlabs/image-upscale",
|
|
573
739
|
lifecycle: "active",
|
|
740
|
+
exposure: "catalog",
|
|
574
741
|
constraints: {
|
|
575
742
|
references: { images: 1 },
|
|
576
743
|
requires: ["references"],
|
|
@@ -578,7 +745,12 @@ var OTHER_MODELS = [
|
|
|
578
745
|
},
|
|
579
746
|
defaults: { scaleFactor: 2, outputFormat: "png" },
|
|
580
747
|
usage: { unit: "compute_seconds", modality: "IMAGE" },
|
|
581
|
-
pricingKind: "flat"
|
|
748
|
+
pricingKind: "flat",
|
|
749
|
+
display: {
|
|
750
|
+
provider: "topaz",
|
|
751
|
+
description: "Topaz Labs AI image upscaling on Replicate; takes one input image and upscales up to 6x with selectable enhancement models and optional face enhancement."
|
|
752
|
+
},
|
|
753
|
+
capabilities: { imageEdit: true }
|
|
582
754
|
},
|
|
583
755
|
{
|
|
584
756
|
id: "bg-remove",
|
|
@@ -588,6 +760,7 @@ var OTHER_MODELS = [
|
|
|
588
760
|
adapter: "prodia",
|
|
589
761
|
providerModelId: "inference.remove-background.v1",
|
|
590
762
|
lifecycle: "active",
|
|
763
|
+
exposure: "catalog",
|
|
591
764
|
constraints: {
|
|
592
765
|
references: { images: 1 },
|
|
593
766
|
requires: ["references"],
|
|
@@ -595,7 +768,12 @@ var OTHER_MODELS = [
|
|
|
595
768
|
},
|
|
596
769
|
defaults: {},
|
|
597
770
|
usage: { unit: "images", modality: "IMAGE" },
|
|
598
|
-
pricingKind: "flat"
|
|
771
|
+
pricingKind: "flat",
|
|
772
|
+
display: {
|
|
773
|
+
provider: "prodia",
|
|
774
|
+
description: "Prodia background removal; takes one input image and returns a PNG cut-out of the subject plus an optional black-and-white mask."
|
|
775
|
+
},
|
|
776
|
+
capabilities: { imageEdit: true }
|
|
599
777
|
}
|
|
600
778
|
];
|
|
601
779
|
|
|
@@ -610,6 +788,7 @@ function text(id, label, providerModelId, extra) {
|
|
|
610
788
|
adapter: "ai-sdk-text",
|
|
611
789
|
providerModelId,
|
|
612
790
|
lifecycle: "active",
|
|
791
|
+
exposure: "internal",
|
|
613
792
|
constraints: { supports: [] },
|
|
614
793
|
defaults: {},
|
|
615
794
|
usage: { ...TEXT_USAGE },
|
|
@@ -618,66 +797,465 @@ function text(id, label, providerModelId, extra) {
|
|
|
618
797
|
};
|
|
619
798
|
}
|
|
620
799
|
var TEXT_MODELS = [
|
|
621
|
-
text("gpt-4o", "GPT-4o", "gpt-4o"
|
|
622
|
-
|
|
623
|
-
|
|
624
|
-
|
|
625
|
-
|
|
800
|
+
text("gpt-4o", "GPT-4o", "gpt-4o", {
|
|
801
|
+
exposure: "internal",
|
|
802
|
+
display: {
|
|
803
|
+
provider: "openai",
|
|
804
|
+
costTier: 2,
|
|
805
|
+
description: "OpenAI GPT-4o flagship multimodal model; text and image input, 128K-token context."
|
|
806
|
+
},
|
|
807
|
+
capabilities: { vision: true, tools: true, structuredOutput: true, contextWindow: 128e3 }
|
|
808
|
+
}),
|
|
809
|
+
text("gpt-4o-mini", "GPT-4o mini", "gpt-4o-mini", {
|
|
810
|
+
exposure: "internal",
|
|
811
|
+
display: {
|
|
812
|
+
provider: "openai",
|
|
813
|
+
costTier: 1,
|
|
814
|
+
description: "OpenAI GPT-4o mini fast, low-cost multimodal model; text and image input, 128K-token context."
|
|
815
|
+
},
|
|
816
|
+
capabilities: { vision: true, tools: true, structuredOutput: true, contextWindow: 128e3 }
|
|
817
|
+
}),
|
|
818
|
+
text("gpt-5.1", "GPT-5.1", "gpt-5.1", {
|
|
819
|
+
exposure: "catalog",
|
|
820
|
+
display: {
|
|
821
|
+
provider: "openai",
|
|
822
|
+
costTier: 3,
|
|
823
|
+
description: "OpenAI GPT-5.1 reasoning model for coding and agentic tasks; text and image input, 400K-token context."
|
|
824
|
+
},
|
|
825
|
+
capabilities: { vision: true, tools: true, structuredOutput: true, contextWindow: 4e5 }
|
|
826
|
+
}),
|
|
827
|
+
text("gpt-5.2", "GPT-5.2", "gpt-5.2", {
|
|
828
|
+
exposure: "catalog",
|
|
829
|
+
display: {
|
|
830
|
+
provider: "openai",
|
|
831
|
+
costTier: 3,
|
|
832
|
+
description: "OpenAI GPT-5.2 reasoning model for complex professional work; text and image input, 400K-token context."
|
|
833
|
+
},
|
|
834
|
+
capabilities: { vision: true, tools: true, structuredOutput: true, contextWindow: 4e5 }
|
|
835
|
+
}),
|
|
836
|
+
// 1.05M-token context: https://platform.openai.com/docs/models/gpt-5.4
|
|
837
|
+
text("gpt-5.4", "GPT-5.4", "gpt-5.4", {
|
|
838
|
+
exposure: "internal",
|
|
839
|
+
display: {
|
|
840
|
+
provider: "openai",
|
|
841
|
+
costTier: 3,
|
|
842
|
+
description: "OpenAI GPT-5.4 flagship reasoning model; text and image input, 1.05M-token context."
|
|
843
|
+
},
|
|
844
|
+
capabilities: {
|
|
845
|
+
vision: true,
|
|
846
|
+
tools: true,
|
|
847
|
+
structuredOutput: true,
|
|
848
|
+
contextWindow: 105e4
|
|
849
|
+
}
|
|
850
|
+
}),
|
|
626
851
|
// OpenAI never shipped gpt-5.1-mini or gpt-5.2-mini; callers that still send them get 5.4 mini.
|
|
627
852
|
text("gpt-5.4-mini", "GPT-5.4 mini", "gpt-5.4-mini", {
|
|
628
|
-
|
|
853
|
+
exposure: "catalog",
|
|
854
|
+
aliases: ["gpt-5.1-mini", "gpt-5.2-mini"],
|
|
855
|
+
display: {
|
|
856
|
+
provider: "openai",
|
|
857
|
+
costTier: 1,
|
|
858
|
+
description: "OpenAI GPT-5.4 mini efficient reasoning model for high-volume workloads; text and image input, 400K-token context."
|
|
859
|
+
},
|
|
860
|
+
capabilities: { vision: true, tools: true, structuredOutput: true, contextWindow: 4e5 }
|
|
861
|
+
}),
|
|
862
|
+
text("gpt-5.5", "GPT-5.5", "gpt-5.5", {
|
|
863
|
+
exposure: "catalog",
|
|
864
|
+
display: {
|
|
865
|
+
provider: "openai",
|
|
866
|
+
costTier: 3,
|
|
867
|
+
description: "OpenAI GPT-5.5 flagship reasoning model for the most complex professional and coding work; text and image input, 1.05M-token context."
|
|
868
|
+
},
|
|
869
|
+
capabilities: {
|
|
870
|
+
vision: true,
|
|
871
|
+
tools: true,
|
|
872
|
+
structuredOutput: true,
|
|
873
|
+
contextWindow: 105e4
|
|
874
|
+
}
|
|
875
|
+
}),
|
|
876
|
+
text("gpt-5.6-luna", "GPT-5.6 Luna", "gpt-5.6-luna", {
|
|
877
|
+
exposure: "catalog",
|
|
878
|
+
display: {
|
|
879
|
+
provider: "openai",
|
|
880
|
+
costTier: 1,
|
|
881
|
+
description: "OpenAI GPT-5.6 Luna cost-optimized tier of the GPT-5.6 reasoning family; text and image input, 1.05M-token context."
|
|
882
|
+
},
|
|
883
|
+
capabilities: {
|
|
884
|
+
vision: true,
|
|
885
|
+
tools: true,
|
|
886
|
+
structuredOutput: true,
|
|
887
|
+
contextWindow: 105e4
|
|
888
|
+
}
|
|
889
|
+
}),
|
|
890
|
+
text("gpt-5.6-terra", "GPT-5.6 Terra", "gpt-5.6-terra", {
|
|
891
|
+
exposure: "catalog",
|
|
892
|
+
display: {
|
|
893
|
+
provider: "openai",
|
|
894
|
+
costTier: 2,
|
|
895
|
+
description: "OpenAI GPT-5.6 Terra balanced tier of the GPT-5.6 reasoning family; text and image input, 1.05M-token context."
|
|
896
|
+
},
|
|
897
|
+
capabilities: {
|
|
898
|
+
vision: true,
|
|
899
|
+
tools: true,
|
|
900
|
+
structuredOutput: true,
|
|
901
|
+
contextWindow: 105e4
|
|
902
|
+
}
|
|
903
|
+
}),
|
|
904
|
+
text("gpt-5.6-sol", "GPT-5.6 Sol", "gpt-5.6-sol", {
|
|
905
|
+
exposure: "catalog",
|
|
906
|
+
display: {
|
|
907
|
+
provider: "openai",
|
|
908
|
+
costTier: 3,
|
|
909
|
+
description: "OpenAI GPT-5.6 Sol flagship tier of the GPT-5.6 reasoning family; text and image input, 1.05M-token context."
|
|
910
|
+
},
|
|
911
|
+
capabilities: {
|
|
912
|
+
vision: true,
|
|
913
|
+
tools: true,
|
|
914
|
+
structuredOutput: true,
|
|
915
|
+
contextWindow: 105e4
|
|
916
|
+
}
|
|
629
917
|
}),
|
|
630
|
-
text("gpt-5.5", "GPT-5.5", "gpt-5.5"),
|
|
631
|
-
text("gpt-5.6-luna", "GPT-5.6 Luna", "gpt-5.6-luna"),
|
|
632
|
-
text("gpt-5.6-terra", "GPT-5.6 Terra", "gpt-5.6-terra"),
|
|
633
|
-
text("gpt-5.6-sol", "GPT-5.6 Sol", "gpt-5.6-sol"),
|
|
634
918
|
// Library key "claude-sonnet-4.5" maps to the SDK id "claude-sonnet-4-5".
|
|
635
919
|
text("claude-sonnet-4-5", "Claude Sonnet 4.5", "claude-sonnet-4-5", {
|
|
636
|
-
|
|
920
|
+
exposure: "internal",
|
|
921
|
+
aliases: ["claude-sonnet-4.5", "claude-sonnet-4-5-20250929"],
|
|
922
|
+
display: {
|
|
923
|
+
provider: "anthropic",
|
|
924
|
+
costTier: 2,
|
|
925
|
+
description: "Anthropic Claude Sonnet 4.5 (legacy) balanced model; text and image input, 200K-token context."
|
|
926
|
+
},
|
|
927
|
+
capabilities: { vision: true, tools: true, structuredOutput: true, contextWindow: 2e5 }
|
|
637
928
|
}),
|
|
638
929
|
// Anthropic retired the dated 4.0 ids; callers that still send them get 4.6.
|
|
639
930
|
text("claude-sonnet-4-6", "Claude Sonnet 4.6", "claude-sonnet-4-6", {
|
|
931
|
+
exposure: "catalog",
|
|
640
932
|
aliases: [
|
|
641
933
|
"claude-sonnet-4.6",
|
|
642
934
|
"claude-sonnet-4",
|
|
643
935
|
"claude-sonnet-4.0",
|
|
644
936
|
"claude-sonnet-4-20250514"
|
|
645
|
-
]
|
|
937
|
+
],
|
|
938
|
+
display: {
|
|
939
|
+
provider: "anthropic",
|
|
940
|
+
costTier: 2,
|
|
941
|
+
description: "Anthropic Claude Sonnet 4.6 (legacy) balanced model; text and image input, 1M-token context."
|
|
942
|
+
},
|
|
943
|
+
capabilities: {
|
|
944
|
+
vision: true,
|
|
945
|
+
tools: true,
|
|
946
|
+
structuredOutput: true,
|
|
947
|
+
contextWindow: 1e6
|
|
948
|
+
}
|
|
949
|
+
}),
|
|
950
|
+
text("claude-sonnet-5", "Claude Sonnet 5", "claude-sonnet-5", {
|
|
951
|
+
exposure: "catalog",
|
|
952
|
+
display: {
|
|
953
|
+
provider: "anthropic",
|
|
954
|
+
costTier: 3,
|
|
955
|
+
description: "Anthropic Claude Sonnet 5 current balanced model; text and image input, 1M-token context."
|
|
956
|
+
},
|
|
957
|
+
capabilities: {
|
|
958
|
+
vision: true,
|
|
959
|
+
tools: true,
|
|
960
|
+
structuredOutput: true,
|
|
961
|
+
contextWindow: 1e6
|
|
962
|
+
}
|
|
646
963
|
}),
|
|
647
|
-
text("claude-sonnet-5", "Claude Sonnet 5", "claude-sonnet-5"),
|
|
648
964
|
text("claude-opus-4-8", "Claude Opus 4.8", "claude-opus-4-8", {
|
|
649
|
-
|
|
965
|
+
exposure: "catalog",
|
|
966
|
+
aliases: ["claude-opus-4.8", "claude-opus-4", "claude-opus-4.0", "claude-opus-4-20250514"],
|
|
967
|
+
display: {
|
|
968
|
+
provider: "anthropic",
|
|
969
|
+
costTier: 3,
|
|
970
|
+
description: "Anthropic Claude Opus 4.8 (legacy) frontier model; text and image input, 1M-token context."
|
|
971
|
+
},
|
|
972
|
+
capabilities: {
|
|
973
|
+
vision: true,
|
|
974
|
+
tools: true,
|
|
975
|
+
structuredOutput: true,
|
|
976
|
+
contextWindow: 1e6
|
|
977
|
+
}
|
|
650
978
|
}),
|
|
651
979
|
text("claude-haiku-4-5", "Claude Haiku 4.5", "claude-haiku-4-5", {
|
|
652
|
-
|
|
980
|
+
exposure: "catalog",
|
|
981
|
+
aliases: ["claude-haiku-4.5", "claude-haiku-4-5-20251001", "claude-haiku-4"],
|
|
982
|
+
display: {
|
|
983
|
+
provider: "anthropic",
|
|
984
|
+
costTier: 1,
|
|
985
|
+
description: "Anthropic Claude Haiku 4.5 fast model with near-frontier intelligence; text and image input, 200K-token context."
|
|
986
|
+
},
|
|
987
|
+
capabilities: { vision: true, tools: true, structuredOutput: true, contextWindow: 2e5 }
|
|
653
988
|
}),
|
|
654
989
|
text("claude-opus-5", "Claude Opus 5", "claude-opus-5", {
|
|
655
|
-
|
|
990
|
+
exposure: "internal",
|
|
991
|
+
aliases: ["claude-opus-5.0"],
|
|
992
|
+
display: {
|
|
993
|
+
provider: "anthropic",
|
|
994
|
+
costTier: 3,
|
|
995
|
+
description: "Anthropic Claude Opus 5 current frontier model for agentic coding and enterprise work; text and image input, 1M-token context."
|
|
996
|
+
},
|
|
997
|
+
capabilities: {
|
|
998
|
+
vision: true,
|
|
999
|
+
tools: true,
|
|
1000
|
+
structuredOutput: true,
|
|
1001
|
+
contextWindow: 1e6
|
|
1002
|
+
}
|
|
1003
|
+
}),
|
|
1004
|
+
text("claude-fable-5", "Claude Fable 5", "claude-fable-5", {
|
|
1005
|
+
exposure: "internal",
|
|
1006
|
+
display: {
|
|
1007
|
+
provider: "anthropic",
|
|
1008
|
+
costTier: 3,
|
|
1009
|
+
description: "Anthropic Claude Fable 5 (legacy) model for demanding reasoning and long-horizon agentic work; text and image input, 1M-token context."
|
|
1010
|
+
},
|
|
1011
|
+
capabilities: {
|
|
1012
|
+
vision: true,
|
|
1013
|
+
tools: true,
|
|
1014
|
+
structuredOutput: true,
|
|
1015
|
+
contextWindow: 1e6
|
|
1016
|
+
}
|
|
1017
|
+
}),
|
|
1018
|
+
text("gemini-2.5-flash", "Gemini 2.5 Flash", "gemini-2.5-flash", {
|
|
1019
|
+
exposure: "internal",
|
|
1020
|
+
display: {
|
|
1021
|
+
provider: "google",
|
|
1022
|
+
costTier: 1,
|
|
1023
|
+
description: "Google Gemini 2.5 Flash low-latency multimodal model for high-volume reasoning over text, images, video, and audio; 1M-token context."
|
|
1024
|
+
},
|
|
1025
|
+
capabilities: {
|
|
1026
|
+
vision: true,
|
|
1027
|
+
tools: true,
|
|
1028
|
+
structuredOutput: true,
|
|
1029
|
+
contextWindow: 1048576
|
|
1030
|
+
}
|
|
1031
|
+
}),
|
|
1032
|
+
text("gemini-2.5-pro", "Gemini 2.5 Pro", "gemini-2.5-pro", {
|
|
1033
|
+
exposure: "internal",
|
|
1034
|
+
display: {
|
|
1035
|
+
provider: "google",
|
|
1036
|
+
costTier: 2,
|
|
1037
|
+
description: "Google Gemini 2.5 Pro thinking model for complex reasoning over code, math, and documents; text, image, video, audio, and PDF input, 1M-token context."
|
|
1038
|
+
},
|
|
1039
|
+
capabilities: {
|
|
1040
|
+
vision: true,
|
|
1041
|
+
tools: true,
|
|
1042
|
+
structuredOutput: true,
|
|
1043
|
+
contextWindow: 1048576
|
|
1044
|
+
}
|
|
1045
|
+
}),
|
|
1046
|
+
text("gemini-3.1-pro-preview", "Gemini 3.1 Pro (preview)", "gemini-3.1-pro-preview", {
|
|
1047
|
+
exposure: "catalog",
|
|
1048
|
+
display: {
|
|
1049
|
+
provider: "google",
|
|
1050
|
+
costTier: 2,
|
|
1051
|
+
description: "Google Gemini 3.1 Pro preview reasoning model for software engineering, tool use, and reliable agentic workflows; 1M-token context."
|
|
1052
|
+
},
|
|
1053
|
+
capabilities: {
|
|
1054
|
+
vision: true,
|
|
1055
|
+
tools: true,
|
|
1056
|
+
structuredOutput: true,
|
|
1057
|
+
contextWindow: 1048576
|
|
1058
|
+
}
|
|
1059
|
+
}),
|
|
1060
|
+
text("gemini-3.5-flash", "Gemini 3.5 Flash", "gemini-3.5-flash", {
|
|
1061
|
+
exposure: "catalog",
|
|
1062
|
+
display: {
|
|
1063
|
+
provider: "google",
|
|
1064
|
+
costTier: 1,
|
|
1065
|
+
description: "Google Gemini 3.5 Flash high-throughput model for frontier-level agentic tasks; text, image, video, audio, and PDF input, 1M-token context."
|
|
1066
|
+
},
|
|
1067
|
+
capabilities: {
|
|
1068
|
+
vision: true,
|
|
1069
|
+
tools: true,
|
|
1070
|
+
structuredOutput: true,
|
|
1071
|
+
contextWindow: 1048576
|
|
1072
|
+
}
|
|
1073
|
+
}),
|
|
1074
|
+
text("gemini-3.6-flash", "Gemini 3.6 Flash", "gemini-3.6-flash", {
|
|
1075
|
+
exposure: "catalog",
|
|
1076
|
+
display: {
|
|
1077
|
+
provider: "google",
|
|
1078
|
+
costTier: 1,
|
|
1079
|
+
description: "Google Gemini 3.6 Flash general-purpose multimodal agentic model balancing speed and capability; 1M-token context."
|
|
1080
|
+
},
|
|
1081
|
+
capabilities: {
|
|
1082
|
+
vision: true,
|
|
1083
|
+
tools: true,
|
|
1084
|
+
structuredOutput: true,
|
|
1085
|
+
contextWindow: 1048576
|
|
1086
|
+
}
|
|
1087
|
+
}),
|
|
1088
|
+
text("gemini-3.7-flash", "Gemini 3.7 Flash", "gemini-3.7-flash", {
|
|
1089
|
+
exposure: "catalog",
|
|
1090
|
+
display: {
|
|
1091
|
+
provider: "google",
|
|
1092
|
+
costTier: 1,
|
|
1093
|
+
recommended: true,
|
|
1094
|
+
description: "Google Gemini 3.7 Flash natively multimodal reasoning model for coding, agentic workflows, and multi-step execution; 1M-token context."
|
|
1095
|
+
},
|
|
1096
|
+
capabilities: {
|
|
1097
|
+
vision: true,
|
|
1098
|
+
tools: true,
|
|
1099
|
+
structuredOutput: true,
|
|
1100
|
+
contextWindow: 1048576
|
|
1101
|
+
}
|
|
1102
|
+
}),
|
|
1103
|
+
text("gemini-3.8-flash", "Gemini 3.8 Flash", "gemini-3.8-flash", {
|
|
1104
|
+
exposure: "internal",
|
|
1105
|
+
display: {
|
|
1106
|
+
provider: "google",
|
|
1107
|
+
costTier: 1,
|
|
1108
|
+
description: "Google Gemini 3.8 Flash frontier model for long-horizon software engineering, autonomous agents, and enterprise workflows; 1M-token context."
|
|
1109
|
+
},
|
|
1110
|
+
capabilities: {
|
|
1111
|
+
vision: true,
|
|
1112
|
+
tools: true,
|
|
1113
|
+
structuredOutput: true,
|
|
1114
|
+
contextWindow: 1048576
|
|
1115
|
+
}
|
|
656
1116
|
}),
|
|
657
|
-
text("claude-fable-5", "Claude Fable 5", "claude-fable-5"),
|
|
658
|
-
text("gemini-2.5-flash", "Gemini 2.5 Flash", "gemini-2.5-flash"),
|
|
659
|
-
text("gemini-2.5-pro", "Gemini 2.5 Pro", "gemini-2.5-pro"),
|
|
660
|
-
text("gemini-3.1-pro-preview", "Gemini 3.1 Pro (preview)", "gemini-3.1-pro-preview"),
|
|
661
|
-
text("gemini-3.5-flash", "Gemini 3.5 Flash", "gemini-3.5-flash"),
|
|
662
|
-
text("gemini-3.6-flash", "Gemini 3.6 Flash", "gemini-3.6-flash"),
|
|
663
|
-
text("gemini-3.7-flash", "Gemini 3.7 Flash", "gemini-3.7-flash"),
|
|
664
|
-
text("gemini-3.8-flash", "Gemini 3.8 Flash", "gemini-3.8-flash"),
|
|
665
1117
|
// Renamed to gemini-3.6-flash in vibe-shared model-migration.ts.
|
|
666
1118
|
text("gemini-3-flash-preview", "Gemini 3 Flash (preview)", "gemini-3-flash-preview", {
|
|
1119
|
+
exposure: "internal",
|
|
667
1120
|
lifecycle: "deprecated",
|
|
668
1121
|
replacedBy: "gemini-3.6-flash"
|
|
669
1122
|
}),
|
|
670
|
-
text("gemini-3.1-flash-lite", "Gemini 3.1 Flash Lite", "gemini-3.1-flash-lite"
|
|
671
|
-
|
|
672
|
-
|
|
673
|
-
|
|
674
|
-
|
|
675
|
-
|
|
676
|
-
|
|
677
|
-
|
|
678
|
-
|
|
1123
|
+
text("gemini-3.1-flash-lite", "Gemini 3.1 Flash Lite", "gemini-3.1-flash-lite", {
|
|
1124
|
+
exposure: "internal",
|
|
1125
|
+
display: {
|
|
1126
|
+
provider: "google",
|
|
1127
|
+
costTier: 1,
|
|
1128
|
+
description: "Google Gemini 3.1 Flash-Lite low-latency multimodal model for high-volume agentic, translation, and data-extraction tasks; 1M-token context."
|
|
1129
|
+
},
|
|
1130
|
+
capabilities: {
|
|
1131
|
+
vision: true,
|
|
1132
|
+
tools: true,
|
|
1133
|
+
structuredOutput: true,
|
|
1134
|
+
contextWindow: 1048576
|
|
1135
|
+
}
|
|
1136
|
+
}),
|
|
1137
|
+
text("sonar", "Sonar", "sonar", {
|
|
1138
|
+
exposure: "internal",
|
|
1139
|
+
display: {
|
|
1140
|
+
provider: "perplexity",
|
|
1141
|
+
costTier: 1,
|
|
1142
|
+
description: "Perplexity Sonar lightweight web-grounded search model returning cited answers; 128K-token context."
|
|
1143
|
+
},
|
|
1144
|
+
capabilities: {
|
|
1145
|
+
vision: true,
|
|
1146
|
+
tools: false,
|
|
1147
|
+
structuredOutput: true,
|
|
1148
|
+
contextWindow: 128e3
|
|
1149
|
+
}
|
|
1150
|
+
}),
|
|
1151
|
+
text("sonar-pro", "Sonar Pro", "sonar-pro", {
|
|
1152
|
+
exposure: "internal",
|
|
1153
|
+
display: {
|
|
1154
|
+
provider: "perplexity",
|
|
1155
|
+
costTier: 2,
|
|
1156
|
+
description: "Perplexity Sonar Pro advanced web-grounded search model for complex multi-step queries; 200K-token context."
|
|
1157
|
+
},
|
|
1158
|
+
capabilities: {
|
|
1159
|
+
vision: true,
|
|
1160
|
+
tools: false,
|
|
1161
|
+
structuredOutput: true,
|
|
1162
|
+
contextWindow: 2e5
|
|
1163
|
+
}
|
|
1164
|
+
}),
|
|
1165
|
+
text("sonar-reasoning-pro", "Sonar Reasoning Pro", "sonar-reasoning-pro", {
|
|
1166
|
+
exposure: "internal",
|
|
1167
|
+
display: {
|
|
1168
|
+
provider: "perplexity",
|
|
1169
|
+
costTier: 2,
|
|
1170
|
+
description: "Perplexity Sonar Reasoning Pro chain-of-thought web-grounded search model for complex problem-solving; 128K-token context."
|
|
1171
|
+
},
|
|
1172
|
+
capabilities: {
|
|
1173
|
+
vision: true,
|
|
1174
|
+
tools: false,
|
|
1175
|
+
structuredOutput: true,
|
|
1176
|
+
contextWindow: 128e3
|
|
1177
|
+
}
|
|
1178
|
+
}),
|
|
1179
|
+
text("deepseek-v4-flash", "DeepSeek V4 Flash", "deepseek-v4-flash", {
|
|
1180
|
+
exposure: "catalog",
|
|
1181
|
+
display: {
|
|
1182
|
+
provider: "deepseek",
|
|
1183
|
+
costTier: 1,
|
|
1184
|
+
recommended: true,
|
|
1185
|
+
description: "DeepSeek V4 Flash thinking/non-thinking model with vision, tool calls, and JSON output; 1M-token context and up to 384K output tokens."
|
|
1186
|
+
},
|
|
1187
|
+
capabilities: {
|
|
1188
|
+
vision: true,
|
|
1189
|
+
tools: true,
|
|
1190
|
+
structuredOutput: true,
|
|
1191
|
+
contextWindow: 1e6
|
|
1192
|
+
}
|
|
1193
|
+
}),
|
|
1194
|
+
text("deepseek-v4-pro", "DeepSeek V4 Pro", "deepseek-v4-pro", {
|
|
1195
|
+
exposure: "catalog",
|
|
1196
|
+
display: {
|
|
1197
|
+
provider: "deepseek",
|
|
1198
|
+
costTier: 2,
|
|
1199
|
+
description: "DeepSeek V4 Pro thinking/non-thinking text model with tool calls and JSON output (no vision); 1M-token context and up to 384K output tokens."
|
|
1200
|
+
},
|
|
1201
|
+
capabilities: {
|
|
1202
|
+
vision: false,
|
|
1203
|
+
tools: true,
|
|
1204
|
+
structuredOutput: true,
|
|
1205
|
+
contextWindow: 1e6
|
|
1206
|
+
}
|
|
1207
|
+
}),
|
|
1208
|
+
// 1M-token context: https://docs.x.ai/docs/models/grok-4.3
|
|
1209
|
+
text("grok-4.3", "Grok 4.3", "grok-4.3", {
|
|
1210
|
+
exposure: "catalog",
|
|
1211
|
+
display: {
|
|
1212
|
+
provider: "xai",
|
|
1213
|
+
costTier: 2,
|
|
1214
|
+
description: "xAI Grok 4.3 reasoning model with tool calling and structured outputs; text and image input, 1M-token context."
|
|
1215
|
+
},
|
|
1216
|
+
capabilities: {
|
|
1217
|
+
vision: true,
|
|
1218
|
+
tools: true,
|
|
1219
|
+
structuredOutput: true,
|
|
1220
|
+
contextWindow: 1e6
|
|
1221
|
+
}
|
|
1222
|
+
}),
|
|
1223
|
+
// Moonshot retired kimi-k2.5 on 2026-08-31 and no longer publishes its specs.
|
|
1224
|
+
text("kimi-k2.5", "Kimi K2.5", "kimi-k2.5", {
|
|
1225
|
+
exposure: "catalog",
|
|
1226
|
+
display: {
|
|
1227
|
+
provider: "moonshot",
|
|
1228
|
+
costTier: 2,
|
|
1229
|
+
description: "Moonshot Kimi K2.5; the provider retired the model on 2026-08-31 and calls now return a model-not-found error."
|
|
1230
|
+
},
|
|
1231
|
+
capabilities: {}
|
|
1232
|
+
}),
|
|
1233
|
+
text("kimi-k3", "Kimi K3", "kimi-k3", {
|
|
1234
|
+
exposure: "catalog",
|
|
1235
|
+
display: {
|
|
1236
|
+
provider: "moonshot",
|
|
1237
|
+
costTier: 2,
|
|
1238
|
+
description: "Moonshot Kimi K3 flagship model with native visual understanding and always-on thinking; text, image, and video input, 1M-token context."
|
|
1239
|
+
},
|
|
1240
|
+
capabilities: {
|
|
1241
|
+
vision: true,
|
|
1242
|
+
tools: true,
|
|
1243
|
+
structuredOutput: true,
|
|
1244
|
+
contextWindow: 1e6
|
|
1245
|
+
}
|
|
1246
|
+
}),
|
|
679
1247
|
// Cowork calls the provider "MiniMax-M3"; the pricing key is lowercase.
|
|
680
|
-
|
|
1248
|
+
// 1M-token context: https://platform.minimax.io/docs/api-reference/text-openai-api
|
|
1249
|
+
text("minimax-m3", "MiniMax M3", "MiniMax-M3", {
|
|
1250
|
+
exposure: "catalog",
|
|
1251
|
+
aliases: ["MiniMax-M3"],
|
|
1252
|
+
display: {
|
|
1253
|
+
provider: "minimax",
|
|
1254
|
+
costTier: 2,
|
|
1255
|
+
description: "MiniMax M3 frontier multimodal model for agentic reasoning, tool use, and coding; text, image, and video input, 1M-token context."
|
|
1256
|
+
},
|
|
1257
|
+
capabilities: { vision: true, tools: true, contextWindow: 1e6 }
|
|
1258
|
+
})
|
|
681
1259
|
];
|
|
682
1260
|
|
|
683
1261
|
// src/catalog/video.ts
|
|
@@ -689,6 +1267,8 @@ var GROK_RATIOS = ["1:1", "16:9", "9:16", "4:3", "3:4", "3:2", "2:3"];
|
|
|
689
1267
|
var H3_RATIOS = ["21:9", "16:9", "4:3", "1:1", "3:4", "9:16"];
|
|
690
1268
|
var H3_REFERENCE_RATIOS = ["adaptive", ...H3_RATIOS];
|
|
691
1269
|
var NEGATIVE_PROMPT = "blur, distort, and low quality";
|
|
1270
|
+
var FRAMES_EXCLUDE_REFERENCES = { framesExcludeReferences: true };
|
|
1271
|
+
var GOOGLE_LOGO = "https://d31vvfpk2ppdyq.cloudfront.net/assets/image/192485d2-a76a-4657-9c06-930b2c70badd_compressed.png";
|
|
692
1272
|
var VIDEO_MODELS = [
|
|
693
1273
|
{
|
|
694
1274
|
id: "veo-3.1",
|
|
@@ -703,6 +1283,7 @@ var VIDEO_MODELS = [
|
|
|
703
1283
|
adapter: "google-genai",
|
|
704
1284
|
providerModelId: "veo-3.1-generate-preview",
|
|
705
1285
|
lifecycle: "active",
|
|
1286
|
+
exposure: "catalog",
|
|
706
1287
|
constraints: {
|
|
707
1288
|
aspectRatios: [...OMNI_RATIOS],
|
|
708
1289
|
resolutions: ["720p", "1080p", "4k"],
|
|
@@ -712,7 +1293,13 @@ var VIDEO_MODELS = [
|
|
|
712
1293
|
},
|
|
713
1294
|
defaults: { durationSeconds: 8, resolution: "720p", aspectRatio: "16:9" },
|
|
714
1295
|
usage: { ...VIDEO_USAGE },
|
|
715
|
-
pricingKind: "video_per_second"
|
|
1296
|
+
pricingKind: "video_per_second",
|
|
1297
|
+
display: {
|
|
1298
|
+
provider: "google",
|
|
1299
|
+
description: "Google's highest-quality video generation model. Supports up to 4K resolution and 8-second clips with reference image conditioning.",
|
|
1300
|
+
logo: GOOGLE_LOGO
|
|
1301
|
+
},
|
|
1302
|
+
capabilities: { ...FRAMES_EXCLUDE_REFERENCES }
|
|
716
1303
|
},
|
|
717
1304
|
{
|
|
718
1305
|
id: "veo-3.1-fast",
|
|
@@ -726,6 +1313,7 @@ var VIDEO_MODELS = [
|
|
|
726
1313
|
adapter: "google-genai",
|
|
727
1314
|
providerModelId: "veo-3.1-fast-generate-preview",
|
|
728
1315
|
lifecycle: "active",
|
|
1316
|
+
exposure: "internal",
|
|
729
1317
|
constraints: {
|
|
730
1318
|
aspectRatios: [...OMNI_RATIOS],
|
|
731
1319
|
resolutions: ["720p", "1080p", "4k"],
|
|
@@ -735,7 +1323,12 @@ var VIDEO_MODELS = [
|
|
|
735
1323
|
},
|
|
736
1324
|
defaults: { durationSeconds: 8, resolution: "720p", aspectRatio: "16:9" },
|
|
737
1325
|
usage: { ...VIDEO_USAGE },
|
|
738
|
-
pricingKind: "video_per_second"
|
|
1326
|
+
pricingKind: "video_per_second",
|
|
1327
|
+
display: {
|
|
1328
|
+
provider: "google",
|
|
1329
|
+
description: "Faster variant of Google Veo 3.1; text- and image-to-video with natively generated audio at 4 or 8 seconds."
|
|
1330
|
+
},
|
|
1331
|
+
capabilities: { ...FRAMES_EXCLUDE_REFERENCES }
|
|
739
1332
|
},
|
|
740
1333
|
{
|
|
741
1334
|
id: "veo-3.1-lite",
|
|
@@ -749,16 +1342,22 @@ var VIDEO_MODELS = [
|
|
|
749
1342
|
adapter: "google-genai",
|
|
750
1343
|
providerModelId: "veo-3.1-lite-generate-preview",
|
|
751
1344
|
lifecycle: "active",
|
|
1345
|
+
exposure: "internal",
|
|
752
1346
|
constraints: {
|
|
753
1347
|
aspectRatios: [...OMNI_RATIOS],
|
|
754
|
-
resolutions: ["720p", "1080p"
|
|
1348
|
+
resolutions: ["720p", "1080p"],
|
|
755
1349
|
durations: [4, 8],
|
|
756
1350
|
references: { images: 3 },
|
|
757
1351
|
supports: ["lastFrame"]
|
|
758
1352
|
},
|
|
759
1353
|
defaults: { durationSeconds: 8, resolution: "720p", aspectRatio: "16:9" },
|
|
760
1354
|
usage: { ...VIDEO_USAGE },
|
|
761
|
-
pricingKind: "video_per_second"
|
|
1355
|
+
pricingKind: "video_per_second",
|
|
1356
|
+
display: {
|
|
1357
|
+
provider: "google",
|
|
1358
|
+
description: "Efficiency-focused Google Veo 3.1 Lite for high-volume video generation and editing; text and image input, with no 4K output or video extension."
|
|
1359
|
+
},
|
|
1360
|
+
capabilities: { ...FRAMES_EXCLUDE_REFERENCES }
|
|
762
1361
|
},
|
|
763
1362
|
{
|
|
764
1363
|
id: "gemini-omni-flash",
|
|
@@ -774,6 +1373,7 @@ var VIDEO_MODELS = [
|
|
|
774
1373
|
adapter: "google-genai",
|
|
775
1374
|
providerModelId: "gemini-omni-flash-preview",
|
|
776
1375
|
lifecycle: "active",
|
|
1376
|
+
exposure: "catalog",
|
|
777
1377
|
constraints: {
|
|
778
1378
|
// 1.0 rejects `resolution`; it renders 720p. No defaults: the adapter
|
|
779
1379
|
// sends ratio and duration only when the caller set them, so a
|
|
@@ -785,7 +1385,13 @@ var VIDEO_MODELS = [
|
|
|
785
1385
|
},
|
|
786
1386
|
defaults: {},
|
|
787
1387
|
usage: { ...VIDEO_USAGE },
|
|
788
|
-
pricingKind: "video_per_second"
|
|
1388
|
+
pricingKind: "video_per_second",
|
|
1389
|
+
display: {
|
|
1390
|
+
provider: "google",
|
|
1391
|
+
description: "Google's conversational video model with native audio, human support, and natural language editing. Aspect ratio only \u2014 resolution and duration are model-determined.",
|
|
1392
|
+
logo: GOOGLE_LOGO
|
|
1393
|
+
},
|
|
1394
|
+
capabilities: { acceptsSourceVideo: true }
|
|
789
1395
|
},
|
|
790
1396
|
{
|
|
791
1397
|
id: "gemini-omni-1.1-flash",
|
|
@@ -795,6 +1401,7 @@ var VIDEO_MODELS = [
|
|
|
795
1401
|
adapter: "google-genai",
|
|
796
1402
|
providerModelId: "gemini-omni-1.1-flash",
|
|
797
1403
|
lifecycle: "active",
|
|
1404
|
+
exposure: "catalog",
|
|
798
1405
|
constraints: {
|
|
799
1406
|
aspectRatios: [...OMNI_RATIOS],
|
|
800
1407
|
resolutions: ["360p", "720p", "1080p", "4k"],
|
|
@@ -804,7 +1411,12 @@ var VIDEO_MODELS = [
|
|
|
804
1411
|
},
|
|
805
1412
|
defaults: {},
|
|
806
1413
|
usage: { ...VIDEO_USAGE },
|
|
807
|
-
pricingKind: "video_per_second"
|
|
1414
|
+
pricingKind: "video_per_second",
|
|
1415
|
+
display: {
|
|
1416
|
+
provider: "google",
|
|
1417
|
+
description: "Google Gemini Omni Flash 1.1 conversational video generation and editing; text, image, and up to 10-second video input, 3-10 second output at up to 4K and 24 FPS."
|
|
1418
|
+
},
|
|
1419
|
+
capabilities: { acceptsSourceVideo: true }
|
|
808
1420
|
},
|
|
809
1421
|
{
|
|
810
1422
|
// vibe-triggers and Space Builder drop the ratio when a frame is wired; Cowork always sends it.
|
|
@@ -815,10 +1427,12 @@ var VIDEO_MODELS = [
|
|
|
815
1427
|
adapter: "ark",
|
|
816
1428
|
providerModelId: "dreamina-seedance-2-0-260128",
|
|
817
1429
|
lifecycle: "active",
|
|
1430
|
+
exposure: "catalog",
|
|
818
1431
|
constraints: {
|
|
819
1432
|
aspectRatios: [...SEEDANCE_RATIOS],
|
|
820
1433
|
resolutions: ["480p", "720p", "1080p", "4k"],
|
|
821
1434
|
durations: [4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15],
|
|
1435
|
+
durationPresets: [4, 6, 8, 10, 12, 15],
|
|
822
1436
|
references: { images: 9, videos: 3, audios: 3, audioOnly: false },
|
|
823
1437
|
ratioIgnoredWith: ["firstFrame"],
|
|
824
1438
|
supports: ["generateAudio", "seed", "lastFrame", "watermark"]
|
|
@@ -830,7 +1444,13 @@ var VIDEO_MODELS = [
|
|
|
830
1444
|
generateAudio: true
|
|
831
1445
|
},
|
|
832
1446
|
usage: { ...VIDEO_USAGE },
|
|
833
|
-
pricingKind: "video_per_second"
|
|
1447
|
+
pricingKind: "video_per_second",
|
|
1448
|
+
display: {
|
|
1449
|
+
provider: "bytedance",
|
|
1450
|
+
description: "High-quality AI video generation with reference image conditioning. Supports 4-15 second clips with human preprocessing.",
|
|
1451
|
+
logo: "https://d31vvfpk2ppdyq.cloudfront.net/assets/image/3bba5d81-4e57-4e71-911b-cdfa05acca2c_compressed.png"
|
|
1452
|
+
},
|
|
1453
|
+
capabilities: { acceptsSourceVideo: true, ...FRAMES_EXCLUDE_REFERENCES }
|
|
834
1454
|
},
|
|
835
1455
|
{
|
|
836
1456
|
id: "seedance-2.0-fast",
|
|
@@ -840,6 +1460,7 @@ var VIDEO_MODELS = [
|
|
|
840
1460
|
adapter: "ark",
|
|
841
1461
|
providerModelId: "dreamina-seedance-2-0-fast-260128",
|
|
842
1462
|
lifecycle: "active",
|
|
1463
|
+
exposure: "catalog",
|
|
843
1464
|
constraints: {
|
|
844
1465
|
aspectRatios: [...SEEDANCE_RATIOS],
|
|
845
1466
|
resolutions: ["480p", "720p"],
|
|
@@ -855,7 +1476,12 @@ var VIDEO_MODELS = [
|
|
|
855
1476
|
generateAudio: true
|
|
856
1477
|
},
|
|
857
1478
|
usage: { ...VIDEO_USAGE },
|
|
858
|
-
pricingKind: "video_per_second"
|
|
1479
|
+
pricingKind: "video_per_second",
|
|
1480
|
+
display: {
|
|
1481
|
+
provider: "bytedance",
|
|
1482
|
+
description: "Speed- and cost-optimized ByteDance Seedance 2.0 Fast; text plus image, video, and audio references to generate or edit 4-15 second clips."
|
|
1483
|
+
},
|
|
1484
|
+
capabilities: { acceptsSourceVideo: true, ...FRAMES_EXCLUDE_REFERENCES }
|
|
859
1485
|
},
|
|
860
1486
|
{
|
|
861
1487
|
// generateAudio defaults to false here (trigger-workflows); Space Builder defaults it to true.
|
|
@@ -866,6 +1492,7 @@ var VIDEO_MODELS = [
|
|
|
866
1492
|
adapter: "ark",
|
|
867
1493
|
providerModelId: "dreamina-seedance-2-5-260628",
|
|
868
1494
|
lifecycle: "active",
|
|
1495
|
+
exposure: "catalog",
|
|
869
1496
|
constraints: {
|
|
870
1497
|
aspectRatios: [...SEEDANCE_RATIOS],
|
|
871
1498
|
resolutions: ["480p", "720p", "1080p"],
|
|
@@ -881,7 +1508,12 @@ var VIDEO_MODELS = [
|
|
|
881
1508
|
generateAudio: false
|
|
882
1509
|
},
|
|
883
1510
|
usage: { ...VIDEO_USAGE },
|
|
884
|
-
pricingKind: "video_per_second"
|
|
1511
|
+
pricingKind: "video_per_second",
|
|
1512
|
+
display: {
|
|
1513
|
+
provider: "bytedance",
|
|
1514
|
+
description: "ByteDance Seedance 2.5 for long-form storytelling and omni-reference generation/editing; up to 50 reference assets and 4-30 second clips at up to 1080p."
|
|
1515
|
+
},
|
|
1516
|
+
capabilities: { acceptsSourceVideo: true, ...FRAMES_EXCLUDE_REFERENCES }
|
|
885
1517
|
},
|
|
886
1518
|
{
|
|
887
1519
|
// Cowork allows 7 reference images and durations 4/6/8/10; Space Builder allows 5 and 1-15s.
|
|
@@ -892,17 +1524,25 @@ var VIDEO_MODELS = [
|
|
|
892
1524
|
adapter: "xai-video",
|
|
893
1525
|
providerModelId: "grok-imagine-video",
|
|
894
1526
|
lifecycle: "active",
|
|
1527
|
+
exposure: "catalog",
|
|
895
1528
|
constraints: {
|
|
896
1529
|
aspectRatios: [...GROK_RATIOS],
|
|
897
1530
|
resolutions: ["480p", "720p"],
|
|
898
1531
|
durations: { min: 1, max: 15 },
|
|
1532
|
+
durationPresets: [4, 6, 8, 10],
|
|
899
1533
|
references: { images: 7 },
|
|
900
1534
|
supports: []
|
|
901
1535
|
},
|
|
902
1536
|
// No resolution default: xAI picks its own unless the caller asks.
|
|
903
1537
|
defaults: { durationSeconds: 8, aspectRatio: "16:9" },
|
|
904
1538
|
usage: { unit: "reported_cost_usd", modality: "VIDEO" },
|
|
905
|
-
pricingKind: "video_per_second"
|
|
1539
|
+
pricingKind: "video_per_second",
|
|
1540
|
+
display: {
|
|
1541
|
+
provider: "xai",
|
|
1542
|
+
description: "xAI's reference-to-video model. Generates short clips conditioned on up to 7 reference images with flexible aspect ratios.",
|
|
1543
|
+
logo: "https://d31vvfpk2ppdyq.cloudfront.net/assets/image/858b7fcc-9bd5-411d-aea1-a7b35ecfffab_compressed.png"
|
|
1544
|
+
},
|
|
1545
|
+
capabilities: { ...FRAMES_EXCLUDE_REFERENCES }
|
|
906
1546
|
},
|
|
907
1547
|
{
|
|
908
1548
|
id: "kling-2.5",
|
|
@@ -912,6 +1552,7 @@ var VIDEO_MODELS = [
|
|
|
912
1552
|
adapter: "higgsfield",
|
|
913
1553
|
providerModelId: "kling-video/v2.5-turbo/pro/image-to-video",
|
|
914
1554
|
lifecycle: "active",
|
|
1555
|
+
exposure: "catalog",
|
|
915
1556
|
constraints: {
|
|
916
1557
|
aspectRatios: [...KLING_RATIOS],
|
|
917
1558
|
durations: [5, 10],
|
|
@@ -925,7 +1566,12 @@ var VIDEO_MODELS = [
|
|
|
925
1566
|
negativePrompt: NEGATIVE_PROMPT
|
|
926
1567
|
},
|
|
927
1568
|
usage: { ...VIDEO_USAGE },
|
|
928
|
-
pricingKind: "video_per_second"
|
|
1569
|
+
pricingKind: "video_per_second",
|
|
1570
|
+
display: {
|
|
1571
|
+
provider: "kuaishou",
|
|
1572
|
+
description: "Kuaishou Kling 2.5 Turbo Pro image-to-video; animates a single input image from a text prompt with an optional end image, 5- or 10-second clips."
|
|
1573
|
+
},
|
|
1574
|
+
capabilities: { ...FRAMES_EXCLUDE_REFERENCES }
|
|
929
1575
|
},
|
|
930
1576
|
{
|
|
931
1577
|
// trigger-workflows validates 5/10 only; Space Builder allows 3-15s (Kling30Input).
|
|
@@ -936,6 +1582,7 @@ var VIDEO_MODELS = [
|
|
|
936
1582
|
adapter: "higgsfield",
|
|
937
1583
|
providerModelId: "kling-video/v3.0/pro/image-to-video",
|
|
938
1584
|
lifecycle: "active",
|
|
1585
|
+
exposure: "catalog",
|
|
939
1586
|
constraints: {
|
|
940
1587
|
aspectRatios: [...KLING_RATIOS],
|
|
941
1588
|
durations: { min: 3, max: 15 },
|
|
@@ -949,7 +1596,12 @@ var VIDEO_MODELS = [
|
|
|
949
1596
|
negativePrompt: NEGATIVE_PROMPT
|
|
950
1597
|
},
|
|
951
1598
|
usage: { ...VIDEO_USAGE },
|
|
952
|
-
pricingKind: "video_per_second"
|
|
1599
|
+
pricingKind: "video_per_second",
|
|
1600
|
+
display: {
|
|
1601
|
+
provider: "kuaishou",
|
|
1602
|
+
description: "Kuaishou Kling 3.0 Pro image-to-video; a required start image plus a text prompt (or multi-shot prompts) with optional end image and native audio, 3-15 second clips."
|
|
1603
|
+
},
|
|
1604
|
+
capabilities: { ...FRAMES_EXCLUDE_REFERENCES }
|
|
953
1605
|
},
|
|
954
1606
|
{
|
|
955
1607
|
// mode standard/pro selects 720p/1080p; the endpoint takes no separate resolution.
|
|
@@ -960,6 +1612,7 @@ var VIDEO_MODELS = [
|
|
|
960
1612
|
adapter: "replicate",
|
|
961
1613
|
providerModelId: "kwaivgi/kling-v3-omni-video",
|
|
962
1614
|
lifecycle: "active",
|
|
1615
|
+
exposure: "catalog",
|
|
963
1616
|
constraints: {
|
|
964
1617
|
aspectRatios: [
|
|
965
1618
|
"1:1",
|
|
@@ -980,7 +1633,12 @@ var VIDEO_MODELS = [
|
|
|
980
1633
|
},
|
|
981
1634
|
defaults: { durationSeconds: 5, aspectRatio: "16:9", generateAudio: false, mode: "pro" },
|
|
982
1635
|
usage: { unit: "compute_seconds", modality: "VIDEO" },
|
|
983
|
-
pricingKind: "video_per_second"
|
|
1636
|
+
pricingKind: "video_per_second",
|
|
1637
|
+
display: {
|
|
1638
|
+
provider: "kuaishou",
|
|
1639
|
+
description: "Kuaishou Kling Video 3.0 Omni unified generation and editing from text, start/end images, up to 7 reference images, and reference video; up to 15 seconds at up to 1080p."
|
|
1640
|
+
},
|
|
1641
|
+
capabilities: {}
|
|
984
1642
|
},
|
|
985
1643
|
{
|
|
986
1644
|
id: "minimax-h3",
|
|
@@ -990,6 +1648,7 @@ var VIDEO_MODELS = [
|
|
|
990
1648
|
adapter: "fal",
|
|
991
1649
|
providerModelId: "minimax/h3",
|
|
992
1650
|
lifecycle: "active",
|
|
1651
|
+
exposure: "catalog",
|
|
993
1652
|
constraints: {
|
|
994
1653
|
aspectRatios: [...H3_RATIOS],
|
|
995
1654
|
resolutions: ["480p", "768p", "2k", "4k"],
|
|
@@ -1003,7 +1662,12 @@ var VIDEO_MODELS = [
|
|
|
1003
1662
|
promptExpansion: "balanced"
|
|
1004
1663
|
},
|
|
1005
1664
|
usage: { ...VIDEO_USAGE },
|
|
1006
|
-
pricingKind: "video_per_second"
|
|
1665
|
+
pricingKind: "video_per_second",
|
|
1666
|
+
display: {
|
|
1667
|
+
provider: "minimax",
|
|
1668
|
+
description: "MiniMax H3 multimodal video model for text-to-video, image-to-video (first/last frame), and reference-to-video with native audio, up to 2K."
|
|
1669
|
+
},
|
|
1670
|
+
capabilities: { ...FRAMES_EXCLUDE_REFERENCES }
|
|
1007
1671
|
},
|
|
1008
1672
|
{
|
|
1009
1673
|
id: "minimax-h3-max",
|
|
@@ -1013,6 +1677,7 @@ var VIDEO_MODELS = [
|
|
|
1013
1677
|
adapter: "fal",
|
|
1014
1678
|
providerModelId: "minimax/h3-max",
|
|
1015
1679
|
lifecycle: "active",
|
|
1680
|
+
exposure: "catalog",
|
|
1016
1681
|
constraints: {
|
|
1017
1682
|
aspectRatios: [...H3_RATIOS],
|
|
1018
1683
|
resolutions: ["480p", "768p"],
|
|
@@ -1026,7 +1691,12 @@ var VIDEO_MODELS = [
|
|
|
1026
1691
|
promptExpansion: "balanced"
|
|
1027
1692
|
},
|
|
1028
1693
|
usage: { ...VIDEO_USAGE },
|
|
1029
|
-
pricingKind: "video_per_second"
|
|
1694
|
+
pricingKind: "video_per_second",
|
|
1695
|
+
display: {
|
|
1696
|
+
provider: "minimax",
|
|
1697
|
+
description: "High-speed MiniMax H3 Max variant for text-to-video and image-to-video (first/last frame) only, up to 768p."
|
|
1698
|
+
},
|
|
1699
|
+
capabilities: { ...FRAMES_EXCLUDE_REFERENCES }
|
|
1030
1700
|
},
|
|
1031
1701
|
{
|
|
1032
1702
|
id: "minimax-h3-reference",
|
|
@@ -1036,6 +1706,7 @@ var VIDEO_MODELS = [
|
|
|
1036
1706
|
adapter: "fal",
|
|
1037
1707
|
providerModelId: "minimax/h3/reference-to-video",
|
|
1038
1708
|
lifecycle: "active",
|
|
1709
|
+
exposure: "catalog",
|
|
1039
1710
|
constraints: {
|
|
1040
1711
|
aspectRatios: [...H3_REFERENCE_RATIOS],
|
|
1041
1712
|
resolutions: ["480p", "768p", "2k", "4k"],
|
|
@@ -1050,7 +1721,12 @@ var VIDEO_MODELS = [
|
|
|
1050
1721
|
promptExpansion: "balanced"
|
|
1051
1722
|
},
|
|
1052
1723
|
usage: { ...VIDEO_USAGE },
|
|
1053
|
-
pricingKind: "video_per_second"
|
|
1724
|
+
pricingKind: "video_per_second",
|
|
1725
|
+
display: {
|
|
1726
|
+
provider: "minimax",
|
|
1727
|
+
description: "MiniMax H3 reference-to-video mode guided by up to 9 reference images, 3 reference videos, and 3 audio clips; reference and image-to-video inputs cannot be mixed."
|
|
1728
|
+
},
|
|
1729
|
+
capabilities: {}
|
|
1054
1730
|
},
|
|
1055
1731
|
{
|
|
1056
1732
|
id: "minimax-h3-max-reference",
|
|
@@ -1060,6 +1736,7 @@ var VIDEO_MODELS = [
|
|
|
1060
1736
|
adapter: "fal",
|
|
1061
1737
|
providerModelId: "minimax/h3-max/reference-to-video",
|
|
1062
1738
|
lifecycle: "active",
|
|
1739
|
+
exposure: "catalog",
|
|
1063
1740
|
constraints: {
|
|
1064
1741
|
aspectRatios: [...H3_REFERENCE_RATIOS],
|
|
1065
1742
|
resolutions: ["480p", "768p"],
|
|
@@ -1074,7 +1751,12 @@ var VIDEO_MODELS = [
|
|
|
1074
1751
|
promptExpansion: "balanced"
|
|
1075
1752
|
},
|
|
1076
1753
|
usage: { ...VIDEO_USAGE },
|
|
1077
|
-
pricingKind: "video_per_second"
|
|
1754
|
+
pricingKind: "video_per_second",
|
|
1755
|
+
display: {
|
|
1756
|
+
provider: "minimax",
|
|
1757
|
+
description: "MiniMax H3 Max reference-to-video on fal; conditions on reference images, videos, and audio. MiniMax's own docs do not list a reference mode for H3 Max."
|
|
1758
|
+
},
|
|
1759
|
+
capabilities: {}
|
|
1078
1760
|
},
|
|
1079
1761
|
{
|
|
1080
1762
|
// Duration 3-10s per trigger-workflows mapDuration; the endpoint takes no resolution.
|
|
@@ -1085,6 +1767,7 @@ var VIDEO_MODELS = [
|
|
|
1085
1767
|
adapter: "fal",
|
|
1086
1768
|
providerModelId: "fal-ai/kling-video/o1/video-to-video/reference",
|
|
1087
1769
|
lifecycle: "active",
|
|
1770
|
+
exposure: "internal",
|
|
1088
1771
|
constraints: {
|
|
1089
1772
|
aspectRatios: [...KLING_RATIOS],
|
|
1090
1773
|
durations: { min: 3, max: 10 },
|
|
@@ -1093,7 +1776,12 @@ var VIDEO_MODELS = [
|
|
|
1093
1776
|
},
|
|
1094
1777
|
defaults: { durationSeconds: 5, aspectRatio: "16:9" },
|
|
1095
1778
|
usage: { ...VIDEO_USAGE },
|
|
1096
|
-
pricingKind: "video_per_second"
|
|
1779
|
+
pricingKind: "video_per_second",
|
|
1780
|
+
display: {
|
|
1781
|
+
provider: "kuaishou",
|
|
1782
|
+
description: "Kuaishou Kling O1 Reference Video-to-Video; a prompt plus a 3-10 second reference video (optional reference images) generates 3-10 second clips preserving motion and camera language."
|
|
1783
|
+
},
|
|
1784
|
+
capabilities: { acceptsSourceVideo: true }
|
|
1097
1785
|
},
|
|
1098
1786
|
{
|
|
1099
1787
|
id: "hailuo-02",
|
|
@@ -1103,6 +1791,7 @@ var VIDEO_MODELS = [
|
|
|
1103
1791
|
adapter: "replicate",
|
|
1104
1792
|
providerModelId: "minimax/hailuo-02",
|
|
1105
1793
|
lifecycle: "active",
|
|
1794
|
+
exposure: "internal",
|
|
1106
1795
|
constraints: {
|
|
1107
1796
|
resolutions: ["768p"],
|
|
1108
1797
|
durations: [6, 10],
|
|
@@ -1110,7 +1799,12 @@ var VIDEO_MODELS = [
|
|
|
1110
1799
|
},
|
|
1111
1800
|
defaults: { durationSeconds: 6, resolution: "768p" },
|
|
1112
1801
|
usage: { unit: "compute_seconds", modality: "VIDEO" },
|
|
1113
|
-
pricingKind: "video_per_second"
|
|
1802
|
+
pricingKind: "video_per_second",
|
|
1803
|
+
display: {
|
|
1804
|
+
provider: "minimax",
|
|
1805
|
+
description: "MiniMax Hailuo 02 text-to-video and image-to-video model with realistic physics and strong prompt following; outputs 768p at 6 or 10 seconds."
|
|
1806
|
+
},
|
|
1807
|
+
capabilities: {}
|
|
1114
1808
|
},
|
|
1115
1809
|
{
|
|
1116
1810
|
id: "higgsfield-dop-preview",
|
|
@@ -1120,13 +1814,19 @@ var VIDEO_MODELS = [
|
|
|
1120
1814
|
adapter: "higgsfield",
|
|
1121
1815
|
providerModelId: "dop-preview",
|
|
1122
1816
|
lifecycle: "active",
|
|
1817
|
+
exposure: "internal",
|
|
1123
1818
|
constraints: {
|
|
1124
1819
|
requires: ["firstFrame"],
|
|
1125
1820
|
supports: ["seed", "lastFrame"]
|
|
1126
1821
|
},
|
|
1127
1822
|
defaults: {},
|
|
1128
1823
|
usage: { ...VIDEO_USAGE },
|
|
1129
|
-
pricingKind: "video_per_second"
|
|
1824
|
+
pricingKind: "video_per_second",
|
|
1825
|
+
display: {
|
|
1826
|
+
provider: "higgsfield",
|
|
1827
|
+
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."
|
|
1828
|
+
},
|
|
1829
|
+
capabilities: {}
|
|
1130
1830
|
}
|
|
1131
1831
|
];
|
|
1132
1832
|
|
|
@@ -1712,6 +2412,7 @@ function passthroughTextModel(model) {
|
|
|
1712
2412
|
adapter: "ai-sdk-text",
|
|
1713
2413
|
providerModelId: model.modelId,
|
|
1714
2414
|
lifecycle: "active",
|
|
2415
|
+
exposure: "internal",
|
|
1715
2416
|
constraints: {},
|
|
1716
2417
|
defaults: {},
|
|
1717
2418
|
usage: { unit: "tokens", modality: "TEXT" },
|