@picsart/ai-sdk 6.49.0 → 6.50.1

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 +0 -81
  2. package/index.js +78 -409
  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;
@@ -1442,26 +1423,6 @@ type ModelInputById = {
1442
1423
  "picsart-videography": {
1443
1424
  imageUrls: [string, ...string[]];
1444
1425
  };
1445
- "pika-2.2": {
1446
- prompt: string;
1447
- duration?: 5 | 10;
1448
- aspectRatio?: "16:9" | "9:16" | "1:1" | "4:5" | "5:4" | "3:2" | "2:3";
1449
- resolution?: "720p" | "1080p";
1450
- imageUrls?: string[];
1451
- };
1452
- "pika-2.2-frames": {
1453
- prompt: string;
1454
- duration?: 5 | 10;
1455
- resolution?: "720p" | "1080p";
1456
- imageUrls: [string, ...string[]];
1457
- };
1458
- "pika-2.2-scenes": {
1459
- prompt: string;
1460
- duration?: 5 | 10;
1461
- aspectRatio?: "16:9" | "9:16" | "1:1" | "4:5" | "5:4" | "3:2" | "2:3";
1462
- resolution?: "720p" | "1080p";
1463
- imageUrls: [string, ...string[]];
1464
- };
1465
1426
  "pixverse-c1": {
1466
1427
  prompt: string;
1467
1428
  quality?: "360p" | "540p" | "720p" | "1080p";
@@ -1506,10 +1467,6 @@ type ModelInputById = {
1506
1467
  generateAudio?: boolean;
1507
1468
  imageUrls: [string, ...string[]];
1508
1469
  };
1509
- "qwen": {
1510
- prompt: string;
1511
- imageUrls?: string[];
1512
- };
1513
1470
  "qwen-image-2": {
1514
1471
  prompt: string;
1515
1472
  count?: 1 | 2 | 4 | 6 | 8 | 10;
@@ -1565,19 +1522,6 @@ type ModelInputById = {
1565
1522
  prompt?: string;
1566
1523
  imageUrls: [string, ...string[]];
1567
1524
  };
1568
- "recraftv2": {
1569
- prompt: string;
1570
- style?: "realistic_image" | "digital_illustration" | "vector_illustration" | "icon";
1571
- aspectRatio?: "1:1" | "4:3" | "3:4" | "3:2" | "2:3" | "16:9" | "9:16" | "2:1" | "1:2";
1572
- count?: 1 | 2 | 4 | 6;
1573
- negativePrompt?: string;
1574
- };
1575
- "recraftv2_vector": {
1576
- prompt: string;
1577
- aspectRatio?: "1:1" | "4:3" | "3:4" | "3:2" | "2:3" | "16:9" | "9:16" | "2:1" | "1:2";
1578
- count?: 1 | 2 | 4 | 6;
1579
- negativePrompt?: string;
1580
- };
1581
1525
  "recraftv3": {
1582
1526
  prompt: string;
1583
1527
  style?: "realistic_image" | "digital_illustration" | "vector_illustration" | "any";
@@ -2120,20 +2064,6 @@ type ModelInputById = {
2120
2064
  count?: 1 | 2 | 4 | 6 | 8 | 10;
2121
2065
  negativePrompt?: string;
2122
2066
  };
2123
- "wan-2.6-r2v": {
2124
- prompt: string;
2125
- duration?: 5 | 10;
2126
- resolution?: "720p" | "1080p";
2127
- videoUrl: string;
2128
- };
2129
- "wan-2.6-t2v": {
2130
- prompt: string;
2131
- duration?: 5 | 10 | 15;
2132
- resolution?: "480p" | "720p" | "1080p";
2133
- aspectRatio?: "16:9" | "9:16" | "1:1" | "4:3" | "3:4";
2134
- negativePrompt?: string;
2135
- startFrame?: string;
2136
- };
2137
2067
  "wan-2.7-i2v": {
2138
2068
  prompt?: string;
2139
2069
  duration?: 5 | 10 | 15;
@@ -3713,9 +3643,6 @@ declare const Models: {
3713
3643
  readonly KlingVideoEffects: "kling-video-effects";
3714
3644
  readonly KlingVideoO1: "kling-video-o1";
3715
3645
  readonly Ltx23A2v: "ltx-2.3-a2v";
3716
- readonly LtxProT2v: "ltx-pro-t2v";
3717
- readonly LtxV2Fast: "ltx-v2-fast";
3718
- readonly LtxV2Retake: "ltx-v2-retake";
3719
3646
  readonly LtxV23Extend: "ltx-v2.3-extend";
3720
3647
  readonly LtxV23Fast: "ltx-v2.3-fast";
3721
3648
  readonly LtxV23Outpaint: "ltx-v2.3-outpaint";
@@ -3759,16 +3686,12 @@ declare const Models: {
3759
3686
  readonly PicsartSanaSprintV1: "picsart-sana-sprint-v1";
3760
3687
  readonly PicsartSodV82: "picsart-sod-v8-2";
3761
3688
  readonly PicsartVideography: "picsart-videography";
3762
- readonly Pika22: "pika-2.2";
3763
- readonly Pika22Frames: "pika-2.2-frames";
3764
- readonly Pika22Scenes: "pika-2.2-scenes";
3765
3689
  readonly PixverseC1: "pixverse-c1";
3766
3690
  readonly PixverseC1Fusion: "pixverse-c1-fusion";
3767
3691
  readonly PixverseC1Image: "pixverse-c1-image";
3768
3692
  readonly PixverseV6: "pixverse-v6";
3769
3693
  readonly PixverseV6Fusion: "pixverse-v6-fusion";
3770
3694
  readonly PixverseV6Image: "pixverse-v6-image";
3771
- readonly Qwen: "qwen";
3772
3695
  readonly QwenImage2: "qwen-image-2";
3773
3696
  readonly QwenImage2Pro: "qwen-image-2-pro";
3774
3697
  readonly QwenImage30: "qwen-image-3.0";
@@ -3778,8 +3701,6 @@ declare const Models: {
3778
3701
  readonly RecraftExplore: "recraft-explore";
3779
3702
  readonly RecraftExploreSimilar: "recraft-explore-similar";
3780
3703
  readonly RecraftVectorize: "recraft-vectorize";
3781
- readonly Recraftv2: "recraftv2";
3782
- readonly Recraftv2Vector: "recraftv2_vector";
3783
3704
  readonly Recraftv3: "recraftv3";
3784
3705
  readonly Recraftv3Vector: "recraftv3_vector";
3785
3706
  readonly Recraftv3ReplaceBg: "recraftv3-replace-bg";
@@ -3845,8 +3766,6 @@ declare const Models: {
3845
3766
  readonly Veo31Fast: "veo-3.1-fast";
3846
3767
  readonly Veo31Lite: "veo-3.1-lite";
3847
3768
  readonly Wan26Image: "wan-2.6-image";
3848
- readonly Wan26R2v: "wan-2.6-r2v";
3849
- readonly Wan26T2v: "wan-2.6-t2v";
3850
3769
  readonly Wan27I2v: "wan-2.7-i2v";
3851
3770
  readonly Wan27R2v: "wan-2.7-r2v";
3852
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",
@@ -3919,6 +3813,9 @@ var buildWan27VideoEditPayload = (ctx) => {
3919
3813
  };
3920
3814
  var WAN27_AR = ["16:9", "9:16", "1:1", "4:3", "3:4"];
3921
3815
  var WAN27_RES = ["720P", "1080P"];
3816
+ var WAN_V3_IMAGE_BOUNDS = { minSidePixels: 240, maxBytes: 20 * 1024 * 1024 };
3817
+ var WAN_V3_VIDEO_BOUNDS = { minDurationSec: 1, maxDurationSec: 15, maxBytes: 100 * 1024 * 1024 };
3818
+ var WAN_V3_AUDIO_BOUNDS = { maxDurationSec: 15, maxBytes: 15 * 1024 * 1024 };
3922
3819
  var WAN_V3_FRAME_REF_REASON = "Start/End frames cannot be combined with reference images, videos, or audios";
3923
3820
  var wanV3Constraints = [
3924
3821
  // any reference input active → disable frame slots
@@ -3956,6 +3853,15 @@ var wanV3Constraints = [
3956
3853
  audioUrls: { exists: false }
3957
3854
  }, then: {
3958
3855
  prompt: { required: true, reason: "Add a prompt or at least one frame or reference." }
3856
+ } },
3857
+ // Vendor: input video duration + output duration must stay within 30 s.
3858
+ // Reference videos are capped at 15 s in total, so only the 30 s option can break it.
3859
+ { when: { videoUrls: { exists: true } }, then: {
3860
+ duration: { allowed: [-1, 5, 10, 15], reason: "With a reference video, the output can be at most 15 s." }
3861
+ } },
3862
+ // Vendor: last_frame must be accompanied by first_frame.
3863
+ { when: { startFrame: { exists: false } }, then: {
3864
+ endFrame: { disabled: true, reason: "End frame requires a start frame." }
3959
3865
  } }
3960
3866
  ];
3961
3867
  var wanV3Features = [feat("Image Input", "input"), feat("Video Input", "input"), feat("Audio", "audio"), feat("Start/End Frame", "frame"), feat("1080P", "resolution"), feat("Adaptive Ratio", "resolution")];
@@ -3976,65 +3882,17 @@ var wanV3ParamConfig = {
3976
3882
  // Vendor default is 'adaptive' (model chooses from intent and input media).
3977
3883
  ...params.aspectRatio(["16:9", "9:16", "1:1", "4:3", "3:4", "adaptive"], "adaptive"),
3978
3884
  ...params.generateAudio(true),
3979
- ...params.startFrame(),
3980
- ...params.endFrame(),
3981
- ...params.imageInput(10, "Reference Images"),
3982
- ...params.videoInputs(5, "Reference Videos", false),
3983
- ...params.audioInputs(5, "Reference Audios"),
3885
+ ...params.startFrame("Start Frame", false, WAN_V3_IMAGE_BOUNDS),
3886
+ ...params.endFrame("End Frame", WAN_V3_IMAGE_BOUNDS),
3887
+ ...params.imageInput(10, "Reference Images", false, "reference", WAN_V3_IMAGE_BOUNDS),
3888
+ ...params.videoInputs(5, "Reference Videos", false, WAN_V3_VIDEO_BOUNDS),
3889
+ ...params.audioInputs(5, "Reference Audios", false, WAN_V3_AUDIO_BOUNDS),
3984
3890
  ...p.boolean("enableThinking", false, "Deep Thinking"),
3985
3891
  ...p.boolean("watermark", false, "Watermark"),
3986
3892
  // No default: a materialized seed would pin every generation to one value.
3987
3893
  ...params.seed()
3988
3894
  };
3989
3895
  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
3896
  // ── Image ─────────────────────────────────────────
4039
3897
  {
4040
3898
  id: "wan-2.6-image",
@@ -6085,105 +5943,6 @@ registerEditPayloads(MODELS17, {
6085
5943
  "grok-imagine-video-1.5-lite": buildGrokVideo15LiteEditPayload
6086
5944
  });
6087
5945
 
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
5946
  // src/vendors/catalog/veo.ts
6188
5947
  function inferMimeType(url) {
6189
5948
  return url.match(/\.png(\?|$)/i) ? "image/png" : "image/jpeg";
@@ -6248,7 +6007,7 @@ var veoLiteParamConfig = {
6248
6007
  var veoLiteConstraints = [
6249
6008
  { when: { resolution: { is: "1080p" } }, then: { duration: { allowed: [8], reason: "1080p supports 8s only" } } }
6250
6009
  ];
6251
- var { MODELS: MODELS19 } = defineModels("google", [
6010
+ var { MODELS: MODELS18 } = defineModels("google", [
6252
6011
  {
6253
6012
  id: "veo-3.1",
6254
6013
  name: "Veo 3.1",
@@ -6384,7 +6143,7 @@ var buildRunwayGen3aTurboPayload = (ctx) => ({
6384
6143
  ratio: RUNWAY_GEN3A_RATIO_MAP[ctx.aspectRatio ?? "16:9"] ?? "1280:768",
6385
6144
  duration: ctx.duration ?? 5
6386
6145
  });
6387
- var { MODELS: MODELS20 } = defineModels("runway", [
6146
+ var { MODELS: MODELS19 } = defineModels("runway", [
6388
6147
  {
6389
6148
  id: "runway-avatar-video",
6390
6149
  name: "Runway Avatar",
@@ -6580,7 +6339,7 @@ var flux3VideoConstraints = [
6580
6339
  resolution: { allowed: ["hd"], reason: "Draft mode only supports HD resolution." }
6581
6340
  } }
6582
6341
  ];
6583
- var { MODELS: MODELS21 } = defineModels("flux", [
6342
+ var { MODELS: MODELS20 } = defineModels("flux", [
6584
6343
  {
6585
6344
  ...fluxV2Base,
6586
6345
  id: "flux-2-pro",
@@ -6641,6 +6400,8 @@ var { MODELS: MODELS21 } = defineModels("flux", [
6641
6400
  name: "Flux Kontext Max",
6642
6401
  modelId: "flux-kontext-max",
6643
6402
  addedAt: "2026-02-06",
6403
+ deprecated: true,
6404
+ // FLUX.1 Kontext is 2 generations behind: superseded by flux-2-* / flux-3-image
6644
6405
  buildPayload: buildFluxKontextPayload("flux-kontext-max"),
6645
6406
  estimatedTime: 15,
6646
6407
  description: "Edit and compose from up to 4 reference images with context awareness.",
@@ -6658,6 +6419,8 @@ var { MODELS: MODELS21 } = defineModels("flux", [
6658
6419
  name: "Flux Kontext Pro",
6659
6420
  modelId: "flux-kontext-pro",
6660
6421
  addedAt: "2026-02-06",
6422
+ deprecated: true,
6423
+ // FLUX.1 Kontext is 2 generations behind: superseded by flux-2-* / flux-3-image
6661
6424
  buildPayload: buildFluxKontextPayload("flux-kontext-pro"),
6662
6425
  estimatedTime: 15,
6663
6426
  badge: ["fast"],
@@ -6870,7 +6633,7 @@ var buildFlux3VideoPayload = (input) => {
6870
6633
  ...input.draft ? { draft: input.draft } : {}
6871
6634
  };
6872
6635
  };
6873
- registerPayloads(MODELS21, {
6636
+ registerPayloads(MODELS20, {
6874
6637
  "flux-3-video": buildFlux3VideoPayload
6875
6638
  });
6876
6639
 
@@ -7022,7 +6785,7 @@ var nanoBanana21ThinkingParam = {
7022
6785
  }
7023
6786
  }
7024
6787
  };
7025
- var { MODELS: MODELS22 } = defineModels("google", [
6788
+ var { MODELS: MODELS21 } = defineModels("google", [
7026
6789
  // ── Image ─────────────────────────────────────────────────────────
7027
6790
  {
7028
6791
  id: "gemini-nano-banana-2.1",
@@ -7407,7 +7170,7 @@ var buildTts38Payload = (model) => (input) => {
7407
7170
  ...voiceFields(input)
7408
7171
  };
7409
7172
  };
7410
- registerPayloads(MODELS22, {
7173
+ registerPayloads(MODELS21, {
7411
7174
  "gemini-omni-1.1-flash-preview": buildOmniFlash11Payload,
7412
7175
  "macaron-cookie": buildMacaronCookiePayload,
7413
7176
  "gemini-2.5-flash-tts": buildTts25Payload("gemini-2.5-flash-tts"),
@@ -7586,7 +7349,7 @@ var validateGptImage25Input = (input) => {
7586
7349
  const violation = gptImageSizeViolation(String(input.size).trim());
7587
7350
  if (violation) throw new Error(`"size" ${violation}`);
7588
7351
  };
7589
- var { MODELS: MODELS23 } = defineModels("openai", [
7352
+ var { MODELS: MODELS22 } = defineModels("openai", [
7590
7353
  // ── Image ─────────────────────────────────────────
7591
7354
  {
7592
7355
  id: "gpt-image-2.5-sunburst",
@@ -7744,11 +7507,11 @@ var editFor = (model) => (input) => ({
7744
7507
  ...input.background ? { background: input.background } : {},
7745
7508
  ...input.outputFormat ? { output_format: input.outputFormat } : {}
7746
7509
  });
7747
- registerPayloads(MODELS23, {
7510
+ registerPayloads(MODELS22, {
7748
7511
  "gpt-image-2.5-flare": generateFor("gpt-image-2.5-flare"),
7749
7512
  "gpt-image-2.5-sunburst": generateFor("gpt-image-2.5-sunburst")
7750
7513
  });
7751
- registerEditPayloads(MODELS23, {
7514
+ registerEditPayloads(MODELS22, {
7752
7515
  "gpt-image-2.5-flare": editFor("gpt-image-2.5-flare"),
7753
7516
  "gpt-image-2.5-sunburst": editFor("gpt-image-2.5-sunburst")
7754
7517
  });
@@ -7837,7 +7600,7 @@ var dialogueLinesParam = (maxLength) => ({
7837
7600
  }
7838
7601
  }
7839
7602
  });
7840
- var { MODELS: MODELS24 } = defineModels("elevenlabs", [
7603
+ var { MODELS: MODELS23 } = defineModels("elevenlabs", [
7841
7604
  // ── TTS ───────────────────────────────────────────────────────────
7842
7605
  {
7843
7606
  id: "eleven-v4",
@@ -7888,6 +7651,8 @@ var { MODELS: MODELS24 } = defineModels("elevenlabs", [
7888
7651
  name: "Eleven Multilingual v2",
7889
7652
  modelId: "eleven_multilingual_v2",
7890
7653
  addedAt: "2026-02-06",
7654
+ deprecated: true,
7655
+ // 2 generations behind: superseded by eleven-v3 / eleven-v4
7891
7656
  workflow: "elevenlabs/v1/text-to-speech",
7892
7657
  estimatedTime: 9,
7893
7658
  mode: "audio",
@@ -8245,7 +8010,7 @@ var buildElevenLabsDialoguePayload = (catalogId, modelId) => (input) => {
8245
8010
  };
8246
8011
  };
8247
8012
  function dialogueCharacterCap(catalogId) {
8248
- const descriptor = MODELS24.find((m) => m.id === catalogId)?.paramConfig.dialogue?.descriptor;
8013
+ const descriptor = MODELS23.find((m) => m.id === catalogId)?.paramConfig.dialogue?.descriptor;
8249
8014
  const text = descriptor?.kind === "object" ? descriptor.fields?.text : void 0;
8250
8015
  const cap = text && "maxLength" in text ? text.maxLength : void 0;
8251
8016
  if (typeof cap !== "number") {
@@ -8268,7 +8033,7 @@ var buildElevenLabsVideoToMusicPayload = (input) => ({
8268
8033
  video_urls: input.videoUrls,
8269
8034
  ...input.prompt ? { description: input.prompt } : {}
8270
8035
  });
8271
- registerPayloads(MODELS24, {
8036
+ registerPayloads(MODELS23, {
8272
8037
  "elevenlabs-music-v2": buildElevenLabsMusicPayload,
8273
8038
  "eleven-v4": buildElevenLabsTTSPayload("eleven_v4"),
8274
8039
  "eleven-v4-turbo": buildElevenLabsTTSPayload("eleven_v4_turbo"),
@@ -8348,7 +8113,7 @@ var heygenVideo1Constraints = [
8348
8113
  aspectRatio: { allowed: [...VIDEO1_RATIOS], reason: VIDEO1_ADAPTIVE_NEEDS_REFS }
8349
8114
  } }
8350
8115
  ];
8351
- var { MODELS: MODELS25 } = defineModels("heygen", [
8116
+ var { MODELS: MODELS24 } = defineModels("heygen", [
8352
8117
  // ── Photo Avatar (i2v) ────────────────────────────────────────────
8353
8118
  {
8354
8119
  id: "heygen-talking-photo",
@@ -8465,7 +8230,7 @@ var buildHeygenVideo1Payload = (input) => {
8465
8230
  ...input.seed != null ? { seed: input.seed } : {}
8466
8231
  };
8467
8232
  };
8468
- registerPayloads(MODELS25, {
8233
+ registerPayloads(MODELS24, {
8469
8234
  "heygen-video-1": buildHeygenVideo1Payload
8470
8235
  });
8471
8236
 
@@ -8698,7 +8463,7 @@ var ideogram45Constraints = [
8698
8463
  resolution: { disabled: true, reason: "The output keeps the source image size." }
8699
8464
  } }
8700
8465
  ];
8701
- var { MODELS: MODELS26 } = defineModels("ideogram", [
8466
+ var { MODELS: MODELS25 } = defineModels("ideogram", [
8702
8467
  {
8703
8468
  id: "ideogram-4-5",
8704
8469
  name: "Ideogram 4.5",
@@ -8997,7 +8762,7 @@ var buildIdeogram45PreciseEditPayload = (input) => {
8997
8762
  ...input.enableCopyrightDetection ? { enable_copyright_detection: true } : {}
8998
8763
  };
8999
8764
  };
9000
- registerPayloads(MODELS26, {
8765
+ registerPayloads(MODELS25, {
9001
8766
  "ideogram-4-5": buildIdeogram45Payload,
9002
8767
  "ideogram-4-5-precise-edit": buildIdeogram45PreciseEditPayload
9003
8768
  });
@@ -9010,13 +8775,6 @@ var QWEN_V1_SIZES = [
9010
8775
  "2368x1728",
9011
8776
  "1728x2368"
9012
8777
  ];
9013
- var buildQwenPayload = (ctx) => {
9014
- const hasImages = Array.isArray(ctx.imageUrls) && ctx.imageUrls.length > 0;
9015
- return {
9016
- prompt: ctx.prompt,
9017
- ...hasImages ? { image_url: ctx.imageUrls[0] } : {}
9018
- };
9019
- };
9020
8778
  var buildQwen2Payload = (ctx) => {
9021
8779
  const hasImages = Array.isArray(ctx.imageUrls) && ctx.imageUrls.length > 0;
9022
8780
  return {
@@ -9061,26 +8819,7 @@ var qwenV1Params3 = {
9061
8819
  ...p.enum("promptExtendMode", ["direct", "agent"], "direct"),
9062
8820
  ...p.boolean("enableThinking", true, "Deep Thinking")
9063
8821
  };
9064
- var { MODELS: MODELS27 } = defineModels("qwen", [
9065
- {
9066
- id: "qwen",
9067
- name: "Qwen",
9068
- addedAt: "2026-02-06",
9069
- deprecated: true,
9070
- // superseded by qwen-2 / qwen-2-pro / qwen-edit-plus
9071
- workflow: "qwen-image",
9072
- editWorkflow: "qwen-image/image-to-image",
9073
- buildPayload: buildQwenPayload,
9074
- estimatedTime: 12,
9075
- mode: "image",
9076
- inputType: "t2i",
9077
- description: "Clean 1K images from text or an image reference.",
9078
- features: [feat("Image Input", "input"), feat("1K", "resolution")],
9079
- paramConfig: {
9080
- ...params.prompt(),
9081
- ...params.imageInput(1, "Source Image")
9082
- }
9083
- },
8822
+ var { MODELS: MODELS26 } = defineModels("qwen", [
9084
8823
  {
9085
8824
  id: "qwen-image-2",
9086
8825
  name: "Qwen 2",
@@ -9231,7 +8970,7 @@ var v4StylesParams = p.file("imageUrls", "image", {
9231
8970
  category: "reference",
9232
8971
  maxBytes: 10 * 1024 * 1024
9233
8972
  });
9234
- var { MODELS: MODELS28 } = defineModels("recraft", [
8973
+ var { MODELS: MODELS27 } = defineModels("recraft", [
9235
8974
  // ── V4.1 family (raster only — vector variants exist in API but not exposed here) ─
9236
8975
  {
9237
8976
  id: "recraftv4_1",
@@ -9455,32 +9194,6 @@ var { MODELS: MODELS28 } = defineModels("recraft", [
9455
9194
  ...params.imageWeight(0, 100, 80, 5)
9456
9195
  }
9457
9196
  },
9458
- {
9459
- id: "recraftv2",
9460
- name: "Recraft 20B",
9461
- addedAt: "2026-02-15",
9462
- deprecated: true,
9463
- // superseded by recraftv3 / recraftv4 / recraftv4_pro
9464
- workflow: "recraft/v1/images/generations",
9465
- buildPayload: buildRecraftLegacyPayload("recraftv2"),
9466
- estimatedTime: 7,
9467
- mode: "image",
9468
- inputType: "t2i",
9469
- description: "20B parameter model with icon, illustration, and vector modes.",
9470
- features: [feat("Styles", "style")],
9471
- paramConfig: {
9472
- ...params.prompt({ maxLength: 1e3 }),
9473
- ...params.style([
9474
- { id: "realistic_image", label: "Realistic" },
9475
- { id: "digital_illustration", label: "Illustration" },
9476
- { id: "vector_illustration", label: "Vector (SVG)" },
9477
- { id: "icon", label: "Icon" }
9478
- ], "realistic_image"),
9479
- ...params.aspectRatio(recraftAspectRatios, "1:1"),
9480
- ...params.count([1, 2, 4, 6]),
9481
- ...params.negativePrompt()
9482
- }
9483
- },
9484
9197
  // ── V4 Pro / Vector / V3 Vector variants ────────────────────────
9485
9198
  {
9486
9199
  id: "recraftv4_pro",
@@ -9635,27 +9348,6 @@ var { MODELS: MODELS28 } = defineModels("recraft", [
9635
9348
  ...params.negativePrompt()
9636
9349
  }
9637
9350
  },
9638
- // ── V2 Vector variant ──────────────────────────────────────────────
9639
- {
9640
- id: "recraftv2_vector",
9641
- name: "Recraft 20B Vector",
9642
- addedAt: "2026-03-13",
9643
- deprecated: true,
9644
- // superseded by recraftv3_vector / recraftv4_vector
9645
- workflow: "recraft/v1/images/generations",
9646
- buildPayload: buildRecraftLegacyPayload("recraftv2_vector"),
9647
- estimatedTime: 7,
9648
- mode: "image",
9649
- inputType: "t2i",
9650
- description: "Dedicated SVG vector output using the 20B parameter model.",
9651
- features: [feat("Vector/SVG", "characteristic")],
9652
- paramConfig: {
9653
- ...params.prompt({ maxLength: 1e3 }),
9654
- ...params.aspectRatio(recraftAspectRatios, "1:1"),
9655
- ...params.count([1, 2, 4, 6]),
9656
- ...params.negativePrompt()
9657
- }
9658
- },
9659
9351
  // ── Utility models ─────────────────────────────────────────────────
9660
9352
  {
9661
9353
  id: "recraft-vectorize",
@@ -9789,7 +9481,7 @@ var TOPAZ_VIDEO_MODEL_OPTIONS = [
9789
9481
  "Starlight Sharp",
9790
9482
  "Starlight Fast 2"
9791
9483
  ];
9792
- var { MODELS: MODELS29 } = defineModels("topaz", [
9484
+ var { MODELS: MODELS28 } = defineModels("topaz", [
9793
9485
  {
9794
9486
  id: "topaz-upscale-image",
9795
9487
  name: "Topaz Image Upscale",
@@ -9840,7 +9532,7 @@ var buildTopazVideoPayload = (input) => ({
9840
9532
  upscale_factor: 2,
9841
9533
  H264_output: false
9842
9534
  });
9843
- registerPayloads(MODELS29, {
9535
+ registerPayloads(MODELS28, {
9844
9536
  "topaz-upscale-image": buildTopazImagePayload,
9845
9537
  "topaz-upscale-video": buildTopazVideoPayload
9846
9538
  });
@@ -9924,7 +9616,7 @@ var buildPcpSanaSprintPayload = (ctx) => {
9924
9616
  height: h
9925
9617
  };
9926
9618
  };
9927
- var { MODELS: MODELS30 } = defineModels("picsart", [
9619
+ var { MODELS: MODELS29 } = defineModels("picsart", [
9928
9620
  {
9929
9621
  id: "picsart-change-bg",
9930
9622
  name: "Picsart Change Background",
@@ -10117,7 +9809,7 @@ var buildLyria3Payload = (apiModelId) => (ctx) => ({
10117
9809
  ...(ctx.imageUrls?.length ?? 0) > 1 ? { images: ctx.imageUrls.slice(0, 10).map(imagePart) } : {}
10118
9810
  });
10119
9811
  var LYRIA_PROMPT_MAX = 5e3;
10120
- var { MODELS: MODELS31 } = defineModels("google", [
9812
+ var { MODELS: MODELS30 } = defineModels("google", [
10121
9813
  {
10122
9814
  id: "lyria-3-clip",
10123
9815
  addedAt: "2026-03-26",
@@ -10255,7 +9947,7 @@ var buildHH11R2VPayload = (ctx) => {
10255
9947
  };
10256
9948
  var HH_AR = ["16:9", "9:16", "1:1", "4:3", "3:4"];
10257
9949
  var HH_RES = ["720P", "1080P"];
10258
- var { MODELS: MODELS32 } = defineModels("happyhorse", [
9950
+ var { MODELS: MODELS31 } = defineModels("happyhorse", [
10259
9951
  {
10260
9952
  id: "happyhorse-1.0-t2v",
10261
9953
  name: "Happy Horse 1.0",
@@ -10409,7 +10101,7 @@ var baseFeatures = [
10409
10101
  feat("Up to 1080p", "resolution"),
10410
10102
  feat("5-15 sec", "duration")
10411
10103
  ];
10412
- var { MODELS: MODELS33 } = defineModels("pixverse", [
10104
+ var { MODELS: MODELS32 } = defineModels("pixverse", [
10413
10105
  // ── V6 ─────────────────────────────────────────────────────────────
10414
10106
  {
10415
10107
  id: "pixverse-v6",
@@ -10527,7 +10219,7 @@ var buildReferenceToVideoPayload = (model) => (input) => ({
10527
10219
  aspect_ratio: input.aspectRatio ?? "16:9",
10528
10220
  image_references: (input.imageUrls ?? []).map((url) => ({ url }))
10529
10221
  });
10530
- registerPayloads(MODELS33, {
10222
+ registerPayloads(MODELS32, {
10531
10223
  "pixverse-v6": buildTextToVideoPayload("v6"),
10532
10224
  "pixverse-v6-image": buildImageToVideoPayload("v6"),
10533
10225
  "pixverse-v6-fusion": buildReferenceToVideoPayload("v6"),
@@ -10537,7 +10229,7 @@ registerPayloads(MODELS33, {
10537
10229
  });
10538
10230
 
10539
10231
  // src/vendors/catalog/async-ai.ts
10540
- var { MODELS: MODELS34 } = defineModels("async", [
10232
+ var { MODELS: MODELS33 } = defineModels("async", [
10541
10233
  {
10542
10234
  id: "async-flash-v1",
10543
10235
  name: "Async Flash v1.0",
@@ -10577,7 +10269,7 @@ var buildAsyncTtsPayload = (input) => {
10577
10269
  }
10578
10270
  };
10579
10271
  };
10580
- registerPayloads(MODELS34, { "async-flash-v1": buildAsyncTtsPayload });
10272
+ registerPayloads(MODELS33, { "async-flash-v1": buildAsyncTtsPayload });
10581
10273
 
10582
10274
  // src/vendors/catalog/llm.ts
10583
10275
  var ADDED = "2026-06-16";
@@ -11153,7 +10845,7 @@ var { MODELS: MINIMAX_LLM } = defineModels("minimax", [
11153
10845
  constraints: h3ContextIrConstraints
11154
10846
  }
11155
10847
  ]);
11156
- var MODELS35 = [...ANTHROPIC, ...OPENAI_LLM, ...GEMINI_LLM, ...KIMI_LLM, ...GROK_LLM, ...MINIMAX_LLM];
10848
+ var MODELS34 = [...ANTHROPIC, ...OPENAI_LLM, ...GEMINI_LLM, ...KIMI_LLM, ...GROK_LLM, ...MINIMAX_LLM];
11157
10849
 
11158
10850
  // src/vendors/catalog/llm.payloads.ts
11159
10851
  var CLAUDE_MAX_TOKENS = 8192;
@@ -11218,7 +10910,7 @@ var buildMinimaxH3ContextIrPayload = (input) => {
11218
10910
  ...input.aspectRatio ? { ratio: input.aspectRatio } : {}
11219
10911
  };
11220
10912
  };
11221
- registerPayloads(MODELS35, {
10913
+ registerPayloads(MODELS34, {
11222
10914
  "minimax-h3-context-ir": buildMinimaxH3ContextIrPayload,
11223
10915
  "claude-fable-5-1": buildClaudePayload("claude-fable-5-1"),
11224
10916
  "claude-fable-5": buildClaudePayload("claude-fable-5"),
@@ -11261,7 +10953,7 @@ registerPayloads(MODELS35, {
11261
10953
  var CAPTIONS_MAX_DURATION_SEC = 300;
11262
10954
  var CAPTIONS_MAX_BYTES = 50 * 1024 * 1024;
11263
10955
  var DEFAULT_CAPTION_TEMPLATE_ID = "ctpl_DxflLOnuKkb198FNdI9E";
11264
- var { MODELS: MODELS36 } = defineModels("captionsai", [
10956
+ var { MODELS: MODELS35 } = defineModels("captionsai", [
11265
10957
  {
11266
10958
  id: "captionsai-video-captions",
11267
10959
  name: "Captions",
@@ -11301,12 +10993,12 @@ var buildCaptionsPayload = (input) => ({
11301
10993
  video: { url: input.videoUrl },
11302
10994
  caption_template_id: input.templateId ?? DEFAULT_CAPTION_TEMPLATE_ID
11303
10995
  });
11304
- registerPayloads(MODELS36, {
10996
+ registerPayloads(MODELS35, {
11305
10997
  "captionsai-video-captions": buildCaptionsPayload
11306
10998
  });
11307
10999
 
11308
11000
  // src/vendors/catalog/meta.ts
11309
- var { MODELS: MODELS37 } = defineModels("meta", [
11001
+ var { MODELS: MODELS36 } = defineModels("meta", [
11310
11002
  // ── Image ─────────────────────────────────────────
11311
11003
  {
11312
11004
  id: "muse-image-1.0",
@@ -11401,11 +11093,11 @@ var buildSam3VideoPayload = (input) => ({
11401
11093
  apply_mask: input.applyMask ?? true,
11402
11094
  video_output_type: SAM3_OUTPUT_TYPE[input.outputFormat ?? "mp4"]
11403
11095
  });
11404
- registerPayloads(MODELS37, {
11096
+ registerPayloads(MODELS36, {
11405
11097
  "muse-image-1.0": buildMuseImagePayload,
11406
11098
  "sam-3-video": buildSam3VideoPayload
11407
11099
  });
11408
- registerEditPayloads(MODELS37, {
11100
+ registerEditPayloads(MODELS36, {
11409
11101
  "muse-image-1.0": buildMuseImageEditPayload
11410
11102
  });
11411
11103
 
@@ -11419,7 +11111,7 @@ var evaluateOutputSchema = {
11419
11111
  return output;
11420
11112
  }
11421
11113
  };
11422
- var { MODELS: MODELS38 } = defineModels("typesafe", [
11114
+ var { MODELS: MODELS37 } = defineModels("typesafe", [
11423
11115
  {
11424
11116
  id: "typesafe-evaluate",
11425
11117
  name: "Jev",
@@ -11476,12 +11168,12 @@ var buildEvaluatePayload = (input) => ({
11476
11168
  model: "jev-latest",
11477
11169
  questions: input.questions
11478
11170
  });
11479
- registerPayloads(MODELS38, {
11171
+ registerPayloads(MODELS37, {
11480
11172
  "typesafe-evaluate": buildEvaluatePayload
11481
11173
  });
11482
11174
 
11483
11175
  // src/vendors/catalog/depth-anything.ts
11484
- var { MODELS: MODELS39 } = defineModels("depth-anything", [
11176
+ var { MODELS: MODELS38 } = defineModels("depth-anything", [
11485
11177
  {
11486
11178
  // Billed per second of the source clip at one flat rate, so none of the
11487
11179
  // knobs below changes the price. `max_frames` / `output_fps` are left to
@@ -11523,7 +11215,7 @@ var buildDepthAnythingVideoPayload = (input) => ({
11523
11215
  // The .npz export is a second, non-media output the SDK has no slot for.
11524
11216
  include_raw_depths: false
11525
11217
  });
11526
- registerPayloads(MODELS39, {
11218
+ registerPayloads(MODELS38, {
11527
11219
  "depth-anything-video": buildDepthAnythingVideoPayload
11528
11220
  });
11529
11221
 
@@ -11536,7 +11228,7 @@ var bitrateKbps = {
11536
11228
  descriptor: { kind: "range", min: 32, max: 320, step: 1 }
11537
11229
  }
11538
11230
  };
11539
- var { MODELS: MODELS40 } = defineModels("mirelo", [
11231
+ var { MODELS: MODELS39 } = defineModels("mirelo", [
11540
11232
  {
11541
11233
  id: "mirelo-sfx-2.0-text-to-audio",
11542
11234
  name: "Mirelo SFX 2.0 (Text to Audio)",
@@ -11631,7 +11323,7 @@ var buildVideoToVideoPayload = (input) => ({
11631
11323
  ...input.negativePrompt != null ? { negative_prompt: input.negativePrompt } : {},
11632
11324
  ...input.seed != null ? { seed: input.seed } : {}
11633
11325
  });
11634
- registerPayloads(MODELS40, {
11326
+ registerPayloads(MODELS39, {
11635
11327
  "mirelo-sfx-2.0-text-to-audio": buildTextToAudioPayload,
11636
11328
  "mirelo-sfx-2.0-video-to-audio": buildVideoToAudioPayload,
11637
11329
  "mirelo-sfx-2.0-video-to-video": buildVideoToVideoPayload
@@ -11787,14 +11479,14 @@ var ALL_MODELS = [
11787
11479
  ...MODELS22,
11788
11480
  ...MODELS23,
11789
11481
  ...MODELS24,
11790
- ...MODELS25,
11791
11482
  ...MODELS9,
11483
+ ...MODELS25,
11484
+ ...MODELS30,
11792
11485
  ...MODELS26,
11793
- ...MODELS31,
11794
11486
  ...MODELS27,
11795
11487
  ...MODELS28,
11796
11488
  ...MODELS29,
11797
- ...MODELS30,
11489
+ ...MODELS31,
11798
11490
  ...MODELS32,
11799
11491
  ...MODELS33,
11800
11492
  ...MODELS34,
@@ -11802,8 +11494,7 @@ var ALL_MODELS = [
11802
11494
  ...MODELS36,
11803
11495
  ...MODELS37,
11804
11496
  ...MODELS38,
11805
- ...MODELS39,
11806
- ...MODELS40
11497
+ ...MODELS39
11807
11498
  ];
11808
11499
  var getModelsByMode = (mode, includeHidden = false) => ALL_MODELS.filter((m) => m.mode === mode && (includeHidden || isVisibleForReleases(m)));
11809
11500
 
@@ -15463,9 +15154,6 @@ var KlingV4Omni = "kling-v4-omni";
15463
15154
  var KlingVideoEffects = "kling-video-effects";
15464
15155
  var KlingVideoO1 = "kling-video-o1";
15465
15156
  var Ltx23A2v = "ltx-2.3-a2v";
15466
- var LtxProT2v = "ltx-pro-t2v";
15467
- var LtxV2Fast = "ltx-v2-fast";
15468
- var LtxV2Retake = "ltx-v2-retake";
15469
15157
  var LtxV23Extend = "ltx-v2.3-extend";
15470
15158
  var LtxV23Fast = "ltx-v2.3-fast";
15471
15159
  var LtxV23Outpaint = "ltx-v2.3-outpaint";
@@ -15509,16 +15197,12 @@ var PicsartQwenMakeup = "picsart-qwen-makeup";
15509
15197
  var PicsartSanaSprintV1 = "picsart-sana-sprint-v1";
15510
15198
  var PicsartSodV82 = "picsart-sod-v8-2";
15511
15199
  var PicsartVideography = "picsart-videography";
15512
- var Pika22 = "pika-2.2";
15513
- var Pika22Frames = "pika-2.2-frames";
15514
- var Pika22Scenes = "pika-2.2-scenes";
15515
15200
  var PixverseC1 = "pixverse-c1";
15516
15201
  var PixverseC1Fusion = "pixverse-c1-fusion";
15517
15202
  var PixverseC1Image = "pixverse-c1-image";
15518
15203
  var PixverseV6 = "pixverse-v6";
15519
15204
  var PixverseV6Fusion = "pixverse-v6-fusion";
15520
15205
  var PixverseV6Image = "pixverse-v6-image";
15521
- var Qwen = "qwen";
15522
15206
  var QwenImage2 = "qwen-image-2";
15523
15207
  var QwenImage2Pro = "qwen-image-2-pro";
15524
15208
  var QwenImage30 = "qwen-image-3.0";
@@ -15528,8 +15212,6 @@ var RecraftCrispUpscale = "recraft-crisp-upscale";
15528
15212
  var RecraftExplore = "recraft-explore";
15529
15213
  var RecraftExploreSimilar = "recraft-explore-similar";
15530
15214
  var RecraftVectorize = "recraft-vectorize";
15531
- var Recraftv2 = "recraftv2";
15532
- var Recraftv2Vector = "recraftv2_vector";
15533
15215
  var Recraftv3 = "recraftv3";
15534
15216
  var Recraftv3Vector = "recraftv3_vector";
15535
15217
  var Recraftv3ReplaceBg = "recraftv3-replace-bg";
@@ -15595,8 +15277,6 @@ var Veo31 = "veo-3.1";
15595
15277
  var Veo31Fast = "veo-3.1-fast";
15596
15278
  var Veo31Lite = "veo-3.1-lite";
15597
15279
  var Wan26Image = "wan-2.6-image";
15598
- var Wan26R2v = "wan-2.6-r2v";
15599
- var Wan26T2v = "wan-2.6-t2v";
15600
15280
  var Wan27I2v = "wan-2.7-i2v";
15601
15281
  var Wan27R2v = "wan-2.7-r2v";
15602
15282
  var Wan27T2v = "wan-2.7-t2v";
@@ -15738,9 +15418,6 @@ var Models = {
15738
15418
  KlingVideoEffects,
15739
15419
  KlingVideoO1,
15740
15420
  Ltx23A2v,
15741
- LtxProT2v,
15742
- LtxV2Fast,
15743
- LtxV2Retake,
15744
15421
  LtxV23Extend,
15745
15422
  LtxV23Fast,
15746
15423
  LtxV23Outpaint,
@@ -15784,16 +15461,12 @@ var Models = {
15784
15461
  PicsartSanaSprintV1,
15785
15462
  PicsartSodV82,
15786
15463
  PicsartVideography,
15787
- Pika22,
15788
- Pika22Frames,
15789
- Pika22Scenes,
15790
15464
  PixverseC1,
15791
15465
  PixverseC1Fusion,
15792
15466
  PixverseC1Image,
15793
15467
  PixverseV6,
15794
15468
  PixverseV6Fusion,
15795
15469
  PixverseV6Image,
15796
- Qwen,
15797
15470
  QwenImage2,
15798
15471
  QwenImage2Pro,
15799
15472
  QwenImage30,
@@ -15803,8 +15476,6 @@ var Models = {
15803
15476
  RecraftExplore,
15804
15477
  RecraftExploreSimilar,
15805
15478
  RecraftVectorize,
15806
- Recraftv2,
15807
- Recraftv2Vector,
15808
15479
  Recraftv3,
15809
15480
  Recraftv3Vector,
15810
15481
  Recraftv3ReplaceBg,
@@ -15870,8 +15541,6 @@ var Models = {
15870
15541
  Veo31Fast,
15871
15542
  Veo31Lite,
15872
15543
  Wan26Image,
15873
- Wan26R2v,
15874
- Wan26T2v,
15875
15544
  Wan27I2v,
15876
15545
  Wan27R2v,
15877
15546
  Wan27T2v,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@picsart/ai-sdk",
3
- "version": "6.49.0",
3
+ "version": "6.50.1",
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",