@picsart/ai-sdk 6.1.0 → 6.2.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.
package/index.d.ts CHANGED
@@ -153,10 +153,18 @@ type ModelInputById = {
153
153
  prompt: string;
154
154
  imageUrls?: string[];
155
155
  };
156
+ "claude-sonnet-4-5": {
157
+ prompt: string;
158
+ imageUrls?: string[];
159
+ };
156
160
  "claude-sonnet-4-6": {
157
161
  prompt: string;
158
162
  imageUrls?: string[];
159
163
  };
164
+ "claude-sonnet-5": {
165
+ prompt: string;
166
+ imageUrls?: string[];
167
+ };
160
168
  "creatify-aurora": {
161
169
  prompt?: string;
162
170
  imageUrls: [string, ...string[]];
@@ -266,6 +274,11 @@ type ModelInputById = {
266
274
  prompt?: string;
267
275
  safetyTolerance?: number;
268
276
  };
277
+ "gemini-2.5-flash": {
278
+ prompt: string;
279
+ imageUrls?: string[];
280
+ thinking?: "off" | "low" | "medium" | "high";
281
+ };
269
282
  "gemini-2.5-flash-image": {
270
283
  prompt: string;
271
284
  aspectRatio?: "1:1" | "16:9" | "9:16" | "3:4" | "4:3" | "2:3" | "21:9" | "auto";
@@ -350,6 +363,42 @@ type ModelInputById = {
350
363
  imageUrls?: string[];
351
364
  videoUrl?: string;
352
365
  };
366
+ "gpt-4.1-mini": {
367
+ prompt: string;
368
+ imageUrls?: string[];
369
+ };
370
+ "gpt-4.1-nano": {
371
+ prompt: string;
372
+ imageUrls?: string[];
373
+ };
374
+ "gpt-4o": {
375
+ prompt: string;
376
+ imageUrls?: string[];
377
+ };
378
+ "gpt-4o-mini": {
379
+ prompt: string;
380
+ imageUrls?: string[];
381
+ };
382
+ "gpt-5": {
383
+ prompt: string;
384
+ imageUrls?: string[];
385
+ thinking?: "off" | "low" | "medium" | "high";
386
+ };
387
+ "gpt-5-mini": {
388
+ prompt: string;
389
+ imageUrls?: string[];
390
+ thinking?: "off" | "low" | "medium" | "high";
391
+ };
392
+ "gpt-5.1": {
393
+ prompt: string;
394
+ imageUrls?: string[];
395
+ thinking?: "off" | "low" | "medium" | "high";
396
+ };
397
+ "gpt-5.2": {
398
+ prompt: string;
399
+ imageUrls?: string[];
400
+ thinking?: "off" | "low" | "medium" | "high";
401
+ };
353
402
  "gpt-5.5": {
354
403
  prompt: string;
355
404
  imageUrls?: string[];
@@ -1460,7 +1509,7 @@ type ModelInputById = {
1460
1509
  duration?: number;
1461
1510
  generateAudio?: boolean;
1462
1511
  returnLastFrame?: boolean;
1463
- outputFormat?: "mp4" | "mov";
1512
+ outputFormat?: "mp4" | "mov" | "mp4_8bit";
1464
1513
  imageUrls?: string[];
1465
1514
  videoUrls?: string[];
1466
1515
  audioUrls?: string[];
@@ -1473,7 +1522,7 @@ type ModelInputById = {
1473
1522
  resolution?: "480p" | "720p" | "1080p";
1474
1523
  generateAudio?: boolean;
1475
1524
  returnLastFrame?: boolean;
1476
- outputFormat?: "mp4" | "mov";
1525
+ outputFormat?: "mp4" | "mov" | "mp4_8bit";
1477
1526
  videoUrl: string;
1478
1527
  imageUrls?: string[];
1479
1528
  };
@@ -1483,7 +1532,7 @@ type ModelInputById = {
1483
1532
  resolution?: "480p" | "720p" | "1080p";
1484
1533
  duration?: number;
1485
1534
  generateAudio?: boolean;
1486
- outputFormat?: "mp4" | "mov";
1535
+ outputFormat?: "mp4" | "mov" | "mp4_8bit";
1487
1536
  videoUrls: [string, ...string[]];
1488
1537
  };
1489
1538
  "seedance-2.5-without-moderation": {
@@ -1493,7 +1542,7 @@ type ModelInputById = {
1493
1542
  duration?: number;
1494
1543
  generateAudio?: boolean;
1495
1544
  returnLastFrame?: boolean;
1496
- outputFormat?: "mp4" | "mov";
1545
+ outputFormat?: "mp4" | "mov" | "mp4_8bit";
1497
1546
  imageUrls?: string[];
1498
1547
  videoUrls?: string[];
1499
1548
  audioUrls?: string[];
@@ -1506,7 +1555,7 @@ type ModelInputById = {
1506
1555
  resolution?: "480p" | "720p" | "1080p";
1507
1556
  generateAudio?: boolean;
1508
1557
  returnLastFrame?: boolean;
1509
- outputFormat?: "mp4" | "mov";
1558
+ outputFormat?: "mp4" | "mov" | "mp4_8bit";
1510
1559
  videoUrl: string;
1511
1560
  imageUrls?: string[];
1512
1561
  };
@@ -1516,7 +1565,7 @@ type ModelInputById = {
1516
1565
  resolution?: "480p" | "720p" | "1080p";
1517
1566
  duration?: number;
1518
1567
  generateAudio?: boolean;
1519
- outputFormat?: "mp4" | "mov";
1568
+ outputFormat?: "mp4" | "mov" | "mp4_8bit";
1520
1569
  videoUrls: [string, ...string[]];
1521
1570
  };
1522
1571
  "seedance-i2v": {
@@ -1710,7 +1759,7 @@ type ModelInputById = {
1710
1759
  type TypedModelId = keyof ModelInputById;
1711
1760
  type ModelInput<M extends TypedModelId> = ModelInputById[M];
1712
1761
  /** IDs of text-generation (LLM) models — narrows generateText(). */
1713
- type TextModelId = "claude-fable-5" | "claude-fable-5-1" | "claude-haiku-4-5" | "claude-opus-4-8" | "claude-opus-5" | "claude-sonnet-4-6" | "gemini-3-pro" | "gemini-3.5-flash-lite" | "gemini-3.6-flash" | "gemini-3.7-flash" | "gemini-3.8-flash" | "gpt-5.5" | "gpt-5.6-luna" | "gpt-5.6-sol" | "gpt-5.6-terra" | "gpt-6-astra";
1762
+ type TextModelId = "claude-fable-5" | "claude-fable-5-1" | "claude-haiku-4-5" | "claude-opus-4-8" | "claude-opus-5" | "claude-sonnet-4-5" | "claude-sonnet-4-6" | "claude-sonnet-5" | "gemini-2.5-flash" | "gemini-3-pro" | "gemini-3.5-flash-lite" | "gemini-3.6-flash" | "gemini-3.7-flash" | "gemini-3.8-flash" | "gpt-4.1-mini" | "gpt-4.1-nano" | "gpt-4o" | "gpt-4o-mini" | "gpt-5" | "gpt-5-mini" | "gpt-5.1" | "gpt-5.2" | "gpt-5.5" | "gpt-5.6-luna" | "gpt-5.6-sol" | "gpt-5.6-terra" | "gpt-6-astra";
1714
1763
  type TextModelInputById = Pick<ModelInputById, TextModelId>;
1715
1764
 
1716
1765
  /**
@@ -2830,7 +2879,9 @@ declare const Models: {
2830
2879
  readonly ClaudeHaiku45: "claude-haiku-4-5";
2831
2880
  readonly ClaudeOpus48: "claude-opus-4-8";
2832
2881
  readonly ClaudeOpus5: "claude-opus-5";
2882
+ readonly ClaudeSonnet45: "claude-sonnet-4-5";
2833
2883
  readonly ClaudeSonnet46: "claude-sonnet-4-6";
2884
+ readonly ClaudeSonnet5: "claude-sonnet-5";
2834
2885
  readonly CreatifyAurora: "creatify-aurora";
2835
2886
  readonly ElevenAudioIsolation: "eleven-audio-isolation";
2836
2887
  readonly ElevenDubbing: "eleven-dubbing";
@@ -2852,6 +2903,7 @@ declare const Models: {
2852
2903
  readonly FluxKontextPro: "flux-kontext-pro";
2853
2904
  readonly FluxVideoEdit: "flux-video-edit";
2854
2905
  readonly FluxVideoUpscale: "flux-video-upscale";
2906
+ readonly Gemini25Flash: "gemini-2.5-flash";
2855
2907
  readonly Gemini25FlashImage: "gemini-2.5-flash-image";
2856
2908
  readonly Gemini25FlashTts: "gemini-2.5-flash-tts";
2857
2909
  readonly Gemini25ProTts: "gemini-2.5-pro-tts";
@@ -2865,6 +2917,14 @@ declare const Models: {
2865
2917
  readonly Gemini38Flash: "gemini-3.8-flash";
2866
2918
  readonly GeminiOmni11FlashPreview: "gemini-omni-1.1-flash-preview";
2867
2919
  readonly GeminiOmniFlashPreview: "gemini-omni-flash-preview";
2920
+ readonly Gpt41Mini: "gpt-4.1-mini";
2921
+ readonly Gpt41Nano: "gpt-4.1-nano";
2922
+ readonly Gpt4o: "gpt-4o";
2923
+ readonly Gpt4oMini: "gpt-4o-mini";
2924
+ readonly Gpt5: "gpt-5";
2925
+ readonly Gpt5Mini: "gpt-5-mini";
2926
+ readonly Gpt51: "gpt-5.1";
2927
+ readonly Gpt52: "gpt-5.2";
2868
2928
  readonly Gpt55: "gpt-5.5";
2869
2929
  readonly Gpt56Luna: "gpt-5.6-luna";
2870
2930
  readonly Gpt56Sol: "gpt-5.6-sol";
package/index.js CHANGED
@@ -3784,6 +3784,11 @@ var buildSeedance20VideoExtendPayloadFor = (modelAlias) => (ctx) => ({
3784
3784
  resolution: ctx.resolution ?? "720p",
3785
3785
  generate_audio: ctx.generateAudio ?? true
3786
3786
  });
3787
+ var SEEDANCE_25_8BIT_REASON = "8-bit MP4 applies to 1080p only \u2014 480p and 720p are already 8-bit H.264.";
3788
+ var seedance25FormatConstraints = ["480p", "720p"].map((resolution) => ({
3789
+ when: { resolution: { is: resolution } },
3790
+ then: { outputFormat: { allowed: ["mp4", "mov"], reason: SEEDANCE_25_8BIT_REASON } }
3791
+ }));
3787
3792
  var SEEDANCE_25_FRAME_ADAPTIVE_REASON = "First/Last Frame mode requires an adaptive aspect ratio \u2014 the vendor rejects any fixed ratio.";
3788
3793
  var seedance25Constraints = [
3789
3794
  ...seedance20Constraints.slice(1),
@@ -3805,7 +3810,8 @@ var seedance25Constraints = [
3805
3810
  {
3806
3811
  when: { endFrame: { exists: true } },
3807
3812
  then: { aspectRatio: { allowed: ["adaptive"], reason: SEEDANCE_25_FRAME_ADAPTIVE_REASON } }
3808
- }
3813
+ },
3814
+ ...seedance25FormatConstraints
3809
3815
  ];
3810
3816
  var buildSeedance25PayloadFor = (modelAlias) => (ctx) => {
3811
3817
  const refImages = ctx.imageUrls ?? [];
@@ -3877,6 +3883,7 @@ var buildSeedance25VideoExtendPayloadFor = (modelAlias) => (ctx) => ({
3877
3883
  output_format: ctx.outputFormat ?? "mp4"
3878
3884
  });
3879
3885
  var SEEDANCE_AR = ["16:9", "9:16", "1:1", "4:3", "3:4", "21:9", "adaptive"];
3886
+ var SEEDANCE_25_FORMATS = ["mp4", "mov", { id: "mp4_8bit", label: "MP4 8-bit" }];
3880
3887
  var SEEDANCE_V2_DURATIONS = [4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15];
3881
3888
  var SEEDANCE_25_DURATION = { min: 4, max: 30 };
3882
3889
  var { MODELS: MODELS12 } = defineModels("seedance", [
@@ -3892,7 +3899,7 @@ var { MODELS: MODELS12 } = defineModels("seedance", [
3892
3899
  mode: "video",
3893
3900
  inputType: "t2v",
3894
3901
  badge: ["new", "premium", "hot"],
3895
- description: "Latest cinematic video with audio, multi-reference input, and mp4/mov output. Up to 30s.",
3902
+ description: "Latest cinematic video with audio, multi-reference input, and mp4/mov/8-bit output. Up to 30s.",
3896
3903
  features: [feat("Reference Image", "frame"), feat("Start/End Frame", "frame"), feat("Audio", "audio"), feat("1080p", "resolution"), feat("4-30 sec", "duration")],
3897
3904
  paramConfig: {
3898
3905
  ...params.prompt(),
@@ -3901,7 +3908,7 @@ var { MODELS: MODELS12 } = defineModels("seedance", [
3901
3908
  ...params.durationRange(SEEDANCE_25_DURATION.min, SEEDANCE_25_DURATION.max, 5),
3902
3909
  ...params.generateAudio(),
3903
3910
  ...params.returnLastFrame(),
3904
- ...p.enum("outputFormat", ["mp4", "mov"], "mp4", { label: "Format" }),
3911
+ ...p.enum("outputFormat", SEEDANCE_25_FORMATS, "mp4", { label: "Format" }),
3905
3912
  // 2.5 lifts the reference caps to 30 images / 10 videos / 10 audios.
3906
3913
  ...params.imageInput(30, "Reference Images", false, "reference", { minSidePixels: SEEDANCE_MIN_SIDE_PIXELS }),
3907
3914
  ...params.videoInputs(10, "Reference Videos", false, {
@@ -3930,7 +3937,7 @@ var { MODELS: MODELS12 } = defineModels("seedance", [
3930
3937
  mode: "video",
3931
3938
  inputType: "t2v",
3932
3939
  badge: ["new", "premium", "hot"],
3933
- description: "Seedance 2.5 with vendor moderation disabled \u2014 cinematic video with audio, multi-reference input, and mp4/mov output. Up to 30s.",
3940
+ description: "Seedance 2.5 with vendor moderation disabled \u2014 cinematic video with audio, multi-reference input, and mp4/mov/8-bit output. Up to 30s.",
3934
3941
  features: [feat("Reference Image", "frame"), feat("Start/End Frame", "frame"), feat("Audio", "audio"), feat("1080p", "resolution"), feat("4-30 sec", "duration")],
3935
3942
  paramConfig: {
3936
3943
  ...params.prompt(),
@@ -3939,7 +3946,7 @@ var { MODELS: MODELS12 } = defineModels("seedance", [
3939
3946
  ...params.durationRange(SEEDANCE_25_DURATION.min, SEEDANCE_25_DURATION.max, 5),
3940
3947
  ...params.generateAudio(),
3941
3948
  ...params.returnLastFrame(),
3942
- ...p.enum("outputFormat", ["mp4", "mov"], "mp4", { label: "Format" }),
3949
+ ...p.enum("outputFormat", SEEDANCE_25_FORMATS, "mp4", { label: "Format" }),
3943
3950
  // 2.5 lifts the reference caps to 30 images / 10 videos / 10 audios.
3944
3951
  ...params.imageInput(30, "Reference Images", false, "reference", { minSidePixels: SEEDANCE_MIN_SIDE_PIXELS }),
3945
3952
  ...params.videoInputs(10, "Reference Videos", false, {
@@ -3959,6 +3966,7 @@ var { MODELS: MODELS12 } = defineModels("seedance", [
3959
3966
  addedAt: "2026-08-06",
3960
3967
  workflow: "seedance",
3961
3968
  buildPayload: buildSeedance25VideoEditPayloadFor("seedance_2_5"),
3969
+ constraints: seedance25FormatConstraints,
3962
3970
  estimatedTime: 60,
3963
3971
  mode: "video",
3964
3972
  inputType: "v2v",
@@ -3973,7 +3981,7 @@ var { MODELS: MODELS12 } = defineModels("seedance", [
3973
3981
  ...params.resolution(["480p", "720p", "1080p"], "1080p"),
3974
3982
  ...params.generateAudio(),
3975
3983
  ...params.returnLastFrame(),
3976
- ...p.enum("outputFormat", ["mp4", "mov"], "mp4", { label: "Format" }),
3984
+ ...p.enum("outputFormat", SEEDANCE_25_FORMATS, "mp4", { label: "Format" }),
3977
3985
  ...params.videoInput("Source Video", "reference", true, void 0, void 0, SEEDANCE_25_MAX_VIDEO_BYTES),
3978
3986
  ...params.imageInput(30, "Reference Images")
3979
3987
  }
@@ -3986,6 +3994,7 @@ var { MODELS: MODELS12 } = defineModels("seedance", [
3986
3994
  release: "preview",
3987
3995
  workflow: "seedance",
3988
3996
  buildPayload: buildSeedance25VideoEditPayloadFor("seedance_2_5_without_moderation"),
3997
+ constraints: seedance25FormatConstraints,
3989
3998
  estimatedTime: 60,
3990
3999
  mode: "video",
3991
4000
  inputType: "v2v",
@@ -4000,7 +4009,7 @@ var { MODELS: MODELS12 } = defineModels("seedance", [
4000
4009
  ...params.resolution(["480p", "720p", "1080p"], "1080p"),
4001
4010
  ...params.generateAudio(),
4002
4011
  ...params.returnLastFrame(),
4003
- ...p.enum("outputFormat", ["mp4", "mov"], "mp4", { label: "Format" }),
4012
+ ...p.enum("outputFormat", SEEDANCE_25_FORMATS, "mp4", { label: "Format" }),
4004
4013
  ...params.videoInput("Source Video", "reference", true, void 0, void 0, SEEDANCE_25_MAX_VIDEO_BYTES),
4005
4014
  ...params.imageInput(30, "Reference Images")
4006
4015
  }
@@ -4012,6 +4021,7 @@ var { MODELS: MODELS12 } = defineModels("seedance", [
4012
4021
  addedAt: "2026-08-06",
4013
4022
  workflow: "seedance",
4014
4023
  buildPayload: buildSeedance25VideoExtendPayloadFor("seedance_2_5"),
4024
+ constraints: seedance25FormatConstraints,
4015
4025
  estimatedTime: 200,
4016
4026
  mode: "video",
4017
4027
  inputType: "v2v",
@@ -4026,7 +4036,7 @@ var { MODELS: MODELS12 } = defineModels("seedance", [
4026
4036
  ...params.resolution(["480p", "720p", "1080p"], "1080p"),
4027
4037
  ...params.durationRange(SEEDANCE_25_DURATION.min, SEEDANCE_25_DURATION.max, 15),
4028
4038
  ...params.generateAudio(),
4029
- ...p.enum("outputFormat", ["mp4", "mov"], "mp4", { label: "Format" }),
4039
+ ...p.enum("outputFormat", SEEDANCE_25_FORMATS, "mp4", { label: "Format" }),
4030
4040
  ...params.videoInputs(10, "Source Videos", true, { maxBytes: SEEDANCE_25_MAX_VIDEO_BYTES })
4031
4041
  }
4032
4042
  },
@@ -4038,6 +4048,7 @@ var { MODELS: MODELS12 } = defineModels("seedance", [
4038
4048
  release: "preview",
4039
4049
  workflow: "seedance",
4040
4050
  buildPayload: buildSeedance25VideoExtendPayloadFor("seedance_2_5_without_moderation"),
4051
+ constraints: seedance25FormatConstraints,
4041
4052
  estimatedTime: 200,
4042
4053
  mode: "video",
4043
4054
  inputType: "v2v",
@@ -4052,7 +4063,7 @@ var { MODELS: MODELS12 } = defineModels("seedance", [
4052
4063
  ...params.resolution(["480p", "720p", "1080p"], "1080p"),
4053
4064
  ...params.durationRange(SEEDANCE_25_DURATION.min, SEEDANCE_25_DURATION.max, 15),
4054
4065
  ...params.generateAudio(),
4055
- ...p.enum("outputFormat", ["mp4", "mov"], "mp4", { label: "Format" }),
4066
+ ...p.enum("outputFormat", SEEDANCE_25_FORMATS, "mp4", { label: "Format" }),
4056
4067
  ...params.videoInputs(10, "Source Videos", true, { maxBytes: SEEDANCE_25_MAX_VIDEO_BYTES })
4057
4068
  }
4058
4069
  },
@@ -8743,6 +8754,18 @@ var { MODELS: ANTHROPIC } = defineModels("anthropic", [
8743
8754
  features: [feat("Vision", "input")],
8744
8755
  paramConfig: { ...params.prompt(), ...params.imageInput(8, "Images") }
8745
8756
  },
8757
+ {
8758
+ id: "claude-sonnet-5",
8759
+ name: "Claude Sonnet 5",
8760
+ workflow: "claude/v1/messages",
8761
+ addedAt: "2026-09-16",
8762
+ estimatedTime: 6,
8763
+ mode: "text",
8764
+ inputType: "i2t",
8765
+ description: "Latest Sonnet \u2014 frontier reasoning at everyday latency and cost.",
8766
+ features: [feat("Vision", "input")],
8767
+ paramConfig: { ...params.prompt(), ...params.imageInput(8, "Images") }
8768
+ },
8746
8769
  {
8747
8770
  id: "claude-sonnet-4-6",
8748
8771
  name: "Claude Sonnet 4.6",
@@ -8756,6 +8779,18 @@ var { MODELS: ANTHROPIC } = defineModels("anthropic", [
8756
8779
  features: [feat("Vision", "input")],
8757
8780
  paramConfig: { ...params.prompt(), ...params.imageInput(8, "Images") }
8758
8781
  },
8782
+ {
8783
+ id: "claude-sonnet-4-5",
8784
+ name: "Claude Sonnet 4.5",
8785
+ workflow: "claude/v1/messages",
8786
+ addedAt: "2026-09-16",
8787
+ estimatedTime: 6,
8788
+ mode: "text",
8789
+ inputType: "i2t",
8790
+ description: "Previous-generation Sonnet \u2014 balanced reasoning, latency, and cost.",
8791
+ features: [feat("Vision", "input")],
8792
+ paramConfig: { ...params.prompt(), ...params.imageInput(8, "Images") }
8793
+ },
8759
8794
  {
8760
8795
  id: "claude-haiku-4-5",
8761
8796
  name: "Claude Haiku 4.5",
@@ -8858,6 +8893,124 @@ var { MODELS: OPENAI_LLM } = defineModels("openai", [
8858
8893
  ...params.imageInput(8, "Images"),
8859
8894
  ...thinkingParam(["low", "medium", "high"])
8860
8895
  }
8896
+ },
8897
+ {
8898
+ id: "gpt-5.2",
8899
+ name: "GPT-5.2",
8900
+ workflow: "chat-completions",
8901
+ addedAt: "2026-09-16",
8902
+ estimatedTime: 8,
8903
+ mode: "text",
8904
+ inputType: "i2t",
8905
+ description: "GPT-5.2 reasoning model \u2014 strong general-purpose text generation.",
8906
+ features: [feat("Vision", "input"), feat("Thinking", "characteristic")],
8907
+ paramConfig: {
8908
+ ...params.prompt(),
8909
+ ...params.imageInput(8, "Images"),
8910
+ ...thinkingParam(["low", "medium", "high"])
8911
+ }
8912
+ },
8913
+ {
8914
+ id: "gpt-5.1",
8915
+ name: "GPT-5.1",
8916
+ workflow: "chat-completions",
8917
+ addedAt: "2026-09-16",
8918
+ estimatedTime: 8,
8919
+ mode: "text",
8920
+ inputType: "i2t",
8921
+ description: "GPT-5.1 reasoning model \u2014 reliable general-purpose text generation.",
8922
+ features: [feat("Vision", "input"), feat("Thinking", "characteristic")],
8923
+ paramConfig: {
8924
+ ...params.prompt(),
8925
+ ...params.imageInput(8, "Images"),
8926
+ ...thinkingParam(["low", "medium", "high"])
8927
+ }
8928
+ },
8929
+ {
8930
+ id: "gpt-5",
8931
+ name: "GPT-5",
8932
+ workflow: "chat-completions",
8933
+ addedAt: "2026-09-16",
8934
+ estimatedTime: 8,
8935
+ mode: "text",
8936
+ inputType: "i2t",
8937
+ description: "GPT-5 reasoning model for general-purpose text generation.",
8938
+ features: [feat("Vision", "input"), feat("Thinking", "characteristic")],
8939
+ paramConfig: {
8940
+ ...params.prompt(),
8941
+ ...params.imageInput(8, "Images"),
8942
+ ...thinkingParam(["low", "medium", "high"])
8943
+ }
8944
+ },
8945
+ {
8946
+ id: "gpt-5-mini",
8947
+ name: "GPT-5 Mini",
8948
+ workflow: "chat-completions",
8949
+ addedAt: "2026-09-16",
8950
+ estimatedTime: 5,
8951
+ mode: "text",
8952
+ inputType: "i2t",
8953
+ badge: ["fast"],
8954
+ description: "Fast, lightweight GPT-5 model for high-volume text tasks.",
8955
+ features: [feat("Vision", "input"), feat("Thinking", "characteristic")],
8956
+ paramConfig: {
8957
+ ...params.prompt(),
8958
+ ...params.imageInput(8, "Images"),
8959
+ ...thinkingParam(["low", "medium", "high"])
8960
+ }
8961
+ },
8962
+ // gpt-4o / gpt-4.1 families are not reasoning models: the worker's chat-completions
8963
+ // route rejects reasoning_effort for them, so no thinking param is exposed.
8964
+ {
8965
+ id: "gpt-4o",
8966
+ name: "GPT-4o",
8967
+ workflow: "chat-completions",
8968
+ addedAt: "2026-09-16",
8969
+ estimatedTime: 5,
8970
+ mode: "text",
8971
+ inputType: "i2t",
8972
+ description: "Multimodal GPT-4o \u2014 solid quality at low latency, no reasoning pass.",
8973
+ features: [feat("Vision", "input")],
8974
+ paramConfig: { ...params.prompt(), ...params.imageInput(8, "Images") }
8975
+ },
8976
+ {
8977
+ id: "gpt-4o-mini",
8978
+ name: "GPT-4o Mini",
8979
+ workflow: "chat-completions",
8980
+ addedAt: "2026-09-16",
8981
+ estimatedTime: 4,
8982
+ mode: "text",
8983
+ inputType: "i2t",
8984
+ badge: ["fast"],
8985
+ description: "Small, cost-efficient GPT-4o tier for high-volume text tasks.",
8986
+ features: [feat("Vision", "input")],
8987
+ paramConfig: { ...params.prompt(), ...params.imageInput(8, "Images") }
8988
+ },
8989
+ {
8990
+ id: "gpt-4.1-mini",
8991
+ name: "GPT-4.1 Mini",
8992
+ workflow: "chat-completions",
8993
+ addedAt: "2026-09-16",
8994
+ estimatedTime: 4,
8995
+ mode: "text",
8996
+ inputType: "i2t",
8997
+ badge: ["fast"],
8998
+ description: "Compact GPT-4.1 tier \u2014 fast text generation with vision input.",
8999
+ features: [feat("Vision", "input")],
9000
+ paramConfig: { ...params.prompt(), ...params.imageInput(8, "Images") }
9001
+ },
9002
+ {
9003
+ id: "gpt-4.1-nano",
9004
+ name: "GPT-4.1 Nano",
9005
+ workflow: "chat-completions",
9006
+ addedAt: "2026-09-16",
9007
+ estimatedTime: 3,
9008
+ mode: "text",
9009
+ inputType: "i2t",
9010
+ badge: ["fast"],
9011
+ description: "The smallest, fastest GPT-4.1 tier for lightweight text tasks.",
9012
+ features: [feat("Vision", "input")],
9013
+ paramConfig: { ...params.prompt(), ...params.imageInput(8, "Images") }
8861
9014
  }
8862
9015
  ]);
8863
9016
  var { MODELS: GEMINI_LLM } = defineModels("google", [
@@ -8946,6 +9099,23 @@ var { MODELS: GEMINI_LLM } = defineModels("google", [
8946
9099
  ...params.prompt(),
8947
9100
  ...params.imageInput(8, "Images")
8948
9101
  }
9102
+ },
9103
+ {
9104
+ id: "gemini-2.5-flash",
9105
+ name: "Gemini 2.5 Flash",
9106
+ workflow: "chat-completions",
9107
+ addedAt: "2026-09-16",
9108
+ estimatedTime: 4,
9109
+ mode: "text",
9110
+ inputType: "i2t",
9111
+ badge: ["fast"],
9112
+ description: "Proven fast Gemini tier \u2014 low-latency multimodal text generation.",
9113
+ features: [feat("Vision", "input"), feat("Thinking", "characteristic")],
9114
+ paramConfig: {
9115
+ ...params.prompt(),
9116
+ ...params.imageInput(8, "Images"),
9117
+ ...thinkingParam(["low", "medium", "high"])
9118
+ }
8949
9119
  }
8950
9120
  ]);
8951
9121
  var MODELS35 = [...ANTHROPIC, ...OPENAI_LLM, ...GEMINI_LLM];
@@ -9004,20 +9174,31 @@ registerPayloads(MODELS35, {
9004
9174
  "claude-fable-5": buildClaudePayload("claude-fable-5"),
9005
9175
  "claude-opus-5": buildClaudePayload("claude-opus-5"),
9006
9176
  "claude-opus-4-8": buildClaudePayload("claude-opus-4-8"),
9177
+ "claude-sonnet-5": buildClaudePayload("claude-sonnet-5"),
9007
9178
  "claude-sonnet-4-6": buildClaudePayload("claude-sonnet-4-6"),
9179
+ "claude-sonnet-4-5": buildClaudePayload("claude-sonnet-4-5"),
9008
9180
  "claude-haiku-4-5": buildClaudePayload("claude-haiku-4-5"),
9009
9181
  "gpt-6-astra": buildOpenAiPayload("gpt-6-astra"),
9010
9182
  "gpt-5.6-sol": buildOpenAiPayload("gpt-5.6-sol"),
9011
9183
  "gpt-5.6-terra": buildOpenAiPayload("gpt-5.6-terra"),
9012
9184
  "gpt-5.6-luna": buildOpenAiPayload("gpt-5.6-luna"),
9013
9185
  "gpt-5.5": buildOpenAiPayload("gpt-5.5"),
9186
+ "gpt-5.2": buildOpenAiPayload("gpt-5.2"),
9187
+ "gpt-5.1": buildOpenAiPayload("gpt-5.1"),
9188
+ "gpt-5": buildOpenAiPayload("gpt-5"),
9189
+ "gpt-5-mini": buildOpenAiPayload("gpt-5-mini"),
9190
+ "gpt-4o": buildOpenAiPayload("gpt-4o"),
9191
+ "gpt-4o-mini": buildOpenAiPayload("gpt-4o-mini"),
9192
+ "gpt-4.1-mini": buildOpenAiPayload("gpt-4.1-mini"),
9193
+ "gpt-4.1-nano": buildOpenAiPayload("gpt-4.1-nano"),
9014
9194
  "gemini-3-pro": buildGeminiPayload("gemini-3-pro-preview"),
9015
9195
  // Flash models route through chat-completions (OpenAI-shaped), not the
9016
- // native `gemini` workflow. flash-lite has no thinking param → reasoning_effort omitted.
9196
+ // native `gemini` workflow.
9017
9197
  "gemini-3.8-flash": buildOpenAiPayload("gemini-3.8-flash"),
9018
9198
  "gemini-3.7-flash": buildOpenAiPayload("gemini-3.7-flash"),
9019
9199
  "gemini-3.6-flash": buildOpenAiPayload("gemini-3.6-flash"),
9020
- "gemini-3.5-flash-lite": buildOpenAiPayload("gemini-3.5-flash-lite")
9200
+ "gemini-3.5-flash-lite": buildOpenAiPayload("gemini-3.5-flash-lite"),
9201
+ "gemini-2.5-flash": buildOpenAiPayload("gemini-2.5-flash")
9021
9202
  });
9022
9203
 
9023
9204
  // src/vendors/catalog/captionsai.ts
@@ -11694,7 +11875,9 @@ var ClaudeFable51 = "claude-fable-5-1";
11694
11875
  var ClaudeHaiku45 = "claude-haiku-4-5";
11695
11876
  var ClaudeOpus48 = "claude-opus-4-8";
11696
11877
  var ClaudeOpus5 = "claude-opus-5";
11878
+ var ClaudeSonnet45 = "claude-sonnet-4-5";
11697
11879
  var ClaudeSonnet46 = "claude-sonnet-4-6";
11880
+ var ClaudeSonnet5 = "claude-sonnet-5";
11698
11881
  var CreatifyAurora = "creatify-aurora";
11699
11882
  var ElevenAudioIsolation = "eleven-audio-isolation";
11700
11883
  var ElevenDubbing = "eleven-dubbing";
@@ -11716,6 +11899,7 @@ var FluxKontextMax = "flux-kontext-max";
11716
11899
  var FluxKontextPro = "flux-kontext-pro";
11717
11900
  var FluxVideoEdit = "flux-video-edit";
11718
11901
  var FluxVideoUpscale = "flux-video-upscale";
11902
+ var Gemini25Flash = "gemini-2.5-flash";
11719
11903
  var Gemini25FlashImage = "gemini-2.5-flash-image";
11720
11904
  var Gemini25FlashTts = "gemini-2.5-flash-tts";
11721
11905
  var Gemini25ProTts = "gemini-2.5-pro-tts";
@@ -11729,6 +11913,14 @@ var Gemini37Flash = "gemini-3.7-flash";
11729
11913
  var Gemini38Flash = "gemini-3.8-flash";
11730
11914
  var GeminiOmni11FlashPreview = "gemini-omni-1.1-flash-preview";
11731
11915
  var GeminiOmniFlashPreview = "gemini-omni-flash-preview";
11916
+ var Gpt41Mini = "gpt-4.1-mini";
11917
+ var Gpt41Nano = "gpt-4.1-nano";
11918
+ var Gpt4o = "gpt-4o";
11919
+ var Gpt4oMini = "gpt-4o-mini";
11920
+ var Gpt5 = "gpt-5";
11921
+ var Gpt5Mini = "gpt-5-mini";
11922
+ var Gpt51 = "gpt-5.1";
11923
+ var Gpt52 = "gpt-5.2";
11732
11924
  var Gpt55 = "gpt-5.5";
11733
11925
  var Gpt56Luna = "gpt-5.6-luna";
11734
11926
  var Gpt56Sol = "gpt-5.6-sol";
@@ -11919,7 +12111,9 @@ var Models = {
11919
12111
  ClaudeHaiku45,
11920
12112
  ClaudeOpus48,
11921
12113
  ClaudeOpus5,
12114
+ ClaudeSonnet45,
11922
12115
  ClaudeSonnet46,
12116
+ ClaudeSonnet5,
11923
12117
  CreatifyAurora,
11924
12118
  ElevenAudioIsolation,
11925
12119
  ElevenDubbing,
@@ -11941,6 +12135,7 @@ var Models = {
11941
12135
  FluxKontextPro,
11942
12136
  FluxVideoEdit,
11943
12137
  FluxVideoUpscale,
12138
+ Gemini25Flash,
11944
12139
  Gemini25FlashImage,
11945
12140
  Gemini25FlashTts,
11946
12141
  Gemini25ProTts,
@@ -11954,6 +12149,14 @@ var Models = {
11954
12149
  Gemini38Flash,
11955
12150
  GeminiOmni11FlashPreview,
11956
12151
  GeminiOmniFlashPreview,
12152
+ Gpt41Mini,
12153
+ Gpt41Nano,
12154
+ Gpt4o,
12155
+ Gpt4oMini,
12156
+ Gpt5,
12157
+ Gpt5Mini,
12158
+ Gpt51,
12159
+ Gpt52,
11957
12160
  Gpt55,
11958
12161
  Gpt56Luna,
11959
12162
  Gpt56Sol,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@picsart/ai-sdk",
3
- "version": "6.1.0",
3
+ "version": "6.2.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",