@picsart/ai-sdk 6.48.2 → 6.50.0

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.
Files changed (3) hide show
  1. package/index.d.ts +13 -81
  2. package/index.js +114 -404
  3. package/package.json +1 -1
package/index.d.ts CHANGED
@@ -1086,25 +1086,6 @@ type ModelInputById = {
1086
1086
  aspectRatio?: "auto" | "16:9" | "9:16";
1087
1087
  cfgScale?: number;
1088
1088
  };
1089
- "ltx-pro-t2v": {
1090
- prompt: string;
1091
- duration?: 6 | 8 | 10;
1092
- resolution?: "1080p" | "1440p" | "2160p";
1093
- generateAudio?: boolean;
1094
- imageUrls?: string[];
1095
- };
1096
- "ltx-v2-fast": {
1097
- prompt: string;
1098
- duration?: 6 | 8 | 10 | 12 | 14 | 16 | 18 | 20;
1099
- resolution?: "1080p" | "1440p" | "2160p";
1100
- generateAudio?: boolean;
1101
- imageUrls?: string[];
1102
- };
1103
- "ltx-v2-retake": {
1104
- prompt: string;
1105
- duration?: 5 | 10 | 15 | 20;
1106
- videoUrl: string;
1107
- };
1108
1089
  "ltx-v2.3-extend": {
1109
1090
  prompt?: string;
1110
1091
  duration?: number;
@@ -1234,6 +1215,18 @@ type ModelInputById = {
1234
1215
  prompt: string;
1235
1216
  imageUrls?: string[];
1236
1217
  };
1218
+ "macaron-cookie": {
1219
+ prompt: string;
1220
+ aspectRatio?: "16:9" | "9:16";
1221
+ resolution?: "360p" | "720p" | "1080p" | "4k";
1222
+ duration?: 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10;
1223
+ startFrame?: string;
1224
+ endFrame?: string;
1225
+ imageUrls?: string[];
1226
+ videoUrl?: string;
1227
+ videoUrls?: string[];
1228
+ task?: "edit" | "extend";
1229
+ };
1237
1230
  "minimax-h3": {
1238
1231
  prompt: string;
1239
1232
  startFrame?: string;
@@ -1430,26 +1423,6 @@ type ModelInputById = {
1430
1423
  "picsart-videography": {
1431
1424
  imageUrls: [string, ...string[]];
1432
1425
  };
1433
- "pika-2.2": {
1434
- prompt: string;
1435
- duration?: 5 | 10;
1436
- aspectRatio?: "16:9" | "9:16" | "1:1" | "4:5" | "5:4" | "3:2" | "2:3";
1437
- resolution?: "720p" | "1080p";
1438
- imageUrls?: string[];
1439
- };
1440
- "pika-2.2-frames": {
1441
- prompt: string;
1442
- duration?: 5 | 10;
1443
- resolution?: "720p" | "1080p";
1444
- imageUrls: [string, ...string[]];
1445
- };
1446
- "pika-2.2-scenes": {
1447
- prompt: string;
1448
- duration?: 5 | 10;
1449
- aspectRatio?: "16:9" | "9:16" | "1:1" | "4:5" | "5:4" | "3:2" | "2:3";
1450
- resolution?: "720p" | "1080p";
1451
- imageUrls: [string, ...string[]];
1452
- };
1453
1426
  "pixverse-c1": {
1454
1427
  prompt: string;
1455
1428
  quality?: "360p" | "540p" | "720p" | "1080p";
@@ -1494,10 +1467,6 @@ type ModelInputById = {
1494
1467
  generateAudio?: boolean;
1495
1468
  imageUrls: [string, ...string[]];
1496
1469
  };
1497
- "qwen": {
1498
- prompt: string;
1499
- imageUrls?: string[];
1500
- };
1501
1470
  "qwen-image-2": {
1502
1471
  prompt: string;
1503
1472
  count?: 1 | 2 | 4 | 6 | 8 | 10;
@@ -1553,19 +1522,6 @@ type ModelInputById = {
1553
1522
  prompt?: string;
1554
1523
  imageUrls: [string, ...string[]];
1555
1524
  };
1556
- "recraftv2": {
1557
- prompt: string;
1558
- style?: "realistic_image" | "digital_illustration" | "vector_illustration" | "icon";
1559
- aspectRatio?: "1:1" | "4:3" | "3:4" | "3:2" | "2:3" | "16:9" | "9:16" | "2:1" | "1:2";
1560
- count?: 1 | 2 | 4 | 6;
1561
- negativePrompt?: string;
1562
- };
1563
- "recraftv2_vector": {
1564
- prompt: string;
1565
- aspectRatio?: "1:1" | "4:3" | "3:4" | "3:2" | "2:3" | "16:9" | "9:16" | "2:1" | "1:2";
1566
- count?: 1 | 2 | 4 | 6;
1567
- negativePrompt?: string;
1568
- };
1569
1525
  "recraftv3": {
1570
1526
  prompt: string;
1571
1527
  style?: "realistic_image" | "digital_illustration" | "vector_illustration" | "any";
@@ -2108,20 +2064,6 @@ type ModelInputById = {
2108
2064
  count?: 1 | 2 | 4 | 6 | 8 | 10;
2109
2065
  negativePrompt?: string;
2110
2066
  };
2111
- "wan-2.6-r2v": {
2112
- prompt: string;
2113
- duration?: 5 | 10;
2114
- resolution?: "720p" | "1080p";
2115
- videoUrl: string;
2116
- };
2117
- "wan-2.6-t2v": {
2118
- prompt: string;
2119
- duration?: 5 | 10 | 15;
2120
- resolution?: "480p" | "720p" | "1080p";
2121
- aspectRatio?: "16:9" | "9:16" | "1:1" | "4:3" | "3:4";
2122
- negativePrompt?: string;
2123
- startFrame?: string;
2124
- };
2125
2067
  "wan-2.7-i2v": {
2126
2068
  prompt?: string;
2127
2069
  duration?: 5 | 10 | 15;
@@ -3701,9 +3643,6 @@ declare const Models: {
3701
3643
  readonly KlingVideoEffects: "kling-video-effects";
3702
3644
  readonly KlingVideoO1: "kling-video-o1";
3703
3645
  readonly Ltx23A2v: "ltx-2.3-a2v";
3704
- readonly LtxProT2v: "ltx-pro-t2v";
3705
- readonly LtxV2Fast: "ltx-v2-fast";
3706
- readonly LtxV2Retake: "ltx-v2-retake";
3707
3646
  readonly LtxV23Extend: "ltx-v2.3-extend";
3708
3647
  readonly LtxV23Fast: "ltx-v2.3-fast";
3709
3648
  readonly LtxV23Outpaint: "ltx-v2.3-outpaint";
@@ -3720,6 +3659,7 @@ declare const Models: {
3720
3659
  readonly Lyria3Clip: "lyria-3-clip";
3721
3660
  readonly Lyria3Pro: "lyria-3-pro";
3722
3661
  readonly Lyria35: "lyria-3.5";
3662
+ readonly MacaronCookie: "macaron-cookie";
3723
3663
  readonly MinimaxH3: "minimax-h3";
3724
3664
  readonly MinimaxH3ContextIr: "minimax-h3-context-ir";
3725
3665
  readonly MinimaxH3Max: "minimax-h3-max";
@@ -3746,16 +3686,12 @@ declare const Models: {
3746
3686
  readonly PicsartSanaSprintV1: "picsart-sana-sprint-v1";
3747
3687
  readonly PicsartSodV82: "picsart-sod-v8-2";
3748
3688
  readonly PicsartVideography: "picsart-videography";
3749
- readonly Pika22: "pika-2.2";
3750
- readonly Pika22Frames: "pika-2.2-frames";
3751
- readonly Pika22Scenes: "pika-2.2-scenes";
3752
3689
  readonly PixverseC1: "pixverse-c1";
3753
3690
  readonly PixverseC1Fusion: "pixverse-c1-fusion";
3754
3691
  readonly PixverseC1Image: "pixverse-c1-image";
3755
3692
  readonly PixverseV6: "pixverse-v6";
3756
3693
  readonly PixverseV6Fusion: "pixverse-v6-fusion";
3757
3694
  readonly PixverseV6Image: "pixverse-v6-image";
3758
- readonly Qwen: "qwen";
3759
3695
  readonly QwenImage2: "qwen-image-2";
3760
3696
  readonly QwenImage2Pro: "qwen-image-2-pro";
3761
3697
  readonly QwenImage30: "qwen-image-3.0";
@@ -3765,8 +3701,6 @@ declare const Models: {
3765
3701
  readonly RecraftExplore: "recraft-explore";
3766
3702
  readonly RecraftExploreSimilar: "recraft-explore-similar";
3767
3703
  readonly RecraftVectorize: "recraft-vectorize";
3768
- readonly Recraftv2: "recraftv2";
3769
- readonly Recraftv2Vector: "recraftv2_vector";
3770
3704
  readonly Recraftv3: "recraftv3";
3771
3705
  readonly Recraftv3Vector: "recraftv3_vector";
3772
3706
  readonly Recraftv3ReplaceBg: "recraftv3-replace-bg";
@@ -3832,8 +3766,6 @@ declare const Models: {
3832
3766
  readonly Veo31Fast: "veo-3.1-fast";
3833
3767
  readonly Veo31Lite: "veo-3.1-lite";
3834
3768
  readonly Wan26Image: "wan-2.6-image";
3835
- readonly Wan26R2v: "wan-2.6-r2v";
3836
- readonly Wan26T2v: "wan-2.6-t2v";
3837
3769
  readonly Wan27I2v: "wan-2.7-i2v";
3838
3770
  readonly Wan27R2v: "wan-2.7-r2v";
3839
3771
  readonly Wan27T2v: "wan-2.7-t2v";
package/index.js CHANGED
@@ -1177,7 +1177,7 @@ var passthroughPayload = (paramConfig) => (ctx) => {
1177
1177
  return payload;
1178
1178
  };
1179
1179
  function defineModels(provider, configs) {
1180
- const MODELS41 = [];
1180
+ const MODELS40 = [];
1181
1181
  for (const c of configs) {
1182
1182
  const prov = c.provider ?? provider;
1183
1183
  const resolvedPayload = c.buildPayload ?? passthroughPayload(c.paramConfig);
@@ -1214,19 +1214,19 @@ function defineModels(provider, configs) {
1214
1214
  if (c.validateInput !== void 0) model.validateInput = c.validateInput;
1215
1215
  const contract = createModelContract(model);
1216
1216
  model.outputSchema = c.outputSchema ?? contract.output;
1217
- MODELS41.push(model);
1217
+ MODELS40.push(model);
1218
1218
  }
1219
- return { MODELS: MODELS41 };
1219
+ return { MODELS: MODELS40 };
1220
1220
  }
1221
- function registerPayloads(MODELS41, payloads) {
1221
+ function registerPayloads(MODELS40, payloads) {
1222
1222
  for (const [id, builder] of Object.entries(payloads)) {
1223
- const model = MODELS41.find((m) => m.id === id);
1223
+ const model = MODELS40.find((m) => m.id === id);
1224
1224
  if (model) model.buildPayload = builder;
1225
1225
  }
1226
1226
  }
1227
- function registerEditPayloads(MODELS41, payloads) {
1227
+ function registerEditPayloads(MODELS40, payloads) {
1228
1228
  for (const [id, builder] of Object.entries(payloads)) {
1229
- const model = MODELS41.find((m) => m.id === id);
1229
+ const model = MODELS40.find((m) => m.id === id);
1230
1230
  if (model) model.buildEditPayload = builder;
1231
1231
  }
1232
1232
  }
@@ -1609,6 +1609,8 @@ var { MODELS } = defineModels("kling", [
1609
1609
  name: "Kling V2.6",
1610
1610
  modelId: "kling-v2-6",
1611
1611
  addedAt: "2026-02-11",
1612
+ deprecated: true,
1613
+ // 2 generations behind: superseded by kling-v3 / kling-v4
1612
1614
  estimatedTime: 60,
1613
1615
  description: "Mature pipeline with audio and pro-tier rendering."
1614
1616
  },
@@ -1700,6 +1702,8 @@ var { MODELS } = defineModels("kling", [
1700
1702
  name: "Kling Video O1",
1701
1703
  modelId: "kling-video-o1",
1702
1704
  addedAt: "2026-03-11",
1705
+ deprecated: true,
1706
+ // 2 generations behind: superseded by kling-v3-omni / kling-v4-omni
1703
1707
  workflow: "kling-omni-video",
1704
1708
  estimatedTime: 55,
1705
1709
  mode: "video",
@@ -2422,26 +2426,6 @@ var ltxFastLongConstraints = [12, 14, 16, 18, 20].map((d) => ({
2422
2426
  fps: { allowed: [25], reason: FAST_LONG }
2423
2427
  }
2424
2428
  }));
2425
- var buildLtxT2VPayload = (ctx) => ({
2426
- prompt: ctx.prompt,
2427
- ...ctx.imageUrls?.[0] ? { image_url: ctx.imageUrls[0] } : {},
2428
- ...ctx.duration != null ? { duration: ctx.duration } : {},
2429
- ...ctx.resolution ? { resolution: ctx.resolution } : {},
2430
- generate_audio: ctx.generateAudio ?? true
2431
- });
2432
- var buildLtxI2VPayload = (ctx) => ({
2433
- prompt: ctx.prompt,
2434
- image_url: ctx.imageUrls?.[0],
2435
- ...ctx.duration != null ? { duration: ctx.duration } : {},
2436
- ...ctx.resolution ? { resolution: ctx.resolution } : {},
2437
- generate_audio: ctx.generateAudio ?? true
2438
- });
2439
- var buildLtxFastPayload = buildLtxT2VPayload;
2440
- var buildLtxRetakePayload = (ctx) => ({
2441
- prompt: ctx.prompt,
2442
- video_url: ctx.videoUrl,
2443
- ...ctx.duration != null ? { duration: ctx.duration } : {}
2444
- });
2445
2429
  var buildLtx23T2VPayload = (ctx) => ({
2446
2430
  prompt: ctx.prompt,
2447
2431
  ...ctx.imageUrls?.[0] ? { image_url: ctx.imageUrls[0] } : {},
@@ -2492,75 +2476,6 @@ var buildLtx23RetakePayload = (ctx) => ({
2492
2476
  ...ctx.startTime != null ? { start_time: ctx.startTime } : {}
2493
2477
  });
2494
2478
  var { MODELS: MODELS2 } = defineModels("ltx", [
2495
- // ── LTX 2.0 ──────────────────────────────────────────────────────
2496
- {
2497
- id: "ltx-pro-t2v",
2498
- name: "LTX Pro",
2499
- modelId: "ltx-v2-pro",
2500
- addedAt: "2026-02-06",
2501
- deprecated: true,
2502
- // superseded by ltx-2.3-pro-t2v
2503
- workflow: "ltxv-2/text-to-video",
2504
- editWorkflow: "ltxv-2/image-to-video",
2505
- buildPayload: buildLtxT2VPayload,
2506
- buildEditPayload: buildLtxI2VPayload,
2507
- estimatedTime: 75,
2508
- editEstimatedTime: 78,
2509
- mode: "video",
2510
- inputType: "t2v",
2511
- description: "4K output with audio \u2014 streamlined for fast, production-ready results.",
2512
- features: [feat("Image Input", "input"), feat("Start Frame", "frame"), feat("Audio", "audio"), feat("4K", "resolution"), feat("6/8/10 sec", "duration")],
2513
- paramConfig: {
2514
- ...params.prompt({ maxLength: LTX_PROMPT_MAX }),
2515
- ...params.duration(PRO_DURATIONS, 6),
2516
- ...params.resolution([...LTX_RESOLUTIONS]),
2517
- ...params.generateAudio(),
2518
- ...params.imageInput()
2519
- }
2520
- },
2521
- {
2522
- id: "ltx-v2-fast",
2523
- name: "LTX Fast",
2524
- addedAt: "2026-02-06",
2525
- deprecated: true,
2526
- // superseded by ltx-2.3-fast-t2v
2527
- workflow: "ltxv-2/text-to-video/fast",
2528
- editWorkflow: "ltxv-2/image-to-video/fast",
2529
- buildPayload: buildLtxFastPayload,
2530
- buildEditPayload: buildLtxI2VPayload,
2531
- estimatedTime: 38,
2532
- editEstimatedTime: 40,
2533
- mode: "video",
2534
- inputType: "t2v",
2535
- description: "Fast with long video support \u2014 up to 20s at 1080p, ideal for drafts and extended scenes.",
2536
- features: [feat("Image Input", "input"), feat("Fast", "duration"), feat("Up to 20s", "duration"), feat("Audio", "audio"), feat("4K", "resolution")],
2537
- paramConfig: {
2538
- ...params.prompt({ maxLength: LTX_PROMPT_MAX }),
2539
- ...params.duration(FAST_DURATIONS, 6),
2540
- ...params.resolution([...LTX_RESOLUTIONS]),
2541
- ...params.generateAudio(),
2542
- ...params.imageInput()
2543
- }
2544
- },
2545
- {
2546
- id: "ltx-v2-retake",
2547
- name: "LTX Retake",
2548
- addedAt: "2026-02-06",
2549
- deprecated: true,
2550
- // superseded by ltx-2.3-retake
2551
- workflow: "ltx-2/retake-video",
2552
- buildPayload: buildLtxRetakePayload,
2553
- estimatedTime: 33,
2554
- mode: "video",
2555
- inputType: "v2v",
2556
- description: "Reinterpret existing footage with a new visual direction \u2014 up to 20s segments.",
2557
- features: [feat("Video Input", "input"), feat("Up to 20s", "duration")],
2558
- paramConfig: {
2559
- ...params.prompt({ maxLength: LTX_PROMPT_MAX }),
2560
- ...params.duration([5, 10, 15, 20], 5),
2561
- ...params.videoInput("Source Video")
2562
- }
2563
- },
2564
2479
  // ── LTX 2.3 ──────────────────────────────────────────────────────
2565
2480
  {
2566
2481
  id: "ltx-v2.3-pro",
@@ -3824,27 +3739,6 @@ registerPayloads(MODELS10, {
3824
3739
  });
3825
3740
 
3826
3741
  // src/vendors/catalog/wan.ts
3827
- var buildWanT2VPayload = (ctx) => ({
3828
- prompt: ctx.prompt,
3829
- resolution: ctx.resolution ?? "720p",
3830
- duration: ctx.duration ?? 5,
3831
- ...ctx.startFrame ? { image_url: ctx.startFrame } : {},
3832
- ...ctx.negativePrompt ? { negative_prompt: ctx.negativePrompt } : {},
3833
- ...ctx.aspectRatio ? { aspect_ratio: ctx.aspectRatio } : {}
3834
- });
3835
- var buildWanI2VPayload = (ctx) => ({
3836
- prompt: ctx.prompt,
3837
- image_url: ctx.startFrame,
3838
- resolution: ctx.resolution === "1080p" ? "1080p" : "720p",
3839
- duration: String(ctx.duration ?? 5),
3840
- ...ctx.negativePrompt ? { negative_prompt: ctx.negativePrompt } : {}
3841
- });
3842
- var buildWanR2VPayload = (ctx) => ({
3843
- prompt: ctx.prompt,
3844
- video_urls: [ctx.videoUrl],
3845
- resolution: ctx.resolution === "1080p" ? "1080p" : "720p",
3846
- duration: String(ctx.duration ?? 5)
3847
- });
3848
3742
  var buildWanImagePayload = (ctx) => ({
3849
3743
  prompt: ctx.prompt,
3850
3744
  model: "wan-2.6",
@@ -3987,54 +3881,6 @@ var wanV3ParamConfig = {
3987
3881
  ...params.seed()
3988
3882
  };
3989
3883
  var { MODELS: MODELS11 } = defineModels("wan", [
3990
- // ── Video ─────────────────────────────────────────
3991
- {
3992
- id: "wan-2.6-t2v",
3993
- name: "Wan 2.6",
3994
- modelId: "wan2.6-t2v",
3995
- addedAt: "2026-02-06",
3996
- deprecated: true,
3997
- // superseded by wan-2.7-t2v
3998
- workflow: "wan/v2.6/text-to-video",
3999
- editWorkflow: "wan/v2.6/image-to-video",
4000
- buildPayload: buildWanT2VPayload,
4001
- buildEditPayload: buildWanI2VPayload,
4002
- estimatedTime: { "480p": 40, "720p": 50, "1080p": 50 },
4003
- editEstimatedTime: 14,
4004
- mode: "video",
4005
- inputType: "t2v",
4006
- description: "Painterly artistic look with audio \u2014 up to 15s at 1080p.",
4007
- features: [feat("Image Input", "input"), feat("Start Frame", "frame"), feat("Audio", "audio"), feat("1080p", "resolution"), feat("5/10/15 sec", "duration")],
4008
- paramConfig: {
4009
- ...params.prompt({ maxLength: 5e3 }),
4010
- ...params.duration([5, 10, 15], 5),
4011
- ...params.resolution(["480p", "720p", "1080p"], "720p"),
4012
- ...params.aspectRatio(["16:9", "9:16", "1:1", "4:3", "3:4"]),
4013
- ...params.negativePrompt(),
4014
- ...params.startFrame()
4015
- }
4016
- },
4017
- {
4018
- id: "wan-2.6-r2v",
4019
- name: "Wan 2.6 Ref-to-Video",
4020
- modelId: "wan2.6-r2v",
4021
- addedAt: "2026-02-06",
4022
- deprecated: true,
4023
- // superseded by wan-2.7-r2v
4024
- workflow: "wan/v2.6/reference-to-video",
4025
- buildPayload: buildWanR2VPayload,
4026
- estimatedTime: 26,
4027
- mode: "video",
4028
- inputType: "v2v",
4029
- description: "Regenerate video from a reference clip with new stylistic direction.",
4030
- features: [feat("Video Input", "input"), feat("1080p", "resolution"), feat("5/10 sec", "duration")],
4031
- paramConfig: {
4032
- ...params.prompt({ maxLength: 5e3 }),
4033
- ...params.duration([5, 10], 5),
4034
- ...params.resolution(["720p", "1080p"], "720p"),
4035
- ...params.videoInput("Reference Video")
4036
- }
4037
- },
4038
3884
  // ── Image ─────────────────────────────────────────
4039
3885
  {
4040
3886
  id: "wan-2.6-image",
@@ -6085,105 +5931,6 @@ registerEditPayloads(MODELS17, {
6085
5931
  "grok-imagine-video-1.5-lite": buildGrokVideo15LiteEditPayload
6086
5932
  });
6087
5933
 
6088
- // src/vendors/catalog/pika.ts
6089
- var PIKA_RATIO_MAP = {
6090
- "16:9": 1.77,
6091
- "9:16": 0.56,
6092
- "1:1": 1,
6093
- "4:5": 0.8,
6094
- "5:4": 1.25,
6095
- "3:2": 1.5,
6096
- "2:3": 0.67
6097
- };
6098
- var buildPikaPayload = (ctx) => ({
6099
- prompt: ctx.prompt,
6100
- ...ctx.imageUrls?.[0] ? { image: ctx.imageUrls[0] } : {},
6101
- resolution: ctx.resolution ?? "720p",
6102
- duration: String(ctx.duration ?? 5),
6103
- ...!ctx.imageUrls?.[0] ? { aspectRatio: PIKA_RATIO_MAP[ctx.aspectRatio ?? "16:9"] ?? 1.77 } : {}
6104
- });
6105
- var buildPikaScenesPayload = (ctx) => ({
6106
- prompt: ctx.prompt,
6107
- images: ctx.imageUrls ?? [],
6108
- resolution: ctx.resolution ?? "720p",
6109
- duration: String(ctx.duration ?? 5),
6110
- aspectRatio: PIKA_RATIO_MAP[ctx.aspectRatio ?? "16:9"] ?? 1.77
6111
- });
6112
- var buildPikaFramesPayload = (ctx) => ({
6113
- prompt: ctx.prompt,
6114
- frames: ctx.imageUrls ?? [],
6115
- resolution: ctx.resolution ?? "720p",
6116
- duration: String(ctx.duration ?? 5),
6117
- aspectRatio: PIKA_RATIO_MAP[ctx.aspectRatio ?? "16:9"] ?? 1.77
6118
- });
6119
- var PIKA_DURATIONS = [5, 10];
6120
- var PIKA_AR = ["16:9", "9:16", "1:1", "4:5", "5:4", "3:2", "2:3"];
6121
- var PIKA_RESOLUTIONS = ["720p", "1080p"];
6122
- var { MODELS: MODELS18 } = defineModels("pika", [
6123
- {
6124
- id: "pika-2.2",
6125
- name: "Pika",
6126
- addedAt: "2026-02-06",
6127
- deprecated: true,
6128
- workflow: "pika-text-to-video-v2-2",
6129
- editWorkflow: "pika-image-to-video-v2-2",
6130
- buildPayload: buildPikaPayload,
6131
- estimatedTime: 50,
6132
- editEstimatedTime: 50,
6133
- mode: "video",
6134
- inputType: "t2v",
6135
- description: "Expressive animation across many visual styles from text or image.",
6136
- features: [feat("Image Input", "input"), feat("Up to 1080p", "resolution"), feat("5/10 sec", "duration")],
6137
- paramConfig: {
6138
- ...params.prompt(),
6139
- ...params.duration(PIKA_DURATIONS, 5),
6140
- ...params.aspectRatio(PIKA_AR),
6141
- ...params.resolution(PIKA_RESOLUTIONS),
6142
- ...params.imageInput()
6143
- }
6144
- },
6145
- {
6146
- id: "pika-2.2-scenes",
6147
- name: "Pika Scenes",
6148
- addedAt: "2026-02-06",
6149
- deprecated: true,
6150
- workflow: "pika-scenes-v2-2",
6151
- buildPayload: buildPikaScenesPayload,
6152
- estimatedTime: 55,
6153
- mode: "video",
6154
- inputType: "i2v",
6155
- description: "Blend up to 4 images into a cohesive video with smooth transitions.",
6156
- features: [feat("Multi-Image Input", "input"), feat("Up to 1080p", "resolution"), feat("5/10 sec", "duration")],
6157
- paramConfig: {
6158
- ...params.prompt(),
6159
- ...params.duration(PIKA_DURATIONS, 5),
6160
- ...params.aspectRatio(PIKA_AR),
6161
- ...params.resolution(PIKA_RESOLUTIONS),
6162
- ...params.imageInput(4, "Scene Images", true)
6163
- }
6164
- },
6165
- {
6166
- id: "pika-2.2-frames",
6167
- name: "Pika Frames",
6168
- addedAt: "2026-02-06",
6169
- deprecated: true,
6170
- workflow: "pika-frames-v2-2",
6171
- buildPayload: buildPikaFramesPayload,
6172
- estimatedTime: 50,
6173
- mode: "video",
6174
- inputType: "i2v",
6175
- description: "Morph between two keyframes with controlled in-between motion.",
6176
- features: [feat("Multi-Image Input", "input"), feat("Up to 1080p", "resolution"), feat("5/10 sec", "duration")],
6177
- paramConfig: {
6178
- ...params.prompt(),
6179
- ...params.duration(PIKA_DURATIONS, 5),
6180
- ...params.resolution(PIKA_RESOLUTIONS),
6181
- // aspectRatio: vendor ignores it for Frames — output aspect depends on input frames
6182
- ...params.imageInput(2, "Start + End Frame", true)
6183
- }
6184
- }
6185
- ]);
6186
-
6187
5934
  // src/vendors/catalog/veo.ts
6188
5935
  function inferMimeType(url) {
6189
5936
  return url.match(/\.png(\?|$)/i) ? "image/png" : "image/jpeg";
@@ -6248,7 +5995,7 @@ var veoLiteParamConfig = {
6248
5995
  var veoLiteConstraints = [
6249
5996
  { when: { resolution: { is: "1080p" } }, then: { duration: { allowed: [8], reason: "1080p supports 8s only" } } }
6250
5997
  ];
6251
- var { MODELS: MODELS19 } = defineModels("google", [
5998
+ var { MODELS: MODELS18 } = defineModels("google", [
6252
5999
  {
6253
6000
  id: "veo-3.1",
6254
6001
  name: "Veo 3.1",
@@ -6384,7 +6131,7 @@ var buildRunwayGen3aTurboPayload = (ctx) => ({
6384
6131
  ratio: RUNWAY_GEN3A_RATIO_MAP[ctx.aspectRatio ?? "16:9"] ?? "1280:768",
6385
6132
  duration: ctx.duration ?? 5
6386
6133
  });
6387
- var { MODELS: MODELS20 } = defineModels("runway", [
6134
+ var { MODELS: MODELS19 } = defineModels("runway", [
6388
6135
  {
6389
6136
  id: "runway-avatar-video",
6390
6137
  name: "Runway Avatar",
@@ -6580,7 +6327,7 @@ var flux3VideoConstraints = [
6580
6327
  resolution: { allowed: ["hd"], reason: "Draft mode only supports HD resolution." }
6581
6328
  } }
6582
6329
  ];
6583
- var { MODELS: MODELS21 } = defineModels("flux", [
6330
+ var { MODELS: MODELS20 } = defineModels("flux", [
6584
6331
  {
6585
6332
  ...fluxV2Base,
6586
6333
  id: "flux-2-pro",
@@ -6641,6 +6388,8 @@ var { MODELS: MODELS21 } = defineModels("flux", [
6641
6388
  name: "Flux Kontext Max",
6642
6389
  modelId: "flux-kontext-max",
6643
6390
  addedAt: "2026-02-06",
6391
+ deprecated: true,
6392
+ // FLUX.1 Kontext is 2 generations behind: superseded by flux-2-* / flux-3-image
6644
6393
  buildPayload: buildFluxKontextPayload("flux-kontext-max"),
6645
6394
  estimatedTime: 15,
6646
6395
  description: "Edit and compose from up to 4 reference images with context awareness.",
@@ -6658,6 +6407,8 @@ var { MODELS: MODELS21 } = defineModels("flux", [
6658
6407
  name: "Flux Kontext Pro",
6659
6408
  modelId: "flux-kontext-pro",
6660
6409
  addedAt: "2026-02-06",
6410
+ deprecated: true,
6411
+ // FLUX.1 Kontext is 2 generations behind: superseded by flux-2-* / flux-3-image
6661
6412
  buildPayload: buildFluxKontextPayload("flux-kontext-pro"),
6662
6413
  estimatedTime: 15,
6663
6414
  badge: ["fast"],
@@ -6870,7 +6621,7 @@ var buildFlux3VideoPayload = (input) => {
6870
6621
  ...input.draft ? { draft: input.draft } : {}
6871
6622
  };
6872
6623
  };
6873
- registerPayloads(MODELS21, {
6624
+ registerPayloads(MODELS20, {
6874
6625
  "flux-3-video": buildFlux3VideoPayload
6875
6626
  });
6876
6627
 
@@ -7022,7 +6773,7 @@ var nanoBanana21ThinkingParam = {
7022
6773
  }
7023
6774
  }
7024
6775
  };
7025
- var { MODELS: MODELS22 } = defineModels("google", [
6776
+ var { MODELS: MODELS21 } = defineModels("google", [
7026
6777
  // ── Image ─────────────────────────────────────────────────────────
7027
6778
  {
7028
6779
  id: "gemini-nano-banana-2.1",
@@ -7252,6 +7003,41 @@ var { MODELS: MODELS22 } = defineModels("google", [
7252
7003
  ...params.videoInput("Source Video", "asset", false, 30),
7253
7004
  ...params.videoInputs(3, "Reference Videos")
7254
7005
  }
7006
+ },
7007
+ {
7008
+ id: "macaron-cookie",
7009
+ name: "Gemini Omni (Macaron)",
7010
+ addedAt: "2026-10-19",
7011
+ release: "preview",
7012
+ workflow: "gemini-omni/video",
7013
+ estimatedTime: { "360p": 30, "720p": 40, "1080p": 60, "4k": 90 },
7014
+ mode: "video",
7015
+ inputType: "t2v",
7016
+ description: "Gemini Omni (Macaron) \u2014 multimodal video with frame interpolation, extension, reference-guided generation, and up to 4K output.",
7017
+ features: [feat("Start/End Frame", "input"), feat("Reference Images & Videos", "input"), feat("Video Extension", "input"), feat("4K", "resolution"), feat("3\u201310 sec", "duration")],
7018
+ paramConfig: {
7019
+ ...params.prompt(),
7020
+ ...params.aspectRatio(["16:9", "9:16"], "16:9"),
7021
+ ...params.resolution(["360p", "720p", "1080p", "4k"], "720p"),
7022
+ ...params.duration([3, 4, 5, 6, 7, 8, 9, 10], 8),
7023
+ ...params.startFrame("Start Frame"),
7024
+ ...params.endFrame("End Frame"),
7025
+ ...params.imageInput(5, "Reference Images", false, "reference"),
7026
+ // Source video drives the edit/extend tasks; input must be under 30s.
7027
+ ...params.videoInput("Source Video", "asset", false, 30),
7028
+ ...params.videoInputs(3, "Reference Videos"),
7029
+ // With a source video the worker auto-derives `extend`; this toggle lets
7030
+ // the caller choose video editing instead. Only sent when a video is present.
7031
+ ...p.enum("task", ["edit", "extend"], "edit", { label: "Mode" })
7032
+ },
7033
+ // edit/extend only apply to a source video — disable the toggle until one
7034
+ // is provided (matches the payload builder, which omits `task` without it).
7035
+ constraints: [
7036
+ {
7037
+ when: { videoUrl: { exists: false } },
7038
+ then: { task: { disabled: true, reason: "Add a source video to choose edit or extend." } }
7039
+ }
7040
+ ]
7255
7041
  }
7256
7042
  ]);
7257
7043
 
@@ -7274,6 +7060,21 @@ var buildOmniFlash11Payload = (input) => ({
7274
7060
  ...input.videoUrl ? { video: { url: input.videoUrl } } : {},
7275
7061
  ...input.videoUrls?.length ? { referenceVideos: input.videoUrls.map((url) => ({ url })) } : {}
7276
7062
  });
7063
+ var buildMacaronCookiePayload = (input) => ({
7064
+ prompt: input.prompt,
7065
+ model: "macaron-cookie",
7066
+ aspectRatio: input.aspectRatio ?? "16:9",
7067
+ durationSeconds: input.duration ?? 8,
7068
+ resolution: input.resolution ?? "720p",
7069
+ ...input.startFrame ? { image: toImage(input.startFrame) } : {},
7070
+ ...input.endFrame ? { lastFrame: toImage(input.endFrame) } : {},
7071
+ ...input.imageUrls?.length ? { referenceImages: input.imageUrls.map(toImage) } : {},
7072
+ // A source video runs edit or extend; the worker auto-derives `extend`, so
7073
+ // forward the explicit task (default 'edit') to pick editing. Omitted without
7074
+ // a video so text/image/reference inputs keep their own derived tasks.
7075
+ ...input.videoUrl ? { video: { url: input.videoUrl }, task: input.task ?? "edit" } : {},
7076
+ ...input.videoUrls?.length ? { referenceVideos: input.videoUrls.map((url) => ({ url })) } : {}
7077
+ });
7277
7078
  var STYLE_MAX = 500;
7278
7079
  var TEXT_MAX = 6e3;
7279
7080
  var invalid = (message) => new ApiError(message, { status: 400, code: "validation_error" });
@@ -7357,8 +7158,9 @@ var buildTts38Payload = (model) => (input) => {
7357
7158
  ...voiceFields(input)
7358
7159
  };
7359
7160
  };
7360
- registerPayloads(MODELS22, {
7161
+ registerPayloads(MODELS21, {
7361
7162
  "gemini-omni-1.1-flash-preview": buildOmniFlash11Payload,
7163
+ "macaron-cookie": buildMacaronCookiePayload,
7362
7164
  "gemini-2.5-flash-tts": buildTts25Payload("gemini-2.5-flash-tts"),
7363
7165
  "gemini-2.5-pro-tts": buildTts25Payload("gemini-2.5-pro-tts"),
7364
7166
  "gemini-3.8-flash-tts": buildTts38Payload("gemini-3.8-flash-tts"),
@@ -7535,7 +7337,7 @@ var validateGptImage25Input = (input) => {
7535
7337
  const violation = gptImageSizeViolation(String(input.size).trim());
7536
7338
  if (violation) throw new Error(`"size" ${violation}`);
7537
7339
  };
7538
- var { MODELS: MODELS23 } = defineModels("openai", [
7340
+ var { MODELS: MODELS22 } = defineModels("openai", [
7539
7341
  // ── Image ─────────────────────────────────────────
7540
7342
  {
7541
7343
  id: "gpt-image-2.5-sunburst",
@@ -7693,11 +7495,11 @@ var editFor = (model) => (input) => ({
7693
7495
  ...input.background ? { background: input.background } : {},
7694
7496
  ...input.outputFormat ? { output_format: input.outputFormat } : {}
7695
7497
  });
7696
- registerPayloads(MODELS23, {
7498
+ registerPayloads(MODELS22, {
7697
7499
  "gpt-image-2.5-flare": generateFor("gpt-image-2.5-flare"),
7698
7500
  "gpt-image-2.5-sunburst": generateFor("gpt-image-2.5-sunburst")
7699
7501
  });
7700
- registerEditPayloads(MODELS23, {
7502
+ registerEditPayloads(MODELS22, {
7701
7503
  "gpt-image-2.5-flare": editFor("gpt-image-2.5-flare"),
7702
7504
  "gpt-image-2.5-sunburst": editFor("gpt-image-2.5-sunburst")
7703
7505
  });
@@ -7786,7 +7588,7 @@ var dialogueLinesParam = (maxLength) => ({
7786
7588
  }
7787
7589
  }
7788
7590
  });
7789
- var { MODELS: MODELS24 } = defineModels("elevenlabs", [
7591
+ var { MODELS: MODELS23 } = defineModels("elevenlabs", [
7790
7592
  // ── TTS ───────────────────────────────────────────────────────────
7791
7593
  {
7792
7594
  id: "eleven-v4",
@@ -7837,6 +7639,8 @@ var { MODELS: MODELS24 } = defineModels("elevenlabs", [
7837
7639
  name: "Eleven Multilingual v2",
7838
7640
  modelId: "eleven_multilingual_v2",
7839
7641
  addedAt: "2026-02-06",
7642
+ deprecated: true,
7643
+ // 2 generations behind: superseded by eleven-v3 / eleven-v4
7840
7644
  workflow: "elevenlabs/v1/text-to-speech",
7841
7645
  estimatedTime: 9,
7842
7646
  mode: "audio",
@@ -8194,7 +7998,7 @@ var buildElevenLabsDialoguePayload = (catalogId, modelId) => (input) => {
8194
7998
  };
8195
7999
  };
8196
8000
  function dialogueCharacterCap(catalogId) {
8197
- const descriptor = MODELS24.find((m) => m.id === catalogId)?.paramConfig.dialogue?.descriptor;
8001
+ const descriptor = MODELS23.find((m) => m.id === catalogId)?.paramConfig.dialogue?.descriptor;
8198
8002
  const text = descriptor?.kind === "object" ? descriptor.fields?.text : void 0;
8199
8003
  const cap = text && "maxLength" in text ? text.maxLength : void 0;
8200
8004
  if (typeof cap !== "number") {
@@ -8217,7 +8021,7 @@ var buildElevenLabsVideoToMusicPayload = (input) => ({
8217
8021
  video_urls: input.videoUrls,
8218
8022
  ...input.prompt ? { description: input.prompt } : {}
8219
8023
  });
8220
- registerPayloads(MODELS24, {
8024
+ registerPayloads(MODELS23, {
8221
8025
  "elevenlabs-music-v2": buildElevenLabsMusicPayload,
8222
8026
  "eleven-v4": buildElevenLabsTTSPayload("eleven_v4"),
8223
8027
  "eleven-v4-turbo": buildElevenLabsTTSPayload("eleven_v4_turbo"),
@@ -8297,7 +8101,7 @@ var heygenVideo1Constraints = [
8297
8101
  aspectRatio: { allowed: [...VIDEO1_RATIOS], reason: VIDEO1_ADAPTIVE_NEEDS_REFS }
8298
8102
  } }
8299
8103
  ];
8300
- var { MODELS: MODELS25 } = defineModels("heygen", [
8104
+ var { MODELS: MODELS24 } = defineModels("heygen", [
8301
8105
  // ── Photo Avatar (i2v) ────────────────────────────────────────────
8302
8106
  {
8303
8107
  id: "heygen-talking-photo",
@@ -8414,7 +8218,7 @@ var buildHeygenVideo1Payload = (input) => {
8414
8218
  ...input.seed != null ? { seed: input.seed } : {}
8415
8219
  };
8416
8220
  };
8417
- registerPayloads(MODELS25, {
8221
+ registerPayloads(MODELS24, {
8418
8222
  "heygen-video-1": buildHeygenVideo1Payload
8419
8223
  });
8420
8224
 
@@ -8647,7 +8451,7 @@ var ideogram45Constraints = [
8647
8451
  resolution: { disabled: true, reason: "The output keeps the source image size." }
8648
8452
  } }
8649
8453
  ];
8650
- var { MODELS: MODELS26 } = defineModels("ideogram", [
8454
+ var { MODELS: MODELS25 } = defineModels("ideogram", [
8651
8455
  {
8652
8456
  id: "ideogram-4-5",
8653
8457
  name: "Ideogram 4.5",
@@ -8946,7 +8750,7 @@ var buildIdeogram45PreciseEditPayload = (input) => {
8946
8750
  ...input.enableCopyrightDetection ? { enable_copyright_detection: true } : {}
8947
8751
  };
8948
8752
  };
8949
- registerPayloads(MODELS26, {
8753
+ registerPayloads(MODELS25, {
8950
8754
  "ideogram-4-5": buildIdeogram45Payload,
8951
8755
  "ideogram-4-5-precise-edit": buildIdeogram45PreciseEditPayload
8952
8756
  });
@@ -8959,13 +8763,6 @@ var QWEN_V1_SIZES = [
8959
8763
  "2368x1728",
8960
8764
  "1728x2368"
8961
8765
  ];
8962
- var buildQwenPayload = (ctx) => {
8963
- const hasImages = Array.isArray(ctx.imageUrls) && ctx.imageUrls.length > 0;
8964
- return {
8965
- prompt: ctx.prompt,
8966
- ...hasImages ? { image_url: ctx.imageUrls[0] } : {}
8967
- };
8968
- };
8969
8766
  var buildQwen2Payload = (ctx) => {
8970
8767
  const hasImages = Array.isArray(ctx.imageUrls) && ctx.imageUrls.length > 0;
8971
8768
  return {
@@ -9010,26 +8807,7 @@ var qwenV1Params3 = {
9010
8807
  ...p.enum("promptExtendMode", ["direct", "agent"], "direct"),
9011
8808
  ...p.boolean("enableThinking", true, "Deep Thinking")
9012
8809
  };
9013
- var { MODELS: MODELS27 } = defineModels("qwen", [
9014
- {
9015
- id: "qwen",
9016
- name: "Qwen",
9017
- addedAt: "2026-02-06",
9018
- deprecated: true,
9019
- // superseded by qwen-2 / qwen-2-pro / qwen-edit-plus
9020
- workflow: "qwen-image",
9021
- editWorkflow: "qwen-image/image-to-image",
9022
- buildPayload: buildQwenPayload,
9023
- estimatedTime: 12,
9024
- mode: "image",
9025
- inputType: "t2i",
9026
- description: "Clean 1K images from text or an image reference.",
9027
- features: [feat("Image Input", "input"), feat("1K", "resolution")],
9028
- paramConfig: {
9029
- ...params.prompt(),
9030
- ...params.imageInput(1, "Source Image")
9031
- }
9032
- },
8810
+ var { MODELS: MODELS26 } = defineModels("qwen", [
9033
8811
  {
9034
8812
  id: "qwen-image-2",
9035
8813
  name: "Qwen 2",
@@ -9180,7 +8958,7 @@ var v4StylesParams = p.file("imageUrls", "image", {
9180
8958
  category: "reference",
9181
8959
  maxBytes: 10 * 1024 * 1024
9182
8960
  });
9183
- var { MODELS: MODELS28 } = defineModels("recraft", [
8961
+ var { MODELS: MODELS27 } = defineModels("recraft", [
9184
8962
  // ── V4.1 family (raster only — vector variants exist in API but not exposed here) ─
9185
8963
  {
9186
8964
  id: "recraftv4_1",
@@ -9404,32 +9182,6 @@ var { MODELS: MODELS28 } = defineModels("recraft", [
9404
9182
  ...params.imageWeight(0, 100, 80, 5)
9405
9183
  }
9406
9184
  },
9407
- {
9408
- id: "recraftv2",
9409
- name: "Recraft 20B",
9410
- addedAt: "2026-02-15",
9411
- deprecated: true,
9412
- // superseded by recraftv3 / recraftv4 / recraftv4_pro
9413
- workflow: "recraft/v1/images/generations",
9414
- buildPayload: buildRecraftLegacyPayload("recraftv2"),
9415
- estimatedTime: 7,
9416
- mode: "image",
9417
- inputType: "t2i",
9418
- description: "20B parameter model with icon, illustration, and vector modes.",
9419
- features: [feat("Styles", "style")],
9420
- paramConfig: {
9421
- ...params.prompt({ maxLength: 1e3 }),
9422
- ...params.style([
9423
- { id: "realistic_image", label: "Realistic" },
9424
- { id: "digital_illustration", label: "Illustration" },
9425
- { id: "vector_illustration", label: "Vector (SVG)" },
9426
- { id: "icon", label: "Icon" }
9427
- ], "realistic_image"),
9428
- ...params.aspectRatio(recraftAspectRatios, "1:1"),
9429
- ...params.count([1, 2, 4, 6]),
9430
- ...params.negativePrompt()
9431
- }
9432
- },
9433
9185
  // ── V4 Pro / Vector / V3 Vector variants ────────────────────────
9434
9186
  {
9435
9187
  id: "recraftv4_pro",
@@ -9584,27 +9336,6 @@ var { MODELS: MODELS28 } = defineModels("recraft", [
9584
9336
  ...params.negativePrompt()
9585
9337
  }
9586
9338
  },
9587
- // ── V2 Vector variant ──────────────────────────────────────────────
9588
- {
9589
- id: "recraftv2_vector",
9590
- name: "Recraft 20B Vector",
9591
- addedAt: "2026-03-13",
9592
- deprecated: true,
9593
- // superseded by recraftv3_vector / recraftv4_vector
9594
- workflow: "recraft/v1/images/generations",
9595
- buildPayload: buildRecraftLegacyPayload("recraftv2_vector"),
9596
- estimatedTime: 7,
9597
- mode: "image",
9598
- inputType: "t2i",
9599
- description: "Dedicated SVG vector output using the 20B parameter model.",
9600
- features: [feat("Vector/SVG", "characteristic")],
9601
- paramConfig: {
9602
- ...params.prompt({ maxLength: 1e3 }),
9603
- ...params.aspectRatio(recraftAspectRatios, "1:1"),
9604
- ...params.count([1, 2, 4, 6]),
9605
- ...params.negativePrompt()
9606
- }
9607
- },
9608
9339
  // ── Utility models ─────────────────────────────────────────────────
9609
9340
  {
9610
9341
  id: "recraft-vectorize",
@@ -9738,7 +9469,7 @@ var TOPAZ_VIDEO_MODEL_OPTIONS = [
9738
9469
  "Starlight Sharp",
9739
9470
  "Starlight Fast 2"
9740
9471
  ];
9741
- var { MODELS: MODELS29 } = defineModels("topaz", [
9472
+ var { MODELS: MODELS28 } = defineModels("topaz", [
9742
9473
  {
9743
9474
  id: "topaz-upscale-image",
9744
9475
  name: "Topaz Image Upscale",
@@ -9789,7 +9520,7 @@ var buildTopazVideoPayload = (input) => ({
9789
9520
  upscale_factor: 2,
9790
9521
  H264_output: false
9791
9522
  });
9792
- registerPayloads(MODELS29, {
9523
+ registerPayloads(MODELS28, {
9793
9524
  "topaz-upscale-image": buildTopazImagePayload,
9794
9525
  "topaz-upscale-video": buildTopazVideoPayload
9795
9526
  });
@@ -9873,7 +9604,7 @@ var buildPcpSanaSprintPayload = (ctx) => {
9873
9604
  height: h
9874
9605
  };
9875
9606
  };
9876
- var { MODELS: MODELS30 } = defineModels("picsart", [
9607
+ var { MODELS: MODELS29 } = defineModels("picsart", [
9877
9608
  {
9878
9609
  id: "picsart-change-bg",
9879
9610
  name: "Picsart Change Background",
@@ -10066,7 +9797,7 @@ var buildLyria3Payload = (apiModelId) => (ctx) => ({
10066
9797
  ...(ctx.imageUrls?.length ?? 0) > 1 ? { images: ctx.imageUrls.slice(0, 10).map(imagePart) } : {}
10067
9798
  });
10068
9799
  var LYRIA_PROMPT_MAX = 5e3;
10069
- var { MODELS: MODELS31 } = defineModels("google", [
9800
+ var { MODELS: MODELS30 } = defineModels("google", [
10070
9801
  {
10071
9802
  id: "lyria-3-clip",
10072
9803
  addedAt: "2026-03-26",
@@ -10204,7 +9935,7 @@ var buildHH11R2VPayload = (ctx) => {
10204
9935
  };
10205
9936
  var HH_AR = ["16:9", "9:16", "1:1", "4:3", "3:4"];
10206
9937
  var HH_RES = ["720P", "1080P"];
10207
- var { MODELS: MODELS32 } = defineModels("happyhorse", [
9938
+ var { MODELS: MODELS31 } = defineModels("happyhorse", [
10208
9939
  {
10209
9940
  id: "happyhorse-1.0-t2v",
10210
9941
  name: "Happy Horse 1.0",
@@ -10358,7 +10089,7 @@ var baseFeatures = [
10358
10089
  feat("Up to 1080p", "resolution"),
10359
10090
  feat("5-15 sec", "duration")
10360
10091
  ];
10361
- var { MODELS: MODELS33 } = defineModels("pixverse", [
10092
+ var { MODELS: MODELS32 } = defineModels("pixverse", [
10362
10093
  // ── V6 ─────────────────────────────────────────────────────────────
10363
10094
  {
10364
10095
  id: "pixverse-v6",
@@ -10476,7 +10207,7 @@ var buildReferenceToVideoPayload = (model) => (input) => ({
10476
10207
  aspect_ratio: input.aspectRatio ?? "16:9",
10477
10208
  image_references: (input.imageUrls ?? []).map((url) => ({ url }))
10478
10209
  });
10479
- registerPayloads(MODELS33, {
10210
+ registerPayloads(MODELS32, {
10480
10211
  "pixverse-v6": buildTextToVideoPayload("v6"),
10481
10212
  "pixverse-v6-image": buildImageToVideoPayload("v6"),
10482
10213
  "pixverse-v6-fusion": buildReferenceToVideoPayload("v6"),
@@ -10486,7 +10217,7 @@ registerPayloads(MODELS33, {
10486
10217
  });
10487
10218
 
10488
10219
  // src/vendors/catalog/async-ai.ts
10489
- var { MODELS: MODELS34 } = defineModels("async", [
10220
+ var { MODELS: MODELS33 } = defineModels("async", [
10490
10221
  {
10491
10222
  id: "async-flash-v1",
10492
10223
  name: "Async Flash v1.0",
@@ -10526,7 +10257,7 @@ var buildAsyncTtsPayload = (input) => {
10526
10257
  }
10527
10258
  };
10528
10259
  };
10529
- registerPayloads(MODELS34, { "async-flash-v1": buildAsyncTtsPayload });
10260
+ registerPayloads(MODELS33, { "async-flash-v1": buildAsyncTtsPayload });
10530
10261
 
10531
10262
  // src/vendors/catalog/llm.ts
10532
10263
  var ADDED = "2026-06-16";
@@ -11102,7 +10833,7 @@ var { MODELS: MINIMAX_LLM } = defineModels("minimax", [
11102
10833
  constraints: h3ContextIrConstraints
11103
10834
  }
11104
10835
  ]);
11105
- var MODELS35 = [...ANTHROPIC, ...OPENAI_LLM, ...GEMINI_LLM, ...KIMI_LLM, ...GROK_LLM, ...MINIMAX_LLM];
10836
+ var MODELS34 = [...ANTHROPIC, ...OPENAI_LLM, ...GEMINI_LLM, ...KIMI_LLM, ...GROK_LLM, ...MINIMAX_LLM];
11106
10837
 
11107
10838
  // src/vendors/catalog/llm.payloads.ts
11108
10839
  var CLAUDE_MAX_TOKENS = 8192;
@@ -11167,7 +10898,7 @@ var buildMinimaxH3ContextIrPayload = (input) => {
11167
10898
  ...input.aspectRatio ? { ratio: input.aspectRatio } : {}
11168
10899
  };
11169
10900
  };
11170
- registerPayloads(MODELS35, {
10901
+ registerPayloads(MODELS34, {
11171
10902
  "minimax-h3-context-ir": buildMinimaxH3ContextIrPayload,
11172
10903
  "claude-fable-5-1": buildClaudePayload("claude-fable-5-1"),
11173
10904
  "claude-fable-5": buildClaudePayload("claude-fable-5"),
@@ -11210,7 +10941,7 @@ registerPayloads(MODELS35, {
11210
10941
  var CAPTIONS_MAX_DURATION_SEC = 300;
11211
10942
  var CAPTIONS_MAX_BYTES = 50 * 1024 * 1024;
11212
10943
  var DEFAULT_CAPTION_TEMPLATE_ID = "ctpl_DxflLOnuKkb198FNdI9E";
11213
- var { MODELS: MODELS36 } = defineModels("captionsai", [
10944
+ var { MODELS: MODELS35 } = defineModels("captionsai", [
11214
10945
  {
11215
10946
  id: "captionsai-video-captions",
11216
10947
  name: "Captions",
@@ -11250,12 +10981,12 @@ var buildCaptionsPayload = (input) => ({
11250
10981
  video: { url: input.videoUrl },
11251
10982
  caption_template_id: input.templateId ?? DEFAULT_CAPTION_TEMPLATE_ID
11252
10983
  });
11253
- registerPayloads(MODELS36, {
10984
+ registerPayloads(MODELS35, {
11254
10985
  "captionsai-video-captions": buildCaptionsPayload
11255
10986
  });
11256
10987
 
11257
10988
  // src/vendors/catalog/meta.ts
11258
- var { MODELS: MODELS37 } = defineModels("meta", [
10989
+ var { MODELS: MODELS36 } = defineModels("meta", [
11259
10990
  // ── Image ─────────────────────────────────────────
11260
10991
  {
11261
10992
  id: "muse-image-1.0",
@@ -11350,11 +11081,11 @@ var buildSam3VideoPayload = (input) => ({
11350
11081
  apply_mask: input.applyMask ?? true,
11351
11082
  video_output_type: SAM3_OUTPUT_TYPE[input.outputFormat ?? "mp4"]
11352
11083
  });
11353
- registerPayloads(MODELS37, {
11084
+ registerPayloads(MODELS36, {
11354
11085
  "muse-image-1.0": buildMuseImagePayload,
11355
11086
  "sam-3-video": buildSam3VideoPayload
11356
11087
  });
11357
- registerEditPayloads(MODELS37, {
11088
+ registerEditPayloads(MODELS36, {
11358
11089
  "muse-image-1.0": buildMuseImageEditPayload
11359
11090
  });
11360
11091
 
@@ -11368,7 +11099,7 @@ var evaluateOutputSchema = {
11368
11099
  return output;
11369
11100
  }
11370
11101
  };
11371
- var { MODELS: MODELS38 } = defineModels("typesafe", [
11102
+ var { MODELS: MODELS37 } = defineModels("typesafe", [
11372
11103
  {
11373
11104
  id: "typesafe-evaluate",
11374
11105
  name: "Jev",
@@ -11425,12 +11156,12 @@ var buildEvaluatePayload = (input) => ({
11425
11156
  model: "jev-latest",
11426
11157
  questions: input.questions
11427
11158
  });
11428
- registerPayloads(MODELS38, {
11159
+ registerPayloads(MODELS37, {
11429
11160
  "typesafe-evaluate": buildEvaluatePayload
11430
11161
  });
11431
11162
 
11432
11163
  // src/vendors/catalog/depth-anything.ts
11433
- var { MODELS: MODELS39 } = defineModels("depth-anything", [
11164
+ var { MODELS: MODELS38 } = defineModels("depth-anything", [
11434
11165
  {
11435
11166
  // Billed per second of the source clip at one flat rate, so none of the
11436
11167
  // knobs below changes the price. `max_frames` / `output_fps` are left to
@@ -11472,7 +11203,7 @@ var buildDepthAnythingVideoPayload = (input) => ({
11472
11203
  // The .npz export is a second, non-media output the SDK has no slot for.
11473
11204
  include_raw_depths: false
11474
11205
  });
11475
- registerPayloads(MODELS39, {
11206
+ registerPayloads(MODELS38, {
11476
11207
  "depth-anything-video": buildDepthAnythingVideoPayload
11477
11208
  });
11478
11209
 
@@ -11485,7 +11216,7 @@ var bitrateKbps = {
11485
11216
  descriptor: { kind: "range", min: 32, max: 320, step: 1 }
11486
11217
  }
11487
11218
  };
11488
- var { MODELS: MODELS40 } = defineModels("mirelo", [
11219
+ var { MODELS: MODELS39 } = defineModels("mirelo", [
11489
11220
  {
11490
11221
  id: "mirelo-sfx-2.0-text-to-audio",
11491
11222
  name: "Mirelo SFX 2.0 (Text to Audio)",
@@ -11580,7 +11311,7 @@ var buildVideoToVideoPayload = (input) => ({
11580
11311
  ...input.negativePrompt != null ? { negative_prompt: input.negativePrompt } : {},
11581
11312
  ...input.seed != null ? { seed: input.seed } : {}
11582
11313
  });
11583
- registerPayloads(MODELS40, {
11314
+ registerPayloads(MODELS39, {
11584
11315
  "mirelo-sfx-2.0-text-to-audio": buildTextToAudioPayload,
11585
11316
  "mirelo-sfx-2.0-video-to-audio": buildVideoToAudioPayload,
11586
11317
  "mirelo-sfx-2.0-video-to-video": buildVideoToVideoPayload
@@ -11736,14 +11467,14 @@ var ALL_MODELS = [
11736
11467
  ...MODELS22,
11737
11468
  ...MODELS23,
11738
11469
  ...MODELS24,
11739
- ...MODELS25,
11740
11470
  ...MODELS9,
11471
+ ...MODELS25,
11472
+ ...MODELS30,
11741
11473
  ...MODELS26,
11742
- ...MODELS31,
11743
11474
  ...MODELS27,
11744
11475
  ...MODELS28,
11745
11476
  ...MODELS29,
11746
- ...MODELS30,
11477
+ ...MODELS31,
11747
11478
  ...MODELS32,
11748
11479
  ...MODELS33,
11749
11480
  ...MODELS34,
@@ -11751,8 +11482,7 @@ var ALL_MODELS = [
11751
11482
  ...MODELS36,
11752
11483
  ...MODELS37,
11753
11484
  ...MODELS38,
11754
- ...MODELS39,
11755
- ...MODELS40
11485
+ ...MODELS39
11756
11486
  ];
11757
11487
  var getModelsByMode = (mode, includeHidden = false) => ALL_MODELS.filter((m) => m.mode === mode && (includeHidden || isVisibleForReleases(m)));
11758
11488
 
@@ -15412,9 +15142,6 @@ var KlingV4Omni = "kling-v4-omni";
15412
15142
  var KlingVideoEffects = "kling-video-effects";
15413
15143
  var KlingVideoO1 = "kling-video-o1";
15414
15144
  var Ltx23A2v = "ltx-2.3-a2v";
15415
- var LtxProT2v = "ltx-pro-t2v";
15416
- var LtxV2Fast = "ltx-v2-fast";
15417
- var LtxV2Retake = "ltx-v2-retake";
15418
15145
  var LtxV23Extend = "ltx-v2.3-extend";
15419
15146
  var LtxV23Fast = "ltx-v2.3-fast";
15420
15147
  var LtxV23Outpaint = "ltx-v2.3-outpaint";
@@ -15431,6 +15158,7 @@ var LumaUni1Max = "luma-uni-1-max";
15431
15158
  var Lyria3Clip = "lyria-3-clip";
15432
15159
  var Lyria3Pro = "lyria-3-pro";
15433
15160
  var Lyria35 = "lyria-3.5";
15161
+ var MacaronCookie = "macaron-cookie";
15434
15162
  var MinimaxH3 = "minimax-h3";
15435
15163
  var MinimaxH3ContextIr = "minimax-h3-context-ir";
15436
15164
  var MinimaxH3Max = "minimax-h3-max";
@@ -15457,16 +15185,12 @@ var PicsartQwenMakeup = "picsart-qwen-makeup";
15457
15185
  var PicsartSanaSprintV1 = "picsart-sana-sprint-v1";
15458
15186
  var PicsartSodV82 = "picsart-sod-v8-2";
15459
15187
  var PicsartVideography = "picsart-videography";
15460
- var Pika22 = "pika-2.2";
15461
- var Pika22Frames = "pika-2.2-frames";
15462
- var Pika22Scenes = "pika-2.2-scenes";
15463
15188
  var PixverseC1 = "pixverse-c1";
15464
15189
  var PixverseC1Fusion = "pixverse-c1-fusion";
15465
15190
  var PixverseC1Image = "pixverse-c1-image";
15466
15191
  var PixverseV6 = "pixverse-v6";
15467
15192
  var PixverseV6Fusion = "pixverse-v6-fusion";
15468
15193
  var PixverseV6Image = "pixverse-v6-image";
15469
- var Qwen = "qwen";
15470
15194
  var QwenImage2 = "qwen-image-2";
15471
15195
  var QwenImage2Pro = "qwen-image-2-pro";
15472
15196
  var QwenImage30 = "qwen-image-3.0";
@@ -15476,8 +15200,6 @@ var RecraftCrispUpscale = "recraft-crisp-upscale";
15476
15200
  var RecraftExplore = "recraft-explore";
15477
15201
  var RecraftExploreSimilar = "recraft-explore-similar";
15478
15202
  var RecraftVectorize = "recraft-vectorize";
15479
- var Recraftv2 = "recraftv2";
15480
- var Recraftv2Vector = "recraftv2_vector";
15481
15203
  var Recraftv3 = "recraftv3";
15482
15204
  var Recraftv3Vector = "recraftv3_vector";
15483
15205
  var Recraftv3ReplaceBg = "recraftv3-replace-bg";
@@ -15543,8 +15265,6 @@ var Veo31 = "veo-3.1";
15543
15265
  var Veo31Fast = "veo-3.1-fast";
15544
15266
  var Veo31Lite = "veo-3.1-lite";
15545
15267
  var Wan26Image = "wan-2.6-image";
15546
- var Wan26R2v = "wan-2.6-r2v";
15547
- var Wan26T2v = "wan-2.6-t2v";
15548
15268
  var Wan27I2v = "wan-2.7-i2v";
15549
15269
  var Wan27R2v = "wan-2.7-r2v";
15550
15270
  var Wan27T2v = "wan-2.7-t2v";
@@ -15686,9 +15406,6 @@ var Models = {
15686
15406
  KlingVideoEffects,
15687
15407
  KlingVideoO1,
15688
15408
  Ltx23A2v,
15689
- LtxProT2v,
15690
- LtxV2Fast,
15691
- LtxV2Retake,
15692
15409
  LtxV23Extend,
15693
15410
  LtxV23Fast,
15694
15411
  LtxV23Outpaint,
@@ -15705,6 +15422,7 @@ var Models = {
15705
15422
  Lyria3Clip,
15706
15423
  Lyria3Pro,
15707
15424
  Lyria35,
15425
+ MacaronCookie,
15708
15426
  MinimaxH3,
15709
15427
  MinimaxH3ContextIr,
15710
15428
  MinimaxH3Max,
@@ -15731,16 +15449,12 @@ var Models = {
15731
15449
  PicsartSanaSprintV1,
15732
15450
  PicsartSodV82,
15733
15451
  PicsartVideography,
15734
- Pika22,
15735
- Pika22Frames,
15736
- Pika22Scenes,
15737
15452
  PixverseC1,
15738
15453
  PixverseC1Fusion,
15739
15454
  PixverseC1Image,
15740
15455
  PixverseV6,
15741
15456
  PixverseV6Fusion,
15742
15457
  PixverseV6Image,
15743
- Qwen,
15744
15458
  QwenImage2,
15745
15459
  QwenImage2Pro,
15746
15460
  QwenImage30,
@@ -15750,8 +15464,6 @@ var Models = {
15750
15464
  RecraftExplore,
15751
15465
  RecraftExploreSimilar,
15752
15466
  RecraftVectorize,
15753
- Recraftv2,
15754
- Recraftv2Vector,
15755
15467
  Recraftv3,
15756
15468
  Recraftv3Vector,
15757
15469
  Recraftv3ReplaceBg,
@@ -15817,8 +15529,6 @@ var Models = {
15817
15529
  Veo31Fast,
15818
15530
  Veo31Lite,
15819
15531
  Wan26Image,
15820
- Wan26R2v,
15821
- Wan26T2v,
15822
15532
  Wan27I2v,
15823
15533
  Wan27R2v,
15824
15534
  Wan27T2v,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@picsart/ai-sdk",
3
- "version": "6.48.2",
3
+ "version": "6.50.0",
4
4
  "type": "module",
5
5
  "description": "Type-safe SDK for 100+ AI models — image, video, audio, and text generation with Picsart",
6
6
  "license": "MIT",