@nodaro/shared 1.24.1 → 2.0.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/dist/index.cjs +309 -290
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +9 -2
- package/dist/index.d.ts +9 -2
- package/dist/index.js +307 -291
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/src/__tests__/credit-conversion.test.ts +53 -0
- package/src/__tests__/video-analysis-catalog-sync.test.ts +5 -3
- package/src/credit-conversion.ts +39 -0
- package/src/index.ts +2 -0
- package/src/model-catalog.ts +269 -269
- package/src/model-constants.ts +1 -1
- package/src/video-analysis-pricing.ts +32 -20
package/dist/index.cjs
CHANGED
|
@@ -80,7 +80,7 @@ var IMAGE_MODELS = {
|
|
|
80
80
|
useCases: ["realistic", "general", "fast"],
|
|
81
81
|
features: ["reference-image"],
|
|
82
82
|
aspectRatios: NANO_BANANA_RATIOS,
|
|
83
|
-
pricing: [{ identifier: "nano-banana", credits:
|
|
83
|
+
pricing: [{ identifier: "nano-banana", credits: 10, note: "1K" }],
|
|
84
84
|
mcpHidden: true
|
|
85
85
|
},
|
|
86
86
|
"nano-banana-2": {
|
|
@@ -98,9 +98,9 @@ var IMAGE_MODELS = {
|
|
|
98
98
|
aspectRatios: NANO_BANANA_RATIOS,
|
|
99
99
|
resolutions: ["1K", "2K", "4K"],
|
|
100
100
|
pricing: [
|
|
101
|
-
{ identifier: "nano-banana-2", credits:
|
|
102
|
-
{ identifier: "nano-banana-2:2K", credits:
|
|
103
|
-
{ identifier: "nano-banana-2:4K", credits:
|
|
101
|
+
{ identifier: "nano-banana-2", credits: 20, note: "1K default" },
|
|
102
|
+
{ identifier: "nano-banana-2:2K", credits: 50, note: "2K" },
|
|
103
|
+
{ identifier: "nano-banana-2:4K", credits: 50, note: "4K" }
|
|
104
104
|
]
|
|
105
105
|
},
|
|
106
106
|
"nano-banana-2-lite": {
|
|
@@ -117,7 +117,7 @@ var IMAGE_MODELS = {
|
|
|
117
117
|
features: ["reference-image"],
|
|
118
118
|
aspectRatios: NANO_BANANA_2_LITE_RATIOS,
|
|
119
119
|
// 1K only — no resolution lever, flat pricing.
|
|
120
|
-
pricing: [{ identifier: "nano-banana-2-lite", credits:
|
|
120
|
+
pricing: [{ identifier: "nano-banana-2-lite", credits: 10, note: "1K flat" }]
|
|
121
121
|
},
|
|
122
122
|
"nano-banana-pro": {
|
|
123
123
|
id: "nano-banana-pro",
|
|
@@ -132,8 +132,8 @@ var IMAGE_MODELS = {
|
|
|
132
132
|
aspectRatios: NANO_BANANA_RATIOS,
|
|
133
133
|
resolutions: ["1K", "2K", "4K"],
|
|
134
134
|
pricing: [
|
|
135
|
-
{ identifier: "nano-banana-pro", credits:
|
|
136
|
-
{ identifier: "nano-banana-pro:4K", credits:
|
|
135
|
+
{ identifier: "nano-banana-pro", credits: 45, note: "1K / 2K" },
|
|
136
|
+
{ identifier: "nano-banana-pro:4K", credits: 60, note: "4K" }
|
|
137
137
|
],
|
|
138
138
|
featured: true
|
|
139
139
|
},
|
|
@@ -148,7 +148,7 @@ var IMAGE_MODELS = {
|
|
|
148
148
|
useCases: ["edit", "remix", "general"],
|
|
149
149
|
features: ["reference-image"],
|
|
150
150
|
aspectRatios: NANO_BANANA_RATIOS,
|
|
151
|
-
pricing: [{ identifier: "nano-banana-edit", credits:
|
|
151
|
+
pricing: [{ identifier: "nano-banana-edit", credits: 10 }]
|
|
152
152
|
},
|
|
153
153
|
// ── Black Forest Labs (Flux) ──
|
|
154
154
|
"flux": {
|
|
@@ -164,8 +164,8 @@ var IMAGE_MODELS = {
|
|
|
164
164
|
aspectRatios: FLUX_RATIOS,
|
|
165
165
|
resolutions: ["1K", "2K"],
|
|
166
166
|
pricing: [
|
|
167
|
-
{ identifier: "flux", credits:
|
|
168
|
-
{ identifier: "flux:2K", credits:
|
|
167
|
+
{ identifier: "flux", credits: 13, note: "1K default" },
|
|
168
|
+
{ identifier: "flux:2K", credits: 20, note: "2K" }
|
|
169
169
|
]
|
|
170
170
|
},
|
|
171
171
|
"flux-flex": {
|
|
@@ -181,8 +181,8 @@ var IMAGE_MODELS = {
|
|
|
181
181
|
aspectRatios: FLUX_RATIOS,
|
|
182
182
|
resolutions: ["1K", "2K"],
|
|
183
183
|
pricing: [
|
|
184
|
-
{ identifier: "flux-flex", credits:
|
|
185
|
-
{ identifier: "flux-flex:2K", credits:
|
|
184
|
+
{ identifier: "flux-flex", credits: 35, note: "1K default" },
|
|
185
|
+
{ identifier: "flux-flex:2K", credits: 60, note: "2K" }
|
|
186
186
|
]
|
|
187
187
|
},
|
|
188
188
|
"flux-i2i": {
|
|
@@ -198,8 +198,8 @@ var IMAGE_MODELS = {
|
|
|
198
198
|
aspectRatios: FLUX_RATIOS,
|
|
199
199
|
resolutions: ["1K", "2K"],
|
|
200
200
|
pricing: [
|
|
201
|
-
{ identifier: "flux-i2i", credits:
|
|
202
|
-
{ identifier: "flux-i2i:2K", credits:
|
|
201
|
+
{ identifier: "flux-i2i", credits: 60, note: "1K default" },
|
|
202
|
+
{ identifier: "flux-i2i:2K", credits: 60, note: "2K" }
|
|
203
203
|
]
|
|
204
204
|
},
|
|
205
205
|
"flux-pro-i2i": {
|
|
@@ -215,8 +215,8 @@ var IMAGE_MODELS = {
|
|
|
215
215
|
aspectRatios: FLUX_RATIOS,
|
|
216
216
|
resolutions: ["1K", "2K"],
|
|
217
217
|
pricing: [
|
|
218
|
-
{ identifier: "flux-pro-i2i", credits:
|
|
219
|
-
{ identifier: "flux-pro-i2i:2K", credits:
|
|
218
|
+
{ identifier: "flux-pro-i2i", credits: 13, note: "1K default" },
|
|
219
|
+
{ identifier: "flux-pro-i2i:2K", credits: 20, note: "2K" }
|
|
220
220
|
]
|
|
221
221
|
},
|
|
222
222
|
"flux-kontext": {
|
|
@@ -231,7 +231,7 @@ var IMAGE_MODELS = {
|
|
|
231
231
|
useCases: ["edit", "style-transfer", "preserve-identity"],
|
|
232
232
|
features: ["reference-image"],
|
|
233
233
|
aspectRatios: KONTEXT_RATIOS,
|
|
234
|
-
pricing: [{ identifier: "flux-kontext", credits:
|
|
234
|
+
pricing: [{ identifier: "flux-kontext", credits: 13 }]
|
|
235
235
|
},
|
|
236
236
|
"flux-kontext-max": {
|
|
237
237
|
id: "flux-kontext-max",
|
|
@@ -244,7 +244,7 @@ var IMAGE_MODELS = {
|
|
|
244
244
|
useCases: ["edit", "style-transfer", "premium"],
|
|
245
245
|
features: ["reference-image"],
|
|
246
246
|
aspectRatios: KONTEXT_RATIOS,
|
|
247
|
-
pricing: [{ identifier: "flux-kontext-max", credits:
|
|
247
|
+
pricing: [{ identifier: "flux-kontext-max", credits: 25 }]
|
|
248
248
|
},
|
|
249
249
|
// ── Replicate "Open" (uncensored) — run direct via Replicate, not KIE ──
|
|
250
250
|
"flux-2-klein": {
|
|
@@ -260,11 +260,11 @@ var IMAGE_MODELS = {
|
|
|
260
260
|
aspectRatios: FLUX_RATIOS,
|
|
261
261
|
resolutions: ["0.5 MP", "1 MP", "2 MP", "4 MP"],
|
|
262
262
|
pricing: [
|
|
263
|
-
{ identifier: "flux-2-klein", credits:
|
|
263
|
+
{ identifier: "flux-2-klein", credits: 10 },
|
|
264
264
|
// 1MP 0ref (default)
|
|
265
|
-
{ identifier: "flux-2-klein:1MP:0ref", credits:
|
|
265
|
+
{ identifier: "flux-2-klein:1MP:0ref", credits: 3 },
|
|
266
266
|
// min
|
|
267
|
-
{ identifier: "flux-2-klein:4MP:8ref", credits:
|
|
267
|
+
{ identifier: "flux-2-klein:4MP:8ref", credits: 108 }
|
|
268
268
|
// max
|
|
269
269
|
]
|
|
270
270
|
},
|
|
@@ -279,7 +279,7 @@ var IMAGE_MODELS = {
|
|
|
279
279
|
useCases: ["edit", "multi-reference", "unfiltered"],
|
|
280
280
|
features: ["reference-image"],
|
|
281
281
|
aspectRatios: KONTEXT_RATIOS,
|
|
282
|
-
pricing: [{ identifier: "kontext-multi", credits:
|
|
282
|
+
pricing: [{ identifier: "kontext-multi", credits: 30 }]
|
|
283
283
|
},
|
|
284
284
|
"flux-2-pro": {
|
|
285
285
|
id: "flux-2-pro",
|
|
@@ -294,11 +294,11 @@ var IMAGE_MODELS = {
|
|
|
294
294
|
aspectRatios: FLUX_RATIOS,
|
|
295
295
|
resolutions: ["0.5 MP", "1 MP", "2 MP", "4 MP"],
|
|
296
296
|
pricing: [
|
|
297
|
-
{ identifier: "flux-2-pro", credits:
|
|
297
|
+
{ identifier: "flux-2-pro", credits: 30 },
|
|
298
298
|
// 2MP 0ref (default)
|
|
299
|
-
{ identifier: "flux-2-pro:0.5MP:0ref", credits:
|
|
299
|
+
{ identifier: "flux-2-pro:0.5MP:0ref", credits: 12 },
|
|
300
300
|
// min
|
|
301
|
-
{ identifier: "flux-2-pro:4MP:8ref", credits:
|
|
301
|
+
{ identifier: "flux-2-pro:4MP:8ref", credits: 278 }
|
|
302
302
|
// max
|
|
303
303
|
]
|
|
304
304
|
},
|
|
@@ -315,11 +315,11 @@ var IMAGE_MODELS = {
|
|
|
315
315
|
aspectRatios: FLUX_RATIOS,
|
|
316
316
|
resolutions: ["0.5 MP", "1 MP", "2 MP", "4 MP"],
|
|
317
317
|
pricing: [
|
|
318
|
-
{ identifier: "flux-2-max", credits:
|
|
318
|
+
{ identifier: "flux-2-max", credits: 70 },
|
|
319
319
|
// 2MP 0ref (default)
|
|
320
|
-
{ identifier: "flux-2-max:0.5MP:0ref", credits:
|
|
320
|
+
{ identifier: "flux-2-max:0.5MP:0ref", credits: 18 },
|
|
321
321
|
// min
|
|
322
|
-
{ identifier: "flux-2-max:4MP:8ref", credits:
|
|
322
|
+
{ identifier: "flux-2-max:4MP:8ref", credits: 620 }
|
|
323
323
|
// max
|
|
324
324
|
]
|
|
325
325
|
},
|
|
@@ -337,8 +337,8 @@ var IMAGE_MODELS = {
|
|
|
337
337
|
aspectRatios: GPT_IMAGE_RATIOS,
|
|
338
338
|
qualities: ["medium", "high"],
|
|
339
339
|
pricing: [
|
|
340
|
-
{ identifier: "gpt-image", credits:
|
|
341
|
-
{ identifier: "gpt-image:high", credits:
|
|
340
|
+
{ identifier: "gpt-image", credits: 10, note: "medium default" },
|
|
341
|
+
{ identifier: "gpt-image:high", credits: 60, note: "high quality" }
|
|
342
342
|
],
|
|
343
343
|
valueLabels: { "3:2": "3:2 (Landscape)", "2:3": "2:3 (Portrait)" },
|
|
344
344
|
mcpHidden: true
|
|
@@ -356,8 +356,8 @@ var IMAGE_MODELS = {
|
|
|
356
356
|
aspectRatios: GPT_IMAGE_RATIOS,
|
|
357
357
|
qualities: ["medium", "high"],
|
|
358
358
|
pricing: [
|
|
359
|
-
{ identifier: "gpt-image-i2i", credits:
|
|
360
|
-
{ identifier: "gpt-image-i2i:high", credits:
|
|
359
|
+
{ identifier: "gpt-image-i2i", credits: 10, note: "medium default" },
|
|
360
|
+
{ identifier: "gpt-image-i2i:high", credits: 60, note: "high quality" }
|
|
361
361
|
],
|
|
362
362
|
valueLabels: { "3:2": "3:2 (Landscape)", "2:3": "2:3 (Portrait)" },
|
|
363
363
|
mcpHidden: true
|
|
@@ -375,9 +375,9 @@ var IMAGE_MODELS = {
|
|
|
375
375
|
aspectRatios: GPT_IMAGE_2_RATIOS,
|
|
376
376
|
resolutions: ["1K", "2K", "4K"],
|
|
377
377
|
pricing: [
|
|
378
|
-
{ identifier: "gpt-image-2", credits:
|
|
379
|
-
{ identifier: "gpt-image-2:2K", credits:
|
|
380
|
-
{ identifier: "gpt-image-2:4K", credits:
|
|
378
|
+
{ identifier: "gpt-image-2", credits: 15, note: "1K default" },
|
|
379
|
+
{ identifier: "gpt-image-2:2K", credits: 30, note: "2K" },
|
|
380
|
+
{ identifier: "gpt-image-2:4K", credits: 60, note: "4K" }
|
|
381
381
|
]
|
|
382
382
|
},
|
|
383
383
|
"gpt-image-2-i2i": {
|
|
@@ -393,9 +393,9 @@ var IMAGE_MODELS = {
|
|
|
393
393
|
aspectRatios: GPT_IMAGE_2_RATIOS,
|
|
394
394
|
resolutions: ["1K", "2K", "4K"],
|
|
395
395
|
pricing: [
|
|
396
|
-
{ identifier: "gpt-image-2-i2i", credits:
|
|
397
|
-
{ identifier: "gpt-image-2-i2i:2K", credits:
|
|
398
|
-
{ identifier: "gpt-image-2-i2i:4K", credits:
|
|
396
|
+
{ identifier: "gpt-image-2-i2i", credits: 15, note: "1K default" },
|
|
397
|
+
{ identifier: "gpt-image-2-i2i:2K", credits: 30, note: "2K" },
|
|
398
|
+
{ identifier: "gpt-image-2-i2i:4K", credits: 60, note: "4K" }
|
|
399
399
|
]
|
|
400
400
|
},
|
|
401
401
|
// ── Ideogram ──
|
|
@@ -416,9 +416,9 @@ var IMAGE_MODELS = {
|
|
|
416
416
|
useCases: ["typography", "illustration", "stylized"],
|
|
417
417
|
aspectRatios: IDEOGRAM_RATIOS,
|
|
418
418
|
pricing: [
|
|
419
|
-
{ identifier: "ideogram-v3", credits:
|
|
420
|
-
{ identifier: "ideogram-v3:TURBO", credits:
|
|
421
|
-
{ identifier: "ideogram-v3:QUALITY", credits:
|
|
419
|
+
{ identifier: "ideogram-v3", credits: 18, note: "BALANCED default" },
|
|
420
|
+
{ identifier: "ideogram-v3:TURBO", credits: 18, note: "fastest" },
|
|
421
|
+
{ identifier: "ideogram-v3:QUALITY", credits: 18, note: "best quality" }
|
|
422
422
|
]
|
|
423
423
|
},
|
|
424
424
|
"ideogram-edit": {
|
|
@@ -434,9 +434,9 @@ var IMAGE_MODELS = {
|
|
|
434
434
|
// No aspectRatios — Ideogram Edit takes output dimensions from the input
|
|
435
435
|
// image + mask. Backend strips aspect_ratio for this provider.
|
|
436
436
|
pricing: [
|
|
437
|
-
{ identifier: "ideogram-edit", credits:
|
|
438
|
-
{ identifier: "ideogram-edit:TURBO", credits:
|
|
439
|
-
{ identifier: "ideogram-edit:QUALITY", credits:
|
|
437
|
+
{ identifier: "ideogram-edit", credits: 45, note: "BALANCED default" },
|
|
438
|
+
{ identifier: "ideogram-edit:TURBO", credits: 30, note: "fastest" },
|
|
439
|
+
{ identifier: "ideogram-edit:QUALITY", credits: 60, note: "best quality" }
|
|
440
440
|
]
|
|
441
441
|
},
|
|
442
442
|
"ideogram-remix": {
|
|
@@ -451,9 +451,9 @@ var IMAGE_MODELS = {
|
|
|
451
451
|
features: ["reference-image"],
|
|
452
452
|
aspectRatios: IDEOGRAM_RATIOS,
|
|
453
453
|
pricing: [
|
|
454
|
-
{ identifier: "ideogram-remix", credits:
|
|
455
|
-
{ identifier: "ideogram-remix:TURBO", credits:
|
|
456
|
-
{ identifier: "ideogram-remix:QUALITY", credits:
|
|
454
|
+
{ identifier: "ideogram-remix", credits: 45, note: "BALANCED default" },
|
|
455
|
+
{ identifier: "ideogram-remix:TURBO", credits: 30, note: "fastest" },
|
|
456
|
+
{ identifier: "ideogram-remix:QUALITY", credits: 60, note: "best quality" }
|
|
457
457
|
]
|
|
458
458
|
},
|
|
459
459
|
"ideogram-reframe": {
|
|
@@ -468,9 +468,9 @@ var IMAGE_MODELS = {
|
|
|
468
468
|
features: ["reference-image"],
|
|
469
469
|
aspectRatios: IDEOGRAM_RATIOS,
|
|
470
470
|
pricing: [
|
|
471
|
-
{ identifier: "ideogram-reframe", credits:
|
|
472
|
-
{ identifier: "ideogram-reframe:TURBO", credits:
|
|
473
|
-
{ identifier: "ideogram-reframe:QUALITY", credits:
|
|
471
|
+
{ identifier: "ideogram-reframe", credits: 18, note: "BALANCED default" },
|
|
472
|
+
{ identifier: "ideogram-reframe:TURBO", credits: 18, note: "fastest" },
|
|
473
|
+
{ identifier: "ideogram-reframe:QUALITY", credits: 18, note: "best quality" }
|
|
474
474
|
]
|
|
475
475
|
},
|
|
476
476
|
// ── Google Imagen ──
|
|
@@ -484,7 +484,7 @@ var IMAGE_MODELS = {
|
|
|
484
484
|
description: "Google's Imagen 4 \u2014 strong photographic quality and prompt fidelity.",
|
|
485
485
|
useCases: ["photographic", "realistic"],
|
|
486
486
|
aspectRatios: IMAGEN4_RATIOS,
|
|
487
|
-
pricing: [{ identifier: "imagen4", credits:
|
|
487
|
+
pricing: [{ identifier: "imagen4", credits: 20 }]
|
|
488
488
|
},
|
|
489
489
|
"imagen4-fast": {
|
|
490
490
|
id: "imagen4-fast",
|
|
@@ -496,7 +496,7 @@ var IMAGE_MODELS = {
|
|
|
496
496
|
description: "Cheaper / quicker Imagen 4 tier.",
|
|
497
497
|
useCases: ["fast", "realistic", "general"],
|
|
498
498
|
aspectRatios: IMAGEN4_RATIOS,
|
|
499
|
-
pricing: [{ identifier: "imagen4-fast", credits:
|
|
499
|
+
pricing: [{ identifier: "imagen4-fast", credits: 10 }]
|
|
500
500
|
},
|
|
501
501
|
"imagen4-ultra": {
|
|
502
502
|
id: "imagen4-ultra",
|
|
@@ -508,7 +508,7 @@ var IMAGE_MODELS = {
|
|
|
508
508
|
description: "Premium Imagen 4 \u2014 highest fidelity, slower / more credits.",
|
|
509
509
|
useCases: ["premium", "photographic"],
|
|
510
510
|
aspectRatios: IMAGEN4_RATIOS,
|
|
511
|
-
pricing: [{ identifier: "imagen4-ultra", credits:
|
|
511
|
+
pricing: [{ identifier: "imagen4-ultra", credits: 30 }]
|
|
512
512
|
},
|
|
513
513
|
// ── Bytedance Seedream ──
|
|
514
514
|
"seedream": {
|
|
@@ -524,8 +524,8 @@ var IMAGE_MODELS = {
|
|
|
524
524
|
aspectRatios: SEEDREAM_RATIOS,
|
|
525
525
|
qualities: ["basic", "high"],
|
|
526
526
|
pricing: [
|
|
527
|
-
{ identifier: "seedream", credits:
|
|
528
|
-
{ identifier: "seedream:high", credits:
|
|
527
|
+
{ identifier: "seedream", credits: 16, note: "basic / 2K default" },
|
|
528
|
+
{ identifier: "seedream:high", credits: 40, note: "high / 4K" }
|
|
529
529
|
],
|
|
530
530
|
mcpHidden: true
|
|
531
531
|
},
|
|
@@ -542,8 +542,8 @@ var IMAGE_MODELS = {
|
|
|
542
542
|
aspectRatios: SEEDREAM_RATIOS,
|
|
543
543
|
qualities: ["basic", "high"],
|
|
544
544
|
pricing: [
|
|
545
|
-
{ identifier: "seedream-edit", credits:
|
|
546
|
-
{ identifier: "seedream-edit:high", credits:
|
|
545
|
+
{ identifier: "seedream-edit", credits: 16, note: "basic default" },
|
|
546
|
+
{ identifier: "seedream-edit:high", credits: 40, note: "high quality" }
|
|
547
547
|
],
|
|
548
548
|
mcpHidden: true
|
|
549
549
|
},
|
|
@@ -560,8 +560,8 @@ var IMAGE_MODELS = {
|
|
|
560
560
|
aspectRatios: SEEDREAM_RATIOS,
|
|
561
561
|
qualities: ["basic", "high"],
|
|
562
562
|
pricing: [
|
|
563
|
-
{ identifier: "seedream-5-lite", credits:
|
|
564
|
-
{ identifier: "seedream-5-lite:high", credits:
|
|
563
|
+
{ identifier: "seedream-5-lite", credits: 14, note: "basic default" },
|
|
564
|
+
{ identifier: "seedream-5-lite:high", credits: 50, note: "high quality" }
|
|
565
565
|
]
|
|
566
566
|
},
|
|
567
567
|
"seedream-5-lite-i2i": {
|
|
@@ -577,8 +577,8 @@ var IMAGE_MODELS = {
|
|
|
577
577
|
aspectRatios: SEEDREAM_RATIOS,
|
|
578
578
|
qualities: ["basic", "high"],
|
|
579
579
|
pricing: [
|
|
580
|
-
{ identifier: "seedream-5-lite-i2i", credits:
|
|
581
|
-
{ identifier: "seedream-5-lite-i2i:high", credits:
|
|
580
|
+
{ identifier: "seedream-5-lite-i2i", credits: 14, note: "basic default" },
|
|
581
|
+
{ identifier: "seedream-5-lite-i2i:high", credits: 50, note: "high quality" }
|
|
582
582
|
]
|
|
583
583
|
},
|
|
584
584
|
"seedream-5-pro": {
|
|
@@ -594,8 +594,8 @@ var IMAGE_MODELS = {
|
|
|
594
594
|
aspectRatios: SEEDREAM_RATIOS,
|
|
595
595
|
qualities: ["basic", "high"],
|
|
596
596
|
pricing: [
|
|
597
|
-
{ identifier: "seedream-5-pro", credits:
|
|
598
|
-
{ identifier: "seedream-5-pro:high", credits:
|
|
597
|
+
{ identifier: "seedream-5-pro", credits: 18, note: "basic / 1K default" },
|
|
598
|
+
{ identifier: "seedream-5-pro:high", credits: 60, note: "high / 2K" }
|
|
599
599
|
]
|
|
600
600
|
},
|
|
601
601
|
"seedream-5-pro-i2i": {
|
|
@@ -611,8 +611,8 @@ var IMAGE_MODELS = {
|
|
|
611
611
|
aspectRatios: SEEDREAM_RATIOS,
|
|
612
612
|
qualities: ["basic", "high"],
|
|
613
613
|
pricing: [
|
|
614
|
-
{ identifier: "seedream-5-pro-i2i", credits:
|
|
615
|
-
{ identifier: "seedream-5-pro-i2i:high", credits:
|
|
614
|
+
{ identifier: "seedream-5-pro-i2i", credits: 19, note: "basic / 1K default" },
|
|
615
|
+
{ identifier: "seedream-5-pro-i2i:high", credits: 60, note: "high / 2K" }
|
|
616
616
|
]
|
|
617
617
|
},
|
|
618
618
|
// ── Alibaba Qwen ──
|
|
@@ -627,7 +627,7 @@ var IMAGE_MODELS = {
|
|
|
627
627
|
useCases: ["fast", "cheap", "general"],
|
|
628
628
|
features: ["reference-image"],
|
|
629
629
|
aspectRatios: IDEOGRAM_RATIOS,
|
|
630
|
-
pricing: [{ identifier: "qwen", credits:
|
|
630
|
+
pricing: [{ identifier: "qwen", credits: 10 }]
|
|
631
631
|
},
|
|
632
632
|
"qwen-i2i": {
|
|
633
633
|
id: "qwen-i2i",
|
|
@@ -640,7 +640,7 @@ var IMAGE_MODELS = {
|
|
|
640
640
|
useCases: ["edit", "fast", "cheap"],
|
|
641
641
|
features: ["reference-image"],
|
|
642
642
|
aspectRatios: IDEOGRAM_RATIOS,
|
|
643
|
-
pricing: [{ identifier: "qwen-i2i", credits:
|
|
643
|
+
pricing: [{ identifier: "qwen-i2i", credits: 10 }]
|
|
644
644
|
},
|
|
645
645
|
"qwen-edit": {
|
|
646
646
|
id: "qwen-edit",
|
|
@@ -653,7 +653,7 @@ var IMAGE_MODELS = {
|
|
|
653
653
|
useCases: ["edit", "cheap"],
|
|
654
654
|
features: ["reference-image"],
|
|
655
655
|
aspectRatios: IDEOGRAM_RATIOS,
|
|
656
|
-
pricing: [{ identifier: "qwen-edit", credits:
|
|
656
|
+
pricing: [{ identifier: "qwen-edit", credits: 13 }]
|
|
657
657
|
},
|
|
658
658
|
// ── Tongyi-MAI Z-Image ──
|
|
659
659
|
"z-image": {
|
|
@@ -666,7 +666,7 @@ var IMAGE_MODELS = {
|
|
|
666
666
|
description: "Cheapest model in catalog. Fast, stylized output. Limited aspect ratios.",
|
|
667
667
|
useCases: ["cheap", "fast", "stylized"],
|
|
668
668
|
aspectRatios: Z_IMAGE_RATIOS,
|
|
669
|
-
pricing: [{ identifier: "z-image", credits:
|
|
669
|
+
pricing: [{ identifier: "z-image", credits: 2 }],
|
|
670
670
|
featured: true
|
|
671
671
|
},
|
|
672
672
|
// ── xAI Grok ──
|
|
@@ -685,7 +685,7 @@ var IMAGE_MODELS = {
|
|
|
685
685
|
useCases: ["stylized", "expressive", "general"],
|
|
686
686
|
features: ["reference-image"],
|
|
687
687
|
aspectRatios: GROK_RATIOS,
|
|
688
|
-
pricing: [{ identifier: "grok", credits:
|
|
688
|
+
pricing: [{ identifier: "grok", credits: 10 }]
|
|
689
689
|
},
|
|
690
690
|
"grok-i2i": {
|
|
691
691
|
id: "grok-i2i",
|
|
@@ -697,7 +697,7 @@ var IMAGE_MODELS = {
|
|
|
697
697
|
description: "Image-to-image with Grok.",
|
|
698
698
|
useCases: ["edit", "stylized"],
|
|
699
699
|
features: ["reference-image"],
|
|
700
|
-
pricing: [{ identifier: "grok-i2i", credits:
|
|
700
|
+
pricing: [{ identifier: "grok-i2i", credits: 10 }]
|
|
701
701
|
},
|
|
702
702
|
"grok-upscale": {
|
|
703
703
|
id: "grok-upscale",
|
|
@@ -708,7 +708,7 @@ var IMAGE_MODELS = {
|
|
|
708
708
|
series: "Grok",
|
|
709
709
|
description: "Upscale a previously-generated Grok image. Requires the prior task id.",
|
|
710
710
|
useCases: ["upscale"],
|
|
711
|
-
pricing: [{ identifier: "grok-upscale", credits:
|
|
711
|
+
pricing: [{ identifier: "grok-upscale", credits: 25 }]
|
|
712
712
|
},
|
|
713
713
|
// ── Utilities ──
|
|
714
714
|
"recraft-remove-bg": {
|
|
@@ -721,7 +721,7 @@ var IMAGE_MODELS = {
|
|
|
721
721
|
description: "Remove image background. Cheap utility.",
|
|
722
722
|
useCases: ["background-removal", "utility"],
|
|
723
723
|
features: ["reference-image"],
|
|
724
|
-
pricing: [{ identifier: "recraft-remove-bg", credits:
|
|
724
|
+
pricing: [{ identifier: "recraft-remove-bg", credits: 3 }]
|
|
725
725
|
},
|
|
726
726
|
"recraft-upscale": {
|
|
727
727
|
id: "recraft-upscale",
|
|
@@ -733,7 +733,7 @@ var IMAGE_MODELS = {
|
|
|
733
733
|
description: "Light-weight image upscale (Recraft Crisp).",
|
|
734
734
|
useCases: ["upscale", "utility"],
|
|
735
735
|
features: ["reference-image"],
|
|
736
|
-
pricing: [{ identifier: "recraft-upscale", credits:
|
|
736
|
+
pricing: [{ identifier: "recraft-upscale", credits: 2 }]
|
|
737
737
|
},
|
|
738
738
|
"topaz-image-upscale": {
|
|
739
739
|
id: "topaz-image-upscale",
|
|
@@ -747,9 +747,9 @@ var IMAGE_MODELS = {
|
|
|
747
747
|
features: ["reference-image"],
|
|
748
748
|
resolutions: ["2K", "4K", "8K"],
|
|
749
749
|
pricing: [
|
|
750
|
-
{ identifier: "topaz-image-upscale", credits:
|
|
751
|
-
{ identifier: "topaz-image-upscale:4K", credits:
|
|
752
|
-
{ identifier: "topaz-image-upscale:8K", credits:
|
|
750
|
+
{ identifier: "topaz-image-upscale", credits: 25, note: "2K default" },
|
|
751
|
+
{ identifier: "topaz-image-upscale:4K", credits: 50, note: "4K" },
|
|
752
|
+
{ identifier: "topaz-image-upscale:8K", credits: 100, note: "8K" }
|
|
753
753
|
]
|
|
754
754
|
}
|
|
755
755
|
};
|
|
@@ -766,7 +766,7 @@ var VIDEO_MODELS = {
|
|
|
766
766
|
useCases: ["realistic", "motion", "narrative"],
|
|
767
767
|
features: ["end-frame"],
|
|
768
768
|
durations: [5],
|
|
769
|
-
pricing: [{ identifier: "minimax", credits:
|
|
769
|
+
pricing: [{ identifier: "minimax", credits: 143, note: "5s, 1080p" }]
|
|
770
770
|
},
|
|
771
771
|
"hailuo-2.3-pro": {
|
|
772
772
|
id: "hailuo-2.3-pro",
|
|
@@ -781,9 +781,9 @@ var VIDEO_MODELS = {
|
|
|
781
781
|
durations: [6, 10],
|
|
782
782
|
resolutions: ["768P", "1080P"],
|
|
783
783
|
pricing: [
|
|
784
|
-
{ identifier: "hailuo-2.3-pro", credits:
|
|
785
|
-
{ identifier: "hailuo-2.3-pro:6s", credits:
|
|
786
|
-
{ identifier: "hailuo-2.3-pro:10s", credits:
|
|
784
|
+
{ identifier: "hailuo-2.3-pro", credits: 200, note: "10s default" },
|
|
785
|
+
{ identifier: "hailuo-2.3-pro:6s", credits: 130, note: "6s" },
|
|
786
|
+
{ identifier: "hailuo-2.3-pro:10s", credits: 200, note: "10s" }
|
|
787
787
|
]
|
|
788
788
|
},
|
|
789
789
|
"hailuo-2.3": {
|
|
@@ -799,9 +799,9 @@ var VIDEO_MODELS = {
|
|
|
799
799
|
useCases: ["realistic", "cheap"],
|
|
800
800
|
durations: [6, 10],
|
|
801
801
|
pricing: [
|
|
802
|
-
{ identifier: "hailuo-2.3", credits:
|
|
803
|
-
{ identifier: "hailuo-2.3:6s", credits:
|
|
804
|
-
{ identifier: "hailuo-2.3:10s", credits:
|
|
802
|
+
{ identifier: "hailuo-2.3", credits: 75, note: "6s default" },
|
|
803
|
+
{ identifier: "hailuo-2.3:6s", credits: 80, note: "6s" },
|
|
804
|
+
{ identifier: "hailuo-2.3:10s", credits: 130, note: "10s" }
|
|
805
805
|
]
|
|
806
806
|
},
|
|
807
807
|
"hailuo-standard": {
|
|
@@ -817,9 +817,9 @@ var VIDEO_MODELS = {
|
|
|
817
817
|
durations: [6, 10],
|
|
818
818
|
resolutions: ["512P", "768P"],
|
|
819
819
|
pricing: [
|
|
820
|
-
{ identifier: "hailuo-standard", credits:
|
|
821
|
-
{ identifier: "hailuo-standard:6s", credits:
|
|
822
|
-
{ identifier: "hailuo-standard:10s", credits:
|
|
820
|
+
{ identifier: "hailuo-standard", credits: 75, note: "6s default" },
|
|
821
|
+
{ identifier: "hailuo-standard:6s", credits: 80, note: "6s" },
|
|
822
|
+
{ identifier: "hailuo-standard:10s", credits: 130, note: "10s" }
|
|
823
823
|
]
|
|
824
824
|
},
|
|
825
825
|
// ── Google VEO ──
|
|
@@ -839,8 +839,8 @@ var VIDEO_MODELS = {
|
|
|
839
839
|
// KIE's /api/v1/veo/get-4k-video endpoint (worker handleImageToVideo / handleTextToVideo).
|
|
840
840
|
resolutions: ["720p", "1080p", "4k"],
|
|
841
841
|
pricing: [
|
|
842
|
-
{ identifier: "veo3", credits:
|
|
843
|
-
{ identifier: "veo3:4k", credits:
|
|
842
|
+
{ identifier: "veo3", credits: 1e3, note: "4/6/8s with audio (flat per-generation)" },
|
|
843
|
+
{ identifier: "veo3:4k", credits: 930, note: "4K (base 1080p \u2192 get-4k-video)" }
|
|
844
844
|
],
|
|
845
845
|
featured: true
|
|
846
846
|
},
|
|
@@ -858,9 +858,9 @@ var VIDEO_MODELS = {
|
|
|
858
858
|
aspectRatios: VIDEO_RATIOS_HV,
|
|
859
859
|
resolutions: ["720p", "1080p", "4k"],
|
|
860
860
|
pricing: [
|
|
861
|
-
{ identifier: "veo3.1", credits:
|
|
862
|
-
{ identifier: "veo3.1:1080p", credits:
|
|
863
|
-
{ identifier: "veo3.1:4k", credits:
|
|
861
|
+
{ identifier: "veo3.1", credits: 150, note: "4/6/8s with audio @ 720p (flat)" },
|
|
862
|
+
{ identifier: "veo3.1:1080p", credits: 170, note: "4/6/8s with audio @ 1080p (flat)" },
|
|
863
|
+
{ identifier: "veo3.1:4k", credits: 450, note: "4K (base 1080p \u2192 get-4k-video)" }
|
|
864
864
|
],
|
|
865
865
|
featured: true
|
|
866
866
|
},
|
|
@@ -878,9 +878,9 @@ var VIDEO_MODELS = {
|
|
|
878
878
|
aspectRatios: VIDEO_RATIOS_HV,
|
|
879
879
|
resolutions: ["720p", "1080p", "4k"],
|
|
880
880
|
pricing: [
|
|
881
|
-
{ identifier: "veo3_lite", credits:
|
|
882
|
-
{ identifier: "veo3_lite:1080p", credits:
|
|
883
|
-
{ identifier: "veo3_lite:4k", credits:
|
|
881
|
+
{ identifier: "veo3_lite", credits: 75, note: "4/6/8s with audio @ 720p (flat)" },
|
|
882
|
+
{ identifier: "veo3_lite:1080p", credits: 90, note: "4/6/8s with audio @ 1080p (flat)" },
|
|
883
|
+
{ identifier: "veo3_lite:4k", credits: 380, note: "4K (base 1080p \u2192 get-4k-video)" }
|
|
884
884
|
],
|
|
885
885
|
featured: false
|
|
886
886
|
},
|
|
@@ -899,17 +899,17 @@ var VIDEO_MODELS = {
|
|
|
899
899
|
resolutions: ["720p", "1080p", "4k"],
|
|
900
900
|
durations: [4, 6, 8, 10],
|
|
901
901
|
pricing: [
|
|
902
|
-
{ identifier: "gemini-omni-video", credits:
|
|
903
|
-
{ identifier: "gemini-omni-video:4", credits:
|
|
904
|
-
{ identifier: "gemini-omni-video:6", credits:
|
|
905
|
-
{ identifier: "gemini-omni-video:8", credits:
|
|
906
|
-
{ identifier: "gemini-omni-video:10", credits:
|
|
907
|
-
{ identifier: "gemini-omni-video:4k:4", credits:
|
|
908
|
-
{ identifier: "gemini-omni-video:4k:6", credits:
|
|
909
|
-
{ identifier: "gemini-omni-video:4k:8", credits:
|
|
910
|
-
{ identifier: "gemini-omni-video:4k:10", credits:
|
|
911
|
-
{ identifier: "gemini-omni-video:vref", credits:
|
|
912
|
-
{ identifier: "gemini-omni-video:4k:vref", credits:
|
|
902
|
+
{ identifier: "gemini-omni-video", credits: 315, note: "default \u2014 720p/1080p 4s" },
|
|
903
|
+
{ identifier: "gemini-omni-video:4", credits: 230, note: "720p/1080p 4s" },
|
|
904
|
+
{ identifier: "gemini-omni-video:6", credits: 300, note: "720p/1080p 6s" },
|
|
905
|
+
{ identifier: "gemini-omni-video:8", credits: 380, note: "720p/1080p 8s" },
|
|
906
|
+
{ identifier: "gemini-omni-video:10", credits: 450, note: "720p/1080p 10s" },
|
|
907
|
+
{ identifier: "gemini-omni-video:4k:4", credits: 530, note: "4K 4s" },
|
|
908
|
+
{ identifier: "gemini-omni-video:4k:6", credits: 600, note: "4K 6s" },
|
|
909
|
+
{ identifier: "gemini-omni-video:4k:8", credits: 680, note: "4K 8s" },
|
|
910
|
+
{ identifier: "gemini-omni-video:4k:10", credits: 750, note: "4K 10s" },
|
|
911
|
+
{ identifier: "gemini-omni-video:vref", credits: 600, note: "video-edit 720p/1080p" },
|
|
912
|
+
{ identifier: "gemini-omni-video:4k:vref", credits: 900, note: "video-edit 4K" }
|
|
913
913
|
]
|
|
914
914
|
},
|
|
915
915
|
// ── Kling ──
|
|
@@ -926,11 +926,11 @@ var VIDEO_MODELS = {
|
|
|
926
926
|
aspectRatios: VIDEO_RATIOS_HVS,
|
|
927
927
|
durations: [5, 10],
|
|
928
928
|
pricing: [
|
|
929
|
-
{ identifier: "kling", credits:
|
|
930
|
-
{ identifier: "kling:5s", credits:
|
|
931
|
-
{ identifier: "kling:10s", credits:
|
|
932
|
-
{ identifier: "kling:5s:audio", credits:
|
|
933
|
-
{ identifier: "kling:10s:audio", credits:
|
|
929
|
+
{ identifier: "kling", credits: 280, note: "10s no audio default" },
|
|
930
|
+
{ identifier: "kling:5s", credits: 138, note: "5s no audio" },
|
|
931
|
+
{ identifier: "kling:10s", credits: 275, note: "10s no audio" },
|
|
932
|
+
{ identifier: "kling:5s:audio", credits: 275, note: "5s with audio" },
|
|
933
|
+
{ identifier: "kling:10s:audio", credits: 550, note: "10s with audio" }
|
|
934
934
|
]
|
|
935
935
|
},
|
|
936
936
|
"kling-turbo": {
|
|
@@ -945,9 +945,9 @@ var VIDEO_MODELS = {
|
|
|
945
945
|
features: ["end-frame"],
|
|
946
946
|
durations: [5, 10],
|
|
947
947
|
pricing: [
|
|
948
|
-
{ identifier: "kling-turbo", credits:
|
|
949
|
-
{ identifier: "kling-turbo:5s", credits:
|
|
950
|
-
{ identifier: "kling-turbo:10s", credits:
|
|
948
|
+
{ identifier: "kling-turbo", credits: 125, note: "5s default" },
|
|
949
|
+
{ identifier: "kling-turbo:5s", credits: 110 },
|
|
950
|
+
{ identifier: "kling-turbo:10s", credits: 210 }
|
|
951
951
|
]
|
|
952
952
|
},
|
|
953
953
|
"kling-3.0": {
|
|
@@ -963,13 +963,13 @@ var VIDEO_MODELS = {
|
|
|
963
963
|
durations: [3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15],
|
|
964
964
|
resolutions: ["720P", "1080P"],
|
|
965
965
|
pricing: [
|
|
966
|
-
{ identifier: "kling-3.0", credits:
|
|
967
|
-
{ identifier: "kling-3.0:5s", credits:
|
|
968
|
-
{ identifier: "kling-3.0:10s", credits:
|
|
969
|
-
{ identifier: "kling-3.0:15s", credits:
|
|
970
|
-
{ identifier: "kling-3.0:5s:audio", credits:
|
|
971
|
-
{ identifier: "kling-3.0:10s:audio", credits:
|
|
972
|
-
{ identifier: "kling-3.0:15s:audio", credits:
|
|
966
|
+
{ identifier: "kling-3.0", credits: 500, note: "5s 1080p with audio" },
|
|
967
|
+
{ identifier: "kling-3.0:5s", credits: 270, note: "5s 1080p no audio" },
|
|
968
|
+
{ identifier: "kling-3.0:10s", credits: 680, note: "10s 1080p no audio" },
|
|
969
|
+
{ identifier: "kling-3.0:15s", credits: 1020, note: "15s 1080p no audio" },
|
|
970
|
+
{ identifier: "kling-3.0:5s:audio", credits: 338, note: "5s 1080p with audio" },
|
|
971
|
+
{ identifier: "kling-3.0:10s:audio", credits: 1e3, note: "10s 1080p with audio" },
|
|
972
|
+
{ identifier: "kling-3.0:15s:audio", credits: 1500, note: "15s 1080p with audio" }
|
|
973
973
|
],
|
|
974
974
|
featured: true
|
|
975
975
|
},
|
|
@@ -984,9 +984,9 @@ var VIDEO_MODELS = {
|
|
|
984
984
|
useCases: ["cinematic", "premium"],
|
|
985
985
|
durations: [5, 10],
|
|
986
986
|
pricing: [
|
|
987
|
-
{ identifier: "kling-master", credits:
|
|
988
|
-
{ identifier: "kling-master:5s", credits:
|
|
989
|
-
{ identifier: "kling-master:10s", credits:
|
|
987
|
+
{ identifier: "kling-master", credits: 400, note: "5s default" },
|
|
988
|
+
{ identifier: "kling-master:5s", credits: 400 },
|
|
989
|
+
{ identifier: "kling-master:10s", credits: 800 }
|
|
990
990
|
]
|
|
991
991
|
},
|
|
992
992
|
"kling-3-omni": {
|
|
@@ -1003,10 +1003,10 @@ var VIDEO_MODELS = {
|
|
|
1003
1003
|
resolutions: ["720p", "1080p"],
|
|
1004
1004
|
aspectRatios: VIDEO_RATIOS_HVS,
|
|
1005
1005
|
pricing: [
|
|
1006
|
-
{ identifier: "kling-3-omni", credits:
|
|
1007
|
-
{ identifier: "kling-3-omni:5s", credits:
|
|
1008
|
-
{ identifier: "kling-3-omni:10s", credits:
|
|
1009
|
-
{ identifier: "kling-3-omni:15s", credits:
|
|
1006
|
+
{ identifier: "kling-3-omni", credits: 250, note: "5s 720p default" },
|
|
1007
|
+
{ identifier: "kling-3-omni:5s", credits: 250 },
|
|
1008
|
+
{ identifier: "kling-3-omni:10s", credits: 500 },
|
|
1009
|
+
{ identifier: "kling-3-omni:15s", credits: 750 }
|
|
1010
1010
|
]
|
|
1011
1011
|
},
|
|
1012
1012
|
// ── xAI Grok video ──
|
|
@@ -1023,10 +1023,10 @@ var VIDEO_MODELS = {
|
|
|
1023
1023
|
durations: [6, 10],
|
|
1024
1024
|
resolutions: ["480p", "720p"],
|
|
1025
1025
|
pricing: [
|
|
1026
|
-
{ identifier: "grok-i2v", credits:
|
|
1027
|
-
{ identifier: "grok-i2v:6s", credits:
|
|
1028
|
-
{ identifier: "grok-i2v:10s", credits:
|
|
1029
|
-
{ identifier: "grok-i2v:15s", credits:
|
|
1026
|
+
{ identifier: "grok-i2v", credits: 150, note: "6s default" },
|
|
1027
|
+
{ identifier: "grok-i2v:6s", credits: 50 },
|
|
1028
|
+
{ identifier: "grok-i2v:10s", credits: 80 },
|
|
1029
|
+
{ identifier: "grok-i2v:15s", credits: 100 }
|
|
1030
1030
|
]
|
|
1031
1031
|
},
|
|
1032
1032
|
// xAI Grok Imagine Video 1.5 — KIE image-to-video (image required). True
|
|
@@ -1051,11 +1051,11 @@ var VIDEO_MODELS = {
|
|
|
1051
1051
|
durations: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15],
|
|
1052
1052
|
resolutions: ["480p", "720p"],
|
|
1053
1053
|
pricing: [
|
|
1054
|
-
{ identifier: "grok-imagine-video-1.5", credits:
|
|
1055
|
-
{ identifier: "grok-imagine-video-1.5:8s:480p", credits:
|
|
1056
|
-
{ identifier: "grok-imagine-video-1.5:8s:720p", credits:
|
|
1057
|
-
{ identifier: "grok-imagine-video-1.5:15s:480p", credits:
|
|
1058
|
-
{ identifier: "grok-imagine-video-1.5:15s:720p", credits:
|
|
1054
|
+
{ identifier: "grok-imagine-video-1.5", credits: 295, note: "default 8s 480p \u2014 see :Ns:res variants" },
|
|
1055
|
+
{ identifier: "grok-imagine-video-1.5:8s:480p", credits: 300, note: "8s 480p" },
|
|
1056
|
+
{ identifier: "grok-imagine-video-1.5:8s:720p", credits: 510, note: "8s 720p" },
|
|
1057
|
+
{ identifier: "grok-imagine-video-1.5:15s:480p", credits: 550, note: "15s 480p (max)" },
|
|
1058
|
+
{ identifier: "grok-imagine-video-1.5:15s:720p", credits: 950, note: "15s 720p (max)" }
|
|
1059
1059
|
]
|
|
1060
1060
|
},
|
|
1061
1061
|
// ── Bytedance Seedance ──
|
|
@@ -1072,10 +1072,10 @@ var VIDEO_MODELS = {
|
|
|
1072
1072
|
durations: [4, 8, 12],
|
|
1073
1073
|
resolutions: ["480p", "720p", "1080p"],
|
|
1074
1074
|
pricing: [
|
|
1075
|
-
{ identifier: "seedance", credits:
|
|
1076
|
-
{ identifier: "seedance:4s", credits:
|
|
1077
|
-
{ identifier: "seedance:8s", credits:
|
|
1078
|
-
{ identifier: "seedance:12s", credits:
|
|
1075
|
+
{ identifier: "seedance", credits: 250, note: "8s default" },
|
|
1076
|
+
{ identifier: "seedance:4s", credits: 40 },
|
|
1077
|
+
{ identifier: "seedance:8s", credits: 70 },
|
|
1078
|
+
{ identifier: "seedance:12s", credits: 150 }
|
|
1079
1079
|
],
|
|
1080
1080
|
mcpHidden: true
|
|
1081
1081
|
},
|
|
@@ -1093,15 +1093,15 @@ var VIDEO_MODELS = {
|
|
|
1093
1093
|
durations: [4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15],
|
|
1094
1094
|
resolutions: ["480p", "720p", "1080p", "4k"],
|
|
1095
1095
|
pricing: [
|
|
1096
|
-
{ identifier: "seedance-2", credits:
|
|
1097
|
-
{ identifier: "seedance-2:8s:480p", credits:
|
|
1098
|
-
{ identifier: "seedance-2:8s:720p", credits:
|
|
1099
|
-
{ identifier: "seedance-2:8s:1080p", credits:
|
|
1100
|
-
{ identifier: "seedance-2:8s:480p-ref", credits:
|
|
1101
|
-
{ identifier: "seedance-2:8s:720p-ref", credits:
|
|
1102
|
-
{ identifier: "seedance-2:8s:1080p-ref", credits:
|
|
1103
|
-
{ identifier: "seedance-2:8s:4k", credits:
|
|
1104
|
-
{ identifier: "seedance-2:8s:4k-ref", credits:
|
|
1096
|
+
{ identifier: "seedance-2", credits: 380, note: "default \u2014 see :NsR variants for exact" },
|
|
1097
|
+
{ identifier: "seedance-2:8s:480p", credits: 380, note: "8s 480p" },
|
|
1098
|
+
{ identifier: "seedance-2:8s:720p", credits: 820, note: "8s 720p" },
|
|
1099
|
+
{ identifier: "seedance-2:8s:1080p", credits: 2040, note: "8s 1080p" },
|
|
1100
|
+
{ identifier: "seedance-2:8s:480p-ref", credits: 230, note: "8s 480p with reference" },
|
|
1101
|
+
{ identifier: "seedance-2:8s:720p-ref", credits: 500, note: "8s 720p with reference" },
|
|
1102
|
+
{ identifier: "seedance-2:8s:1080p-ref", credits: 1240, note: "8s 1080p with reference" },
|
|
1103
|
+
{ identifier: "seedance-2:8s:4k", credits: 4160, note: "8s 4k" },
|
|
1104
|
+
{ identifier: "seedance-2:8s:4k-ref", credits: 2560, note: "8s 4k with reference" }
|
|
1105
1105
|
]
|
|
1106
1106
|
},
|
|
1107
1107
|
"seedance-2-fast": {
|
|
@@ -1118,11 +1118,11 @@ var VIDEO_MODELS = {
|
|
|
1118
1118
|
durations: [4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15],
|
|
1119
1119
|
resolutions: ["480p", "720p"],
|
|
1120
1120
|
pricing: [
|
|
1121
|
-
{ identifier: "seedance-2-fast", credits:
|
|
1122
|
-
{ identifier: "seedance-2-fast:8s:480p", credits:
|
|
1123
|
-
{ identifier: "seedance-2-fast:8s:720p", credits:
|
|
1124
|
-
{ identifier: "seedance-2-fast:8s:480p-ref", credits:
|
|
1125
|
-
{ identifier: "seedance-2-fast:8s:720p-ref", credits:
|
|
1121
|
+
{ identifier: "seedance-2-fast", credits: 310, note: "default \u2014 see :NsR variants" },
|
|
1122
|
+
{ identifier: "seedance-2-fast:8s:480p", credits: 310 },
|
|
1123
|
+
{ identifier: "seedance-2-fast:8s:720p", credits: 660 },
|
|
1124
|
+
{ identifier: "seedance-2-fast:8s:480p-ref", credits: 180 },
|
|
1125
|
+
{ identifier: "seedance-2-fast:8s:720p-ref", credits: 400 }
|
|
1126
1126
|
]
|
|
1127
1127
|
},
|
|
1128
1128
|
"seedance-2-mini": {
|
|
@@ -1139,11 +1139,11 @@ var VIDEO_MODELS = {
|
|
|
1139
1139
|
durations: [4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15],
|
|
1140
1140
|
resolutions: ["480p", "720p"],
|
|
1141
1141
|
pricing: [
|
|
1142
|
-
{ identifier: "seedance-2-mini", credits:
|
|
1143
|
-
{ identifier: "seedance-2-mini:8s:480p", credits:
|
|
1144
|
-
{ identifier: "seedance-2-mini:8s:720p", credits:
|
|
1145
|
-
{ identifier: "seedance-2-mini:8s:480p-ref", credits:
|
|
1146
|
-
{ identifier: "seedance-2-mini:8s:720p-ref", credits:
|
|
1142
|
+
{ identifier: "seedance-2-mini", credits: 190, note: "default \u2014 see :NsR variants" },
|
|
1143
|
+
{ identifier: "seedance-2-mini:8s:480p", credits: 190 },
|
|
1144
|
+
{ identifier: "seedance-2-mini:8s:720p", credits: 410 },
|
|
1145
|
+
{ identifier: "seedance-2-mini:8s:480p-ref", credits: 120 },
|
|
1146
|
+
{ identifier: "seedance-2-mini:8s:720p-ref", credits: 250 }
|
|
1147
1147
|
]
|
|
1148
1148
|
},
|
|
1149
1149
|
// ── Wan ──
|
|
@@ -1159,10 +1159,10 @@ var VIDEO_MODELS = {
|
|
|
1159
1159
|
durations: [5, 10, 15],
|
|
1160
1160
|
resolutions: ["720p", "1080p"],
|
|
1161
1161
|
pricing: [
|
|
1162
|
-
{ identifier: "wan-i2v", credits:
|
|
1163
|
-
{ identifier: "wan-i2v:5s", credits:
|
|
1164
|
-
{ identifier: "wan-i2v:10s", credits:
|
|
1165
|
-
{ identifier: "wan-i2v:15s", credits:
|
|
1162
|
+
{ identifier: "wan-i2v", credits: 175, note: "5s 720p default" },
|
|
1163
|
+
{ identifier: "wan-i2v:5s", credits: 180 },
|
|
1164
|
+
{ identifier: "wan-i2v:10s", credits: 350 },
|
|
1165
|
+
{ identifier: "wan-i2v:15s", credits: 530 }
|
|
1166
1166
|
]
|
|
1167
1167
|
},
|
|
1168
1168
|
"wan-turbo": {
|
|
@@ -1180,8 +1180,8 @@ var VIDEO_MODELS = {
|
|
|
1180
1180
|
// Different KIE endpoints (i2v vs t2v) → different costs under
|
|
1181
1181
|
// composite ids. Route picks endpoint based on whether image was supplied.
|
|
1182
1182
|
pricing: [
|
|
1183
|
-
{ identifier: "wan-turbo", credits:
|
|
1184
|
-
{ identifier: "wan-turbo-t2v", credits:
|
|
1183
|
+
{ identifier: "wan-turbo", credits: 100, note: "i2v 5s 480p" },
|
|
1184
|
+
{ identifier: "wan-turbo-t2v", credits: 200, note: "t2v 5s 720p" }
|
|
1185
1185
|
]
|
|
1186
1186
|
},
|
|
1187
1187
|
"wan": {
|
|
@@ -1198,8 +1198,8 @@ var VIDEO_MODELS = {
|
|
|
1198
1198
|
durations: [5],
|
|
1199
1199
|
resolutions: ["720p", "1080p"],
|
|
1200
1200
|
pricing: [
|
|
1201
|
-
{ identifier: "wan", credits:
|
|
1202
|
-
{ identifier: "wan-t2v", credits:
|
|
1201
|
+
{ identifier: "wan", credits: 175, note: "v2v 5s 720p" },
|
|
1202
|
+
{ identifier: "wan-t2v", credits: 270, note: "t2v 5s 1080p" }
|
|
1203
1203
|
]
|
|
1204
1204
|
},
|
|
1205
1205
|
"wan-flash": {
|
|
@@ -1211,7 +1211,7 @@ var VIDEO_MODELS = {
|
|
|
1211
1211
|
series: "Wan",
|
|
1212
1212
|
description: "Faster Wan V2V variant.",
|
|
1213
1213
|
useCases: ["v2v", "fast"],
|
|
1214
|
-
pricing: [{ identifier: "wan-flash", credits:
|
|
1214
|
+
pricing: [{ identifier: "wan-flash", credits: 100 }]
|
|
1215
1215
|
},
|
|
1216
1216
|
"wan-videoedit": {
|
|
1217
1217
|
id: "wan-videoedit",
|
|
@@ -1223,7 +1223,7 @@ var VIDEO_MODELS = {
|
|
|
1223
1223
|
description: "Guided video editing with optional reference image, audio control, and prompt expansion.",
|
|
1224
1224
|
useCases: ["v2v", "restyle", "reference"],
|
|
1225
1225
|
resolutions: ["720p", "1080p"],
|
|
1226
|
-
pricing: [{ identifier: "wan-videoedit", credits:
|
|
1226
|
+
pricing: [{ identifier: "wan-videoedit", credits: 320 }]
|
|
1227
1227
|
},
|
|
1228
1228
|
// ── Wan 2.7 ──
|
|
1229
1229
|
"wan-2.7": {
|
|
@@ -1239,9 +1239,9 @@ var VIDEO_MODELS = {
|
|
|
1239
1239
|
aspectRatios: WAN_27_IMAGE_RATIOS,
|
|
1240
1240
|
resolutions: ["1K", "2K", "4K"],
|
|
1241
1241
|
pricing: [
|
|
1242
|
-
{ identifier: "wan-2.7", credits:
|
|
1243
|
-
{ identifier: "wan-2.7:2K", credits:
|
|
1244
|
-
{ identifier: "wan-2.7:4K", credits:
|
|
1242
|
+
{ identifier: "wan-2.7", credits: 20, note: "1K base" },
|
|
1243
|
+
{ identifier: "wan-2.7:2K", credits: 40, note: "2K" },
|
|
1244
|
+
{ identifier: "wan-2.7:4K", credits: 80, note: "4K" }
|
|
1245
1245
|
]
|
|
1246
1246
|
},
|
|
1247
1247
|
"wan-2.7-pro": {
|
|
@@ -1256,9 +1256,9 @@ var VIDEO_MODELS = {
|
|
|
1256
1256
|
aspectRatios: WAN_27_IMAGE_RATIOS,
|
|
1257
1257
|
resolutions: ["1K", "2K", "4K"],
|
|
1258
1258
|
pricing: [
|
|
1259
|
-
{ identifier: "wan-2.7-pro", credits:
|
|
1260
|
-
{ identifier: "wan-2.7-pro:2K", credits:
|
|
1261
|
-
{ identifier: "wan-2.7-pro:4K", credits:
|
|
1259
|
+
{ identifier: "wan-2.7-pro", credits: 120, note: "1K base" },
|
|
1260
|
+
{ identifier: "wan-2.7-pro:2K", credits: 60, note: "2K" },
|
|
1261
|
+
{ identifier: "wan-2.7-pro:4K", credits: 120, note: "4K" }
|
|
1262
1262
|
]
|
|
1263
1263
|
},
|
|
1264
1264
|
"wan-2.7-i2v": {
|
|
@@ -1274,7 +1274,7 @@ var VIDEO_MODELS = {
|
|
|
1274
1274
|
resolutions: ["720p", "1080p"],
|
|
1275
1275
|
features: ["end-frame"],
|
|
1276
1276
|
pricing: [
|
|
1277
|
-
{ identifier: "wan-2.7-i2v", credits:
|
|
1277
|
+
{ identifier: "wan-2.7-i2v", credits: 188, note: "5s 720p default" }
|
|
1278
1278
|
]
|
|
1279
1279
|
},
|
|
1280
1280
|
"wan-2.7-t2v": {
|
|
@@ -1290,7 +1290,7 @@ var VIDEO_MODELS = {
|
|
|
1290
1290
|
durations: [2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15],
|
|
1291
1291
|
resolutions: ["720p", "1080p"],
|
|
1292
1292
|
pricing: [
|
|
1293
|
-
{ identifier: "wan-2.7-t2v", credits:
|
|
1293
|
+
{ identifier: "wan-2.7-t2v", credits: 188, note: "5s 720p default" }
|
|
1294
1294
|
]
|
|
1295
1295
|
},
|
|
1296
1296
|
// ── HappyHorse (1.1 — ids kept version-less; repointed in place when KIE
|
|
@@ -1308,7 +1308,7 @@ var VIDEO_MODELS = {
|
|
|
1308
1308
|
durations: [3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15],
|
|
1309
1309
|
resolutions: ["720p", "1080p"],
|
|
1310
1310
|
pricing: [
|
|
1311
|
-
{ identifier: "happyhorse", credits:
|
|
1311
|
+
{ identifier: "happyhorse", credits: 282, note: "5s 720p default \u2014 per-second: ~5.7 cr/s @720p, ~7.3 cr/s @1080p" }
|
|
1312
1312
|
]
|
|
1313
1313
|
},
|
|
1314
1314
|
"happyhorse-i2v": {
|
|
@@ -1323,7 +1323,7 @@ var VIDEO_MODELS = {
|
|
|
1323
1323
|
durations: [3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15],
|
|
1324
1324
|
resolutions: ["720p", "1080p"],
|
|
1325
1325
|
pricing: [
|
|
1326
|
-
{ identifier: "happyhorse-i2v", credits:
|
|
1326
|
+
{ identifier: "happyhorse-i2v", credits: 282, note: "5s 720p default \u2014 per-second: ~5.7 cr/s @720p, ~7.3 cr/s @1080p" }
|
|
1327
1327
|
]
|
|
1328
1328
|
},
|
|
1329
1329
|
"happyhorse-ref2v": {
|
|
@@ -1340,7 +1340,7 @@ var VIDEO_MODELS = {
|
|
|
1340
1340
|
resolutions: ["720p", "1080p"],
|
|
1341
1341
|
features: ["reference-image"],
|
|
1342
1342
|
pricing: [
|
|
1343
|
-
{ identifier: "happyhorse-ref2v", credits:
|
|
1343
|
+
{ identifier: "happyhorse-ref2v", credits: 282, note: "5s 720p default \u2014 per-second: ~5.7 cr/s @720p, ~7.3 cr/s @1080p" }
|
|
1344
1344
|
]
|
|
1345
1345
|
},
|
|
1346
1346
|
"happyhorse-edit": {
|
|
@@ -1354,7 +1354,7 @@ var VIDEO_MODELS = {
|
|
|
1354
1354
|
useCases: ["v2v", "restyle"],
|
|
1355
1355
|
resolutions: ["720p", "1080p"],
|
|
1356
1356
|
pricing: [
|
|
1357
|
-
{ identifier: "happyhorse-edit", credits:
|
|
1357
|
+
{ identifier: "happyhorse-edit", credits: 350, note: "720p default (5s-equivalent flat rate)" }
|
|
1358
1358
|
]
|
|
1359
1359
|
},
|
|
1360
1360
|
// ── Bytedance video lite/pro ──
|
|
@@ -1371,7 +1371,7 @@ var VIDEO_MODELS = {
|
|
|
1371
1371
|
aspectRatios: VIDEO_RATIOS_HVS,
|
|
1372
1372
|
durations: [5, 10],
|
|
1373
1373
|
resolutions: ["480p", "720p", "1080p"],
|
|
1374
|
-
pricing: [{ identifier: "bytedance-lite", credits:
|
|
1374
|
+
pricing: [{ identifier: "bytedance-lite", credits: 57 }]
|
|
1375
1375
|
},
|
|
1376
1376
|
"bytedance-pro": {
|
|
1377
1377
|
id: "bytedance-pro",
|
|
@@ -1385,7 +1385,7 @@ var VIDEO_MODELS = {
|
|
|
1385
1385
|
aspectRatios: VIDEO_RATIOS_HVS,
|
|
1386
1386
|
durations: [5, 10],
|
|
1387
1387
|
resolutions: ["480p", "720p", "1080p"],
|
|
1388
|
-
pricing: [{ identifier: "bytedance-pro", credits:
|
|
1388
|
+
pricing: [{ identifier: "bytedance-pro", credits: 175 }]
|
|
1389
1389
|
},
|
|
1390
1390
|
"bytedance-pro-fast": {
|
|
1391
1391
|
id: "bytedance-pro-fast",
|
|
@@ -1398,7 +1398,7 @@ var VIDEO_MODELS = {
|
|
|
1398
1398
|
useCases: ["fast", "motion"],
|
|
1399
1399
|
durations: [5, 10],
|
|
1400
1400
|
resolutions: ["720p", "1080p"],
|
|
1401
|
-
pricing: [{ identifier: "bytedance-pro-fast", credits:
|
|
1401
|
+
pricing: [{ identifier: "bytedance-pro-fast", credits: 90 }]
|
|
1402
1402
|
},
|
|
1403
1403
|
// ── OpenAI Sora ──
|
|
1404
1404
|
// (Sora2 / Sora2-Pro are listed in KIE models but not in STATIC_CREDIT_COSTS;
|
|
@@ -1417,7 +1417,7 @@ var VIDEO_MODELS = {
|
|
|
1417
1417
|
useCases: ["motion", "narrative"],
|
|
1418
1418
|
durations: [5, 10],
|
|
1419
1419
|
resolutions: ["720p", "1080p"],
|
|
1420
|
-
pricing: [{ identifier: "runway-kie", credits:
|
|
1420
|
+
pricing: [{ identifier: "runway-kie", credits: 30, note: "5s 720p" }]
|
|
1421
1421
|
},
|
|
1422
1422
|
"runway-aleph": {
|
|
1423
1423
|
id: "runway-aleph",
|
|
@@ -1428,7 +1428,7 @@ var VIDEO_MODELS = {
|
|
|
1428
1428
|
series: "Runway",
|
|
1429
1429
|
description: "Runway Aleph \u2014 video-to-video conversion.",
|
|
1430
1430
|
useCases: ["v2v", "restyle"],
|
|
1431
|
-
pricing: [{ identifier: "runway-aleph", credits:
|
|
1431
|
+
pricing: [{ identifier: "runway-aleph", credits: 350, note: "5s clip" }]
|
|
1432
1432
|
},
|
|
1433
1433
|
// ── Extend / Upscale ──
|
|
1434
1434
|
"veo-extend": {
|
|
@@ -1441,8 +1441,8 @@ var VIDEO_MODELS = {
|
|
|
1441
1441
|
description: "Extend an existing VEO 3.1 clip by another segment.",
|
|
1442
1442
|
useCases: ["extend"],
|
|
1443
1443
|
pricing: [
|
|
1444
|
-
{ identifier: "veo-extend", credits:
|
|
1445
|
-
{ identifier: "veo-extend:quality", credits:
|
|
1444
|
+
{ identifier: "veo-extend", credits: 190, note: "VEO 3.1 Fast default" },
|
|
1445
|
+
{ identifier: "veo-extend:quality", credits: 790, note: "VEO 3.1 Quality" }
|
|
1446
1446
|
]
|
|
1447
1447
|
},
|
|
1448
1448
|
"runway-extend": {
|
|
@@ -1454,7 +1454,7 @@ var VIDEO_MODELS = {
|
|
|
1454
1454
|
series: "Runway",
|
|
1455
1455
|
description: "Extend a Runway video by another clip.",
|
|
1456
1456
|
useCases: ["extend"],
|
|
1457
|
-
pricing: [{ identifier: "runway-extend", credits:
|
|
1457
|
+
pricing: [{ identifier: "runway-extend", credits: 320 }]
|
|
1458
1458
|
},
|
|
1459
1459
|
"seedance-2-extend": {
|
|
1460
1460
|
id: "seedance-2-extend",
|
|
@@ -1468,10 +1468,10 @@ var VIDEO_MODELS = {
|
|
|
1468
1468
|
durations: [4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15],
|
|
1469
1469
|
resolutions: ["480p", "720p", "1080p"],
|
|
1470
1470
|
pricing: [
|
|
1471
|
-
{ identifier: "seedance-2-extend", credits:
|
|
1472
|
-
{ identifier: "seedance-2-extend:8s:480p", credits:
|
|
1473
|
-
{ identifier: "seedance-2-extend:8s:720p", credits:
|
|
1474
|
-
{ identifier: "seedance-2-extend:8s:1080p", credits:
|
|
1471
|
+
{ identifier: "seedance-2-extend", credits: 530, note: "default 8s 720p (ref-mode 50 + 3 stitch) \u2014 see :NsR variants" },
|
|
1472
|
+
{ identifier: "seedance-2-extend:8s:480p", credits: 260, note: "8s 480p (23+3)" },
|
|
1473
|
+
{ identifier: "seedance-2-extend:8s:720p", credits: 530, note: "8s 720p (50+3)" },
|
|
1474
|
+
{ identifier: "seedance-2-extend:8s:1080p", credits: 780, note: "8s 1080p (75+3)" }
|
|
1475
1475
|
]
|
|
1476
1476
|
},
|
|
1477
1477
|
"veo-1080p": {
|
|
@@ -1483,7 +1483,7 @@ var VIDEO_MODELS = {
|
|
|
1483
1483
|
series: "VEO",
|
|
1484
1484
|
description: "Upscale VEO output to 1080p.",
|
|
1485
1485
|
useCases: ["upscale"],
|
|
1486
|
-
pricing: [{ identifier: "veo-1080p", credits:
|
|
1486
|
+
pricing: [{ identifier: "veo-1080p", credits: 20 }]
|
|
1487
1487
|
},
|
|
1488
1488
|
"veo-4k": {
|
|
1489
1489
|
id: "veo-4k",
|
|
@@ -1494,7 +1494,7 @@ var VIDEO_MODELS = {
|
|
|
1494
1494
|
series: "VEO",
|
|
1495
1495
|
description: "Upscale VEO output to 4K.",
|
|
1496
1496
|
useCases: ["upscale", "high-res"],
|
|
1497
|
-
pricing: [{ identifier: "veo-4k", credits:
|
|
1497
|
+
pricing: [{ identifier: "veo-4k", credits: 380 }]
|
|
1498
1498
|
},
|
|
1499
1499
|
"topaz-video": {
|
|
1500
1500
|
id: "topaz-video",
|
|
@@ -1505,7 +1505,7 @@ var VIDEO_MODELS = {
|
|
|
1505
1505
|
series: "Topaz",
|
|
1506
1506
|
description: "High-quality video upscale and enhancement.",
|
|
1507
1507
|
useCases: ["upscale", "premium"],
|
|
1508
|
-
pricing: [{ identifier: "topaz-video", credits:
|
|
1508
|
+
pricing: [{ identifier: "topaz-video", credits: 190, note: "~5s clip" }]
|
|
1509
1509
|
},
|
|
1510
1510
|
// ── Motion transfer ──
|
|
1511
1511
|
"motion-transfer": {
|
|
@@ -1520,12 +1520,12 @@ var VIDEO_MODELS = {
|
|
|
1520
1520
|
durations: [5, 10, 15, 30],
|
|
1521
1521
|
resolutions: ["720p", "1080p"],
|
|
1522
1522
|
pricing: [
|
|
1523
|
-
{ identifier: "motion-transfer", credits:
|
|
1524
|
-
{ identifier: "motion-transfer:5s", credits:
|
|
1525
|
-
{ identifier: "motion-transfer:10s", credits:
|
|
1526
|
-
{ identifier: "motion-transfer:15s", credits:
|
|
1527
|
-
{ identifier: "motion-transfer:30s", credits:
|
|
1528
|
-
{ identifier: "motion-transfer:1080p:10s", credits:
|
|
1523
|
+
{ identifier: "motion-transfer", credits: 150, note: "10s 720p default" },
|
|
1524
|
+
{ identifier: "motion-transfer:5s", credits: 80 },
|
|
1525
|
+
{ identifier: "motion-transfer:10s", credits: 150 },
|
|
1526
|
+
{ identifier: "motion-transfer:15s", credits: 230 },
|
|
1527
|
+
{ identifier: "motion-transfer:30s", credits: 450 },
|
|
1528
|
+
{ identifier: "motion-transfer:1080p:10s", credits: 230 }
|
|
1529
1529
|
]
|
|
1530
1530
|
},
|
|
1531
1531
|
"kling-3.0-motion": {
|
|
@@ -1540,10 +1540,10 @@ var VIDEO_MODELS = {
|
|
|
1540
1540
|
durations: [5, 10, 15, 30],
|
|
1541
1541
|
resolutions: ["720p", "1080p"],
|
|
1542
1542
|
pricing: [
|
|
1543
|
-
{ identifier: "kling-3.0-motion", credits:
|
|
1544
|
-
{ identifier: "kling-3.0-motion:5s", credits:
|
|
1545
|
-
{ identifier: "kling-3.0-motion:10s", credits:
|
|
1546
|
-
{ identifier: "kling-3.0-motion:1080p:10s", credits:
|
|
1543
|
+
{ identifier: "kling-3.0-motion", credits: 300, note: "10s 720p default" },
|
|
1544
|
+
{ identifier: "kling-3.0-motion:5s", credits: 150 },
|
|
1545
|
+
{ identifier: "kling-3.0-motion:10s", credits: 300 },
|
|
1546
|
+
{ identifier: "kling-3.0-motion:1080p:10s", credits: 500 }
|
|
1547
1547
|
]
|
|
1548
1548
|
},
|
|
1549
1549
|
// ── Lip sync / talking-head ──
|
|
@@ -1556,7 +1556,7 @@ var VIDEO_MODELS = {
|
|
|
1556
1556
|
series: "Kling",
|
|
1557
1557
|
description: "Lip-sync a still portrait to driving audio. Standard quality.",
|
|
1558
1558
|
useCases: ["lip-sync", "talking-head"],
|
|
1559
|
-
pricing: [{ identifier: "kling-avatar", credits:
|
|
1559
|
+
pricing: [{ identifier: "kling-avatar", credits: 280, note: "~14s default" }]
|
|
1560
1560
|
},
|
|
1561
1561
|
"kling-avatar-pro": {
|
|
1562
1562
|
id: "kling-avatar-pro",
|
|
@@ -1567,7 +1567,7 @@ var VIDEO_MODELS = {
|
|
|
1567
1567
|
series: "Kling",
|
|
1568
1568
|
description: "Premium lip-sync \u2014 better mouth shape and timing.",
|
|
1569
1569
|
useCases: ["lip-sync", "talking-head", "premium"],
|
|
1570
|
-
pricing: [{ identifier: "kling-avatar-pro", credits:
|
|
1570
|
+
pricing: [{ identifier: "kling-avatar-pro", credits: 560 }]
|
|
1571
1571
|
},
|
|
1572
1572
|
"infinitalk": {
|
|
1573
1573
|
id: "infinitalk",
|
|
@@ -1580,9 +1580,9 @@ var VIDEO_MODELS = {
|
|
|
1580
1580
|
useCases: ["lip-sync", "talking-head"],
|
|
1581
1581
|
resolutions: ["480p", "720p"],
|
|
1582
1582
|
pricing: [
|
|
1583
|
-
{ identifier: "infinitalk", credits:
|
|
1584
|
-
{ identifier: "infinitalk:480p", credits:
|
|
1585
|
-
{ identifier: "infinitalk:720p", credits:
|
|
1583
|
+
{ identifier: "infinitalk", credits: 420, note: "720p default" },
|
|
1584
|
+
{ identifier: "infinitalk:480p", credits: 110 },
|
|
1585
|
+
{ identifier: "infinitalk:720p", credits: 420 }
|
|
1586
1586
|
]
|
|
1587
1587
|
},
|
|
1588
1588
|
"omnihuman-1-5": {
|
|
@@ -1596,10 +1596,10 @@ var VIDEO_MODELS = {
|
|
|
1596
1596
|
useCases: ["lip-sync", "talking-head", "premium"],
|
|
1597
1597
|
resolutions: ["720p", "1080p"],
|
|
1598
1598
|
pricing: [
|
|
1599
|
-
{ identifier: "omnihuman-1-5", credits:
|
|
1600
|
-
{ identifier: "omnihuman-1-5:15s", credits:
|
|
1601
|
-
{ identifier: "omnihuman-1-5:30s", credits:
|
|
1602
|
-
{ identifier: "omnihuman-1-5:60s", credits:
|
|
1599
|
+
{ identifier: "omnihuman-1-5", credits: 4050, note: "60s ceiling (no duration given)" },
|
|
1600
|
+
{ identifier: "omnihuman-1-5:15s", credits: 1020 },
|
|
1601
|
+
{ identifier: "omnihuman-1-5:30s", credits: 2030 },
|
|
1602
|
+
{ identifier: "omnihuman-1-5:60s", credits: 4050 }
|
|
1603
1603
|
]
|
|
1604
1604
|
},
|
|
1605
1605
|
"hailuo-avatar": {
|
|
@@ -1611,7 +1611,7 @@ var VIDEO_MODELS = {
|
|
|
1611
1611
|
series: "Hailuo",
|
|
1612
1612
|
description: "MiniMax avatar lip-sync.",
|
|
1613
1613
|
useCases: ["lip-sync", "talking-head"],
|
|
1614
|
-
pricing: [{ identifier: "hailuo-avatar", credits:
|
|
1614
|
+
pricing: [{ identifier: "hailuo-avatar", credits: 190 }],
|
|
1615
1615
|
// Not wired in any provider / not in LIP_SYNC_PROVIDERS — hide from MCP
|
|
1616
1616
|
// list_models so the lip_sync tool can't advertise a model its route
|
|
1617
1617
|
// rejects with a 400. Re-expose when the provider lands.
|
|
@@ -1627,12 +1627,12 @@ var VIDEO_MODELS = {
|
|
|
1627
1627
|
description: "Dub existing footage \u2014 re-syncs lips to a new audio track. Video input, billed per second.",
|
|
1628
1628
|
useCases: ["lip-sync", "dubbing", "video-to-video"],
|
|
1629
1629
|
pricing: [
|
|
1630
|
-
{ identifier: "sync-lipsync-v3", credits:
|
|
1631
|
-
{ identifier: "sync-lipsync-v3:15s", credits:
|
|
1632
|
-
{ identifier: "sync-lipsync-v3:30s", credits:
|
|
1633
|
-
{ identifier: "sync-lipsync-v3:60s", credits:
|
|
1634
|
-
{ identifier: "sync-lipsync-v3:120s", credits:
|
|
1635
|
-
{ identifier: "sync-lipsync-v3:300s", credits:
|
|
1630
|
+
{ identifier: "sync-lipsync-v3", credits: 2e4, note: "5-min ceiling (no duration given)" },
|
|
1631
|
+
{ identifier: "sync-lipsync-v3:15s", credits: 1e3 },
|
|
1632
|
+
{ identifier: "sync-lipsync-v3:30s", credits: 2e3 },
|
|
1633
|
+
{ identifier: "sync-lipsync-v3:60s", credits: 4e3 },
|
|
1634
|
+
{ identifier: "sync-lipsync-v3:120s", credits: 8e3 },
|
|
1635
|
+
{ identifier: "sync-lipsync-v3:300s", credits: 2e4, note: "5-min ceiling" }
|
|
1636
1636
|
]
|
|
1637
1637
|
},
|
|
1638
1638
|
"volcengine-lipsync": {
|
|
@@ -1645,12 +1645,12 @@ var VIDEO_MODELS = {
|
|
|
1645
1645
|
description: "Video-to-video AI dubbing \u2014 re-syncs lips to a new vocal track. Multi-speaker (scene detection + speaker ID) in basic mode. Video input, billed per second.",
|
|
1646
1646
|
useCases: ["lip-sync", "dubbing", "video-to-video"],
|
|
1647
1647
|
pricing: [
|
|
1648
|
-
{ identifier: "volcengine-lipsync", credits:
|
|
1649
|
-
{ identifier: "volcengine-lipsync:15s", credits:
|
|
1650
|
-
{ identifier: "volcengine-lipsync:30s", credits:
|
|
1651
|
-
{ identifier: "volcengine-lipsync:60s", credits:
|
|
1652
|
-
{ identifier: "volcengine-lipsync:120s", credits:
|
|
1653
|
-
{ identifier: "volcengine-lipsync:300s", credits:
|
|
1648
|
+
{ identifier: "volcengine-lipsync", credits: 6e3, note: "5-min ceiling (no duration given)" },
|
|
1649
|
+
{ identifier: "volcengine-lipsync:15s", credits: 300 },
|
|
1650
|
+
{ identifier: "volcengine-lipsync:30s", credits: 600 },
|
|
1651
|
+
{ identifier: "volcengine-lipsync:60s", credits: 1200 },
|
|
1652
|
+
{ identifier: "volcengine-lipsync:120s", credits: 2400 },
|
|
1653
|
+
{ identifier: "volcengine-lipsync:300s", credits: 6e3, note: "5-min ceiling" }
|
|
1654
1654
|
]
|
|
1655
1655
|
},
|
|
1656
1656
|
// ── Gemini video analysis ── (Gemini-only; billed per duration bucket — the
|
|
@@ -1667,11 +1667,11 @@ var VIDEO_MODELS = {
|
|
|
1667
1667
|
description: "Legacy fast-tier analysis model (pre-2026-07). Kept so stored raw-model configs keep running and keep pricing under their own identifier; new fast-tier runs use the current fast model.",
|
|
1668
1668
|
useCases: ["video-analysis", "shot-list", "fast"],
|
|
1669
1669
|
pricing: [
|
|
1670
|
-
{ identifier: "video-analysis:gemini-3-flash", credits:
|
|
1671
|
-
{ identifier: "video-analysis:gemini-3-flash:60s", credits:
|
|
1672
|
-
{ identifier: "video-analysis:gemini-3-flash:180s", credits:
|
|
1673
|
-
{ identifier: "video-analysis:gemini-3-flash:360s", credits:
|
|
1674
|
-
{ identifier: "video-analysis:gemini-3-flash:600s", credits:
|
|
1670
|
+
{ identifier: "video-analysis:gemini-3-flash", credits: 136, note: "10-min ceiling (no duration given)" },
|
|
1671
|
+
{ identifier: "video-analysis:gemini-3-flash:60s", credits: 23 },
|
|
1672
|
+
{ identifier: "video-analysis:gemini-3-flash:180s", credits: 32 },
|
|
1673
|
+
{ identifier: "video-analysis:gemini-3-flash:360s", credits: 81 },
|
|
1674
|
+
{ identifier: "video-analysis:gemini-3-flash:600s", credits: 136, note: "10-min ceiling" }
|
|
1675
1675
|
]
|
|
1676
1676
|
},
|
|
1677
1677
|
"gemini-3.6-flash-video-analysis": {
|
|
@@ -1684,11 +1684,11 @@ var VIDEO_MODELS = {
|
|
|
1684
1684
|
description: "Analyze a video into a structured shot list (scenes, camera, audio) \u2014 fast, economy tier. Billed per duration bucket.",
|
|
1685
1685
|
useCases: ["video-analysis", "shot-list", "fast"],
|
|
1686
1686
|
pricing: [
|
|
1687
|
-
{ identifier: "video-analysis:gemini-3.6-flash", credits:
|
|
1688
|
-
{ identifier: "video-analysis:gemini-3.6-flash:60s", credits:
|
|
1689
|
-
{ identifier: "video-analysis:gemini-3.6-flash:180s", credits:
|
|
1690
|
-
{ identifier: "video-analysis:gemini-3.6-flash:360s", credits:
|
|
1691
|
-
{ identifier: "video-analysis:gemini-3.6-flash:600s", credits:
|
|
1687
|
+
{ identifier: "video-analysis:gemini-3.6-flash", credits: 374, note: "10-min ceiling (no duration given)" },
|
|
1688
|
+
{ identifier: "video-analysis:gemini-3.6-flash:60s", credits: 61 },
|
|
1689
|
+
{ identifier: "video-analysis:gemini-3.6-flash:180s", credits: 88 },
|
|
1690
|
+
{ identifier: "video-analysis:gemini-3.6-flash:360s", credits: 224 },
|
|
1691
|
+
{ identifier: "video-analysis:gemini-3.6-flash:600s", credits: 374, note: "10-min ceiling" }
|
|
1692
1692
|
]
|
|
1693
1693
|
},
|
|
1694
1694
|
"gemini-3.1-pro-video-analysis": {
|
|
@@ -1701,11 +1701,11 @@ var VIDEO_MODELS = {
|
|
|
1701
1701
|
description: "Analyze a video into a structured shot list (scenes, camera, audio) \u2014 higher-fidelity, default tier. Billed per duration bucket.",
|
|
1702
1702
|
useCases: ["video-analysis", "shot-list", "cinematic"],
|
|
1703
1703
|
pricing: [
|
|
1704
|
-
{ identifier: "video-analysis:gemini-3.1-pro", credits:
|
|
1705
|
-
{ identifier: "video-analysis:gemini-3.1-pro:60s", credits:
|
|
1706
|
-
{ identifier: "video-analysis:gemini-3.1-pro:180s", credits:
|
|
1707
|
-
{ identifier: "video-analysis:gemini-3.1-pro:360s", credits:
|
|
1708
|
-
{ identifier: "video-analysis:gemini-3.1-pro:600s", credits:
|
|
1704
|
+
{ identifier: "video-analysis:gemini-3.1-pro", credits: 486, note: "10-min ceiling (no duration given)" },
|
|
1705
|
+
{ identifier: "video-analysis:gemini-3.1-pro:60s", credits: 82 },
|
|
1706
|
+
{ identifier: "video-analysis:gemini-3.1-pro:180s", credits: 111 },
|
|
1707
|
+
{ identifier: "video-analysis:gemini-3.1-pro:360s", credits: 291 },
|
|
1708
|
+
{ identifier: "video-analysis:gemini-3.1-pro:600s", credits: 486, note: "10-min ceiling" }
|
|
1709
1709
|
]
|
|
1710
1710
|
},
|
|
1711
1711
|
// Both mixed tiers are variants of the same advanced multi-engine analysis
|
|
@@ -1721,11 +1721,11 @@ var VIDEO_MODELS = {
|
|
|
1721
1721
|
description: "Our most advanced analysis tier \u2014 multiple analysis engines combined into one result for maximum completeness and accuracy. Billed per duration bucket.",
|
|
1722
1722
|
useCases: ["video-analysis", "shot-list", "premium", "most-complete"],
|
|
1723
1723
|
pricing: [
|
|
1724
|
-
{ identifier: "video-analysis:mixed", credits:
|
|
1725
|
-
{ identifier: "video-analysis:mixed:60s", credits:
|
|
1726
|
-
{ identifier: "video-analysis:mixed:180s", credits:
|
|
1727
|
-
{ identifier: "video-analysis:mixed:360s", credits:
|
|
1728
|
-
{ identifier: "video-analysis:mixed:600s", credits:
|
|
1724
|
+
{ identifier: "video-analysis:mixed", credits: 621, note: "10-min ceiling (no duration given)" },
|
|
1725
|
+
{ identifier: "video-analysis:mixed:60s", credits: 104 },
|
|
1726
|
+
{ identifier: "video-analysis:mixed:180s", credits: 142 },
|
|
1727
|
+
{ identifier: "video-analysis:mixed:360s", credits: 372 },
|
|
1728
|
+
{ identifier: "video-analysis:mixed:600s", credits: 621, note: "10-min ceiling" }
|
|
1729
1729
|
]
|
|
1730
1730
|
},
|
|
1731
1731
|
// SMART — the accuracy tier, and the only one that does not rely on voting.
|
|
@@ -1742,11 +1742,11 @@ var VIDEO_MODELS = {
|
|
|
1742
1742
|
description: "Highest-accuracy analysis \u2014 a single deep pass that reads the footage frame by frame, finds its own shot boundaries, and identifies the cast by appearance. Best choice when the shot list will drive regeneration. Billed per duration bucket.",
|
|
1743
1743
|
useCases: ["video-analysis", "shot-list", "premium", "most-accurate"],
|
|
1744
1744
|
pricing: [
|
|
1745
|
-
{ identifier: "video-analysis:smart", credits:
|
|
1746
|
-
{ identifier: "video-analysis:smart:60s", credits:
|
|
1747
|
-
{ identifier: "video-analysis:smart:180s", credits:
|
|
1748
|
-
{ identifier: "video-analysis:smart:360s", credits:
|
|
1749
|
-
{ identifier: "video-analysis:smart:600s", credits:
|
|
1745
|
+
{ identifier: "video-analysis:smart", credits: 3496, note: "10-min ceiling (no duration given)" },
|
|
1746
|
+
{ identifier: "video-analysis:smart:60s", credits: 454 },
|
|
1747
|
+
{ identifier: "video-analysis:smart:180s", credits: 975 },
|
|
1748
|
+
{ identifier: "video-analysis:smart:360s", credits: 2105 },
|
|
1749
|
+
{ identifier: "video-analysis:smart:600s", credits: 3496, note: "10-min ceiling" }
|
|
1750
1750
|
]
|
|
1751
1751
|
}
|
|
1752
1752
|
};
|
|
@@ -1762,7 +1762,7 @@ var AUDIO_MODELS = {
|
|
|
1762
1762
|
description: "Latest ElevenLabs TTS \u2014 supports [audio tags] for emotion / pacing. Direct API.",
|
|
1763
1763
|
useCases: ["tts", "voice-over", "narration", "expressive"],
|
|
1764
1764
|
features: ["audio-tags", "voice-cloning"],
|
|
1765
|
-
pricing: [{ identifier: "elevenlabs-v3", credits:
|
|
1765
|
+
pricing: [{ identifier: "elevenlabs-v3", credits: 30 }],
|
|
1766
1766
|
featured: true
|
|
1767
1767
|
},
|
|
1768
1768
|
"elevenlabs-turbo": {
|
|
@@ -1774,7 +1774,7 @@ var AUDIO_MODELS = {
|
|
|
1774
1774
|
series: "ElevenLabs",
|
|
1775
1775
|
description: "Fast, cheap ElevenLabs TTS via the direct ElevenLabs API. Good for narration.",
|
|
1776
1776
|
useCases: ["tts", "narration", "fast"],
|
|
1777
|
-
pricing: [{ identifier: "elevenlabs-turbo", credits:
|
|
1777
|
+
pricing: [{ identifier: "elevenlabs-turbo", credits: 15, note: "per 1K chars" }]
|
|
1778
1778
|
},
|
|
1779
1779
|
"elevenlabs-multilingual": {
|
|
1780
1780
|
id: "elevenlabs-multilingual",
|
|
@@ -1785,7 +1785,7 @@ var AUDIO_MODELS = {
|
|
|
1785
1785
|
series: "ElevenLabs",
|
|
1786
1786
|
description: "Multi-language ElevenLabs TTS via the direct ElevenLabs API.",
|
|
1787
1787
|
useCases: ["tts", "multilingual"],
|
|
1788
|
-
pricing: [{ identifier: "elevenlabs-multilingual", credits:
|
|
1788
|
+
pricing: [{ identifier: "elevenlabs-multilingual", credits: 30, note: "per 1K chars" }]
|
|
1789
1789
|
},
|
|
1790
1790
|
"elevenlabs-dialogue": {
|
|
1791
1791
|
id: "elevenlabs-dialogue",
|
|
@@ -1796,7 +1796,7 @@ var AUDIO_MODELS = {
|
|
|
1796
1796
|
series: "ElevenLabs",
|
|
1797
1797
|
description: "Multi-speaker dialogue TTS \u2014 give it a script, it voices each role.",
|
|
1798
1798
|
useCases: ["tts", "dialogue", "multi-speaker"],
|
|
1799
|
-
pricing: [{ identifier: "elevenlabs-dialogue", credits:
|
|
1799
|
+
pricing: [{ identifier: "elevenlabs-dialogue", credits: 25, note: "per 1K chars" }],
|
|
1800
1800
|
// Driven only via the dialogue/character-voice path (multi-speaker script
|
|
1801
1801
|
// shape), NOT the single-text generate_speech verb. Hide from MCP
|
|
1802
1802
|
// list_models so generate_speech (TTS_PROVIDERS) can't advertise it and
|
|
@@ -1813,7 +1813,7 @@ var AUDIO_MODELS = {
|
|
|
1813
1813
|
series: "ElevenLabs",
|
|
1814
1814
|
description: "Clone a voice from a short reference clip. Instant clone via direct ElevenLabs API.",
|
|
1815
1815
|
useCases: ["voice-clone", "personalization"],
|
|
1816
|
-
pricing: [{ identifier: "voice-clone", credits:
|
|
1816
|
+
pricing: [{ identifier: "voice-clone", credits: 50 }]
|
|
1817
1817
|
},
|
|
1818
1818
|
"elevenlabs-voice-design": {
|
|
1819
1819
|
id: "elevenlabs-voice-design",
|
|
@@ -1824,7 +1824,7 @@ var AUDIO_MODELS = {
|
|
|
1824
1824
|
series: "ElevenLabs",
|
|
1825
1825
|
description: "Design a synthetic voice from a description (no reference clip needed).",
|
|
1826
1826
|
useCases: ["voice-design", "synthetic"],
|
|
1827
|
-
pricing: [{ identifier: "elevenlabs-voice-design", credits:
|
|
1827
|
+
pricing: [{ identifier: "elevenlabs-voice-design", credits: 50 }]
|
|
1828
1828
|
},
|
|
1829
1829
|
"elevenlabs-voice-changer": {
|
|
1830
1830
|
id: "elevenlabs-voice-changer",
|
|
@@ -1835,7 +1835,7 @@ var AUDIO_MODELS = {
|
|
|
1835
1835
|
series: "ElevenLabs",
|
|
1836
1836
|
description: "Speech-to-speech: convert one voice to another while preserving prosody.",
|
|
1837
1837
|
useCases: ["voice-conversion", "dubbing"],
|
|
1838
|
-
pricing: [{ identifier: "elevenlabs-voice-changer", credits:
|
|
1838
|
+
pricing: [{ identifier: "elevenlabs-voice-changer", credits: 40 }]
|
|
1839
1839
|
},
|
|
1840
1840
|
"elevenlabs-stt": {
|
|
1841
1841
|
id: "elevenlabs-stt",
|
|
@@ -1846,7 +1846,7 @@ var AUDIO_MODELS = {
|
|
|
1846
1846
|
series: "ElevenLabs",
|
|
1847
1847
|
description: "Speech-to-text \u2014 transcribe audio with timestamps.",
|
|
1848
1848
|
useCases: ["transcription", "stt"],
|
|
1849
|
-
pricing: [{ identifier: "elevenlabs-stt", credits:
|
|
1849
|
+
pricing: [{ identifier: "elevenlabs-stt", credits: 22 }]
|
|
1850
1850
|
},
|
|
1851
1851
|
"elevenlabs-isolation": {
|
|
1852
1852
|
id: "elevenlabs-isolation",
|
|
@@ -1857,7 +1857,7 @@ var AUDIO_MODELS = {
|
|
|
1857
1857
|
series: "ElevenLabs",
|
|
1858
1858
|
description: "Strip background noise / music from a vocal track.",
|
|
1859
1859
|
useCases: ["cleanup", "isolation"],
|
|
1860
|
-
pricing: [{ identifier: "elevenlabs-isolation", credits:
|
|
1860
|
+
pricing: [{ identifier: "elevenlabs-isolation", credits: 74, note: "variable per second" }]
|
|
1861
1861
|
},
|
|
1862
1862
|
"elevenlabs-dubbing": {
|
|
1863
1863
|
id: "elevenlabs-dubbing",
|
|
@@ -1868,7 +1868,7 @@ var AUDIO_MODELS = {
|
|
|
1868
1868
|
series: "ElevenLabs",
|
|
1869
1869
|
description: "Translate + dub a video into a new language. Async.",
|
|
1870
1870
|
useCases: ["dubbing", "multilingual"],
|
|
1871
|
-
pricing: [{ identifier: "elevenlabs-dubbing", credits:
|
|
1871
|
+
pricing: [{ identifier: "elevenlabs-dubbing", credits: 80 }]
|
|
1872
1872
|
},
|
|
1873
1873
|
"elevenlabs-forced-alignment": {
|
|
1874
1874
|
id: "elevenlabs-forced-alignment",
|
|
@@ -1879,7 +1879,7 @@ var AUDIO_MODELS = {
|
|
|
1879
1879
|
series: "ElevenLabs",
|
|
1880
1880
|
description: "Align an existing transcript to audio with word-level timestamps.",
|
|
1881
1881
|
useCases: ["alignment", "captions"],
|
|
1882
|
-
pricing: [{ identifier: "elevenlabs-forced-alignment", credits:
|
|
1882
|
+
pricing: [{ identifier: "elevenlabs-forced-alignment", credits: 30 }]
|
|
1883
1883
|
},
|
|
1884
1884
|
// ── ElevenLabs SFX ──
|
|
1885
1885
|
"elevenlabs-sfx": {
|
|
@@ -1891,7 +1891,7 @@ var AUDIO_MODELS = {
|
|
|
1891
1891
|
series: "ElevenLabs",
|
|
1892
1892
|
description: "Generate short sound effects from a text prompt.",
|
|
1893
1893
|
useCases: ["sfx", "ambient"],
|
|
1894
|
-
pricing: [{ identifier: "elevenlabs-sfx", credits:
|
|
1894
|
+
pricing: [{ identifier: "elevenlabs-sfx", credits: 3, note: "~5s clip" }]
|
|
1895
1895
|
},
|
|
1896
1896
|
// ── Suno music ──
|
|
1897
1897
|
"suno": {
|
|
@@ -1904,7 +1904,7 @@ var AUDIO_MODELS = {
|
|
|
1904
1904
|
dataValue: "V4",
|
|
1905
1905
|
description: "Suno v4 music generation \u2014 full songs with vocals, multiple genres.",
|
|
1906
1906
|
useCases: ["music", "song", "vocals"],
|
|
1907
|
-
pricing: [{ identifier: "suno", credits:
|
|
1907
|
+
pricing: [{ identifier: "suno", credits: 30, note: "per generation" }]
|
|
1908
1908
|
},
|
|
1909
1909
|
"suno-v5": {
|
|
1910
1910
|
id: "suno-v5",
|
|
@@ -1916,7 +1916,7 @@ var AUDIO_MODELS = {
|
|
|
1916
1916
|
dataValue: "V5",
|
|
1917
1917
|
description: "Newer Suno v5 \u2014 better vocal quality, more genres. Same price as v4.",
|
|
1918
1918
|
useCases: ["music", "song", "vocals", "premium"],
|
|
1919
|
-
pricing: [{ identifier: "suno-v5", credits:
|
|
1919
|
+
pricing: [{ identifier: "suno-v5", credits: 30, note: "per generation" }]
|
|
1920
1920
|
},
|
|
1921
1921
|
"suno-v5_5": {
|
|
1922
1922
|
id: "suno-v5_5",
|
|
@@ -1928,7 +1928,7 @@ var AUDIO_MODELS = {
|
|
|
1928
1928
|
dataValue: "V5_5",
|
|
1929
1929
|
description: "Suno v5.5 \u2014 latest model with improved audio quality and expressiveness.",
|
|
1930
1930
|
useCases: ["music", "song", "vocals", "premium"],
|
|
1931
|
-
pricing: [{ identifier: "suno-v5_5", credits:
|
|
1931
|
+
pricing: [{ identifier: "suno-v5_5", credits: 30, note: "per generation" }],
|
|
1932
1932
|
featured: true
|
|
1933
1933
|
}
|
|
1934
1934
|
};
|
|
@@ -2167,7 +2167,7 @@ function modelIdsByKindMode(kind, modes, opts = {}) {
|
|
|
2167
2167
|
}
|
|
2168
2168
|
|
|
2169
2169
|
// src/model-constants.ts
|
|
2170
|
-
var CREDIT_BASE_USD =
|
|
2170
|
+
var CREDIT_BASE_USD = 2e-3;
|
|
2171
2171
|
var IMAGE_PROMPT_MAX = 5e3;
|
|
2172
2172
|
var MAX_IMAGE_PROMPT_CHARS_BY_PROVIDER = {
|
|
2173
2173
|
// ── higher than the 5000 default ──
|
|
@@ -3358,6 +3358,22 @@ function applyDefaultVideoSelection(input) {
|
|
|
3358
3358
|
};
|
|
3359
3359
|
}
|
|
3360
3360
|
|
|
3361
|
+
// src/credit-conversion.ts
|
|
3362
|
+
var CREDIT_ROUNDING_RESOLUTION = 1e3;
|
|
3363
|
+
function assertUsableUsd(usd) {
|
|
3364
|
+
if (!Number.isFinite(usd)) throw new Error(`usdToCredits: cost must be finite, got ${usd}`);
|
|
3365
|
+
if (usd < 0) throw new Error(`usdToCredits: cost must not be negative, got ${usd}`);
|
|
3366
|
+
}
|
|
3367
|
+
function usdToCredits(usd) {
|
|
3368
|
+
assertUsableUsd(usd);
|
|
3369
|
+
const milliCredits = Math.round(usd / CREDIT_BASE_USD * CREDIT_ROUNDING_RESOLUTION);
|
|
3370
|
+
return Math.ceil(milliCredits / CREDIT_ROUNDING_RESOLUTION);
|
|
3371
|
+
}
|
|
3372
|
+
function creditsToUsd(credits) {
|
|
3373
|
+
if (!Number.isFinite(credits)) throw new Error(`creditsToUsd: credits must be finite, got ${credits}`);
|
|
3374
|
+
return credits * CREDIT_BASE_USD;
|
|
3375
|
+
}
|
|
3376
|
+
|
|
3361
3377
|
// src/film-pricing.ts
|
|
3362
3378
|
var FILM_BASE_CREDITS = 45;
|
|
3363
3379
|
var KEYFRAME_CREDITS_PER_SHOT = 2;
|
|
@@ -12595,35 +12611,35 @@ var WINDOW_OVERLAP = 5;
|
|
|
12595
12611
|
var VIDEO_ANALYSIS_WINDOW = { LEN: WINDOW_LEN, STRIDE: WINDOW_STRIDE, OVERLAP: WINDOW_OVERLAP, SINGLE_MAX: 180 };
|
|
12596
12612
|
var VIDEO_ANALYSIS_BUCKET_CREDITS = {
|
|
12597
12613
|
// Legacy fast-tier model (pre-2026-07) — kept for stored raw-id configs.
|
|
12598
|
-
"video-analysis:gemini-3-flash:60s":
|
|
12599
|
-
"video-analysis:gemini-3-flash:180s":
|
|
12600
|
-
"video-analysis:gemini-3-flash:360s":
|
|
12601
|
-
"video-analysis:gemini-3-flash:600s":
|
|
12614
|
+
"video-analysis:gemini-3-flash:60s": 23,
|
|
12615
|
+
"video-analysis:gemini-3-flash:180s": 32,
|
|
12616
|
+
"video-analysis:gemini-3-flash:360s": 81,
|
|
12617
|
+
"video-analysis:gemini-3-flash:600s": 136,
|
|
12602
12618
|
// Current fast tier — regenerated from the private formula for its backing
|
|
12603
12619
|
// model; higher than the legacy fast schedule but still ≤ pro per bucket.
|
|
12604
|
-
"video-analysis:gemini-3.6-flash:60s":
|
|
12605
|
-
"video-analysis:gemini-3.6-flash:180s":
|
|
12606
|
-
"video-analysis:gemini-3.6-flash:360s":
|
|
12607
|
-
"video-analysis:gemini-3.6-flash:600s":
|
|
12608
|
-
"video-analysis:gemini-3.1-pro:60s":
|
|
12609
|
-
"video-analysis:gemini-3.1-pro:180s":
|
|
12610
|
-
"video-analysis:gemini-3.1-pro:360s":
|
|
12611
|
-
"video-analysis:gemini-3.1-pro:600s":
|
|
12620
|
+
"video-analysis:gemini-3.6-flash:60s": 61,
|
|
12621
|
+
"video-analysis:gemini-3.6-flash:180s": 88,
|
|
12622
|
+
"video-analysis:gemini-3.6-flash:360s": 224,
|
|
12623
|
+
"video-analysis:gemini-3.6-flash:600s": 374,
|
|
12624
|
+
"video-analysis:gemini-3.1-pro:60s": 82,
|
|
12625
|
+
"video-analysis:gemini-3.1-pro:180s": 111,
|
|
12626
|
+
"video-analysis:gemini-3.1-pro:360s": 291,
|
|
12627
|
+
"video-analysis:gemini-3.1-pro:600s": 486,
|
|
12612
12628
|
// Mixed tiers (`mixed` + `mixed-fast`) share ONE credit family — they are
|
|
12613
12629
|
// variants of the same engine plan (plan internals live in the private
|
|
12614
12630
|
// analysis plugin). Admin-tunable via model_pricing like every other row.
|
|
12615
|
-
"video-analysis:mixed:60s":
|
|
12616
|
-
"video-analysis:mixed:180s":
|
|
12617
|
-
"video-analysis:mixed:360s":
|
|
12618
|
-
"video-analysis:mixed:600s":
|
|
12631
|
+
"video-analysis:mixed:60s": 104,
|
|
12632
|
+
"video-analysis:mixed:180s": 142,
|
|
12633
|
+
"video-analysis:mixed:360s": 372,
|
|
12634
|
+
"video-analysis:mixed:600s": 621,
|
|
12619
12635
|
// SMART — the one native-transport plan: a single pass with reasoning and
|
|
12620
12636
|
// frame sampling turned all the way up. Priced well above the economy tiers
|
|
12621
12637
|
// because it genuinely costs more to run, and it is the only tier whose
|
|
12622
12638
|
// accuracy was measured against a hand-counted edit list.
|
|
12623
|
-
"video-analysis:smart:60s":
|
|
12624
|
-
"video-analysis:smart:180s":
|
|
12625
|
-
"video-analysis:smart:360s":
|
|
12626
|
-
"video-analysis:smart:600s":
|
|
12639
|
+
"video-analysis:smart:60s": 454,
|
|
12640
|
+
"video-analysis:smart:180s": 975,
|
|
12641
|
+
"video-analysis:smart:360s": 2105,
|
|
12642
|
+
"video-analysis:smart:600s": 3496
|
|
12627
12643
|
};
|
|
12628
12644
|
function videoAnalysisCreditSegment(modelOrSentinel) {
|
|
12629
12645
|
return modelOrSentinel === "mixed-fast" ? "mixed" : modelOrSentinel;
|
|
@@ -12729,6 +12745,7 @@ exports.COMPOSER_PLAN_MAP = COMPOSER_PLAN_MAP;
|
|
|
12729
12745
|
exports.CONTENT_TYPES_BY_PLATFORM = CONTENT_TYPES_BY_PLATFORM;
|
|
12730
12746
|
exports.CREATURE_ATTACH_COLUMNS = CREATURE_ATTACH_COLUMNS;
|
|
12731
12747
|
exports.CREDIT_BASE_USD = CREDIT_BASE_USD;
|
|
12748
|
+
exports.CREDIT_ROUNDING_RESOLUTION = CREDIT_ROUNDING_RESOLUTION;
|
|
12732
12749
|
exports.CastCoverageCriticVerdictSchema = CastCoverageCriticVerdictSchema;
|
|
12733
12750
|
exports.CharacterImageCriticVerdictSchema = CharacterImageCriticVerdictSchema;
|
|
12734
12751
|
exports.CharacterMetadataSchema = CharacterMetadataSchema;
|
|
@@ -13129,6 +13146,7 @@ exports.collectAncestorRefs = collectAncestorRefs;
|
|
|
13129
13146
|
exports.combineSameLabelRefs = combineSameLabelRefs;
|
|
13130
13147
|
exports.countRefModalityEdges = countRefModalityEdges;
|
|
13131
13148
|
exports.creditRangesAll = creditRangesAll;
|
|
13149
|
+
exports.creditsToUsd = creditsToUsd;
|
|
13132
13150
|
exports.decodeProviderItem = decodeProviderItem;
|
|
13133
13151
|
exports.defaultCarriedFraction = defaultCarriedFraction;
|
|
13134
13152
|
exports.defaultRoleForSource = defaultRoleForSource;
|
|
@@ -13361,6 +13379,7 @@ exports.unwrapUnresolvedTokens = unwrapUnresolvedTokens;
|
|
|
13361
13379
|
exports.usageModeDirective = usageModeDirective;
|
|
13362
13380
|
exports.usageModeIncludesName = usageModeIncludesName;
|
|
13363
13381
|
exports.usageModeLabel = usageModeLabel;
|
|
13382
|
+
exports.usdToCredits = usdToCredits;
|
|
13364
13383
|
exports.validateAiAvatarPayload = validateAiAvatarPayload;
|
|
13365
13384
|
exports.validateCinematicAvatarPayload = validateCinematicAvatarPayload;
|
|
13366
13385
|
exports.validateDurationForFormat = validateDurationForFormat;
|