@picsart/ai-sdk 6.2.2 → 6.3.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 +24 -6
  2. package/index.js +72 -20
  3. package/package.json +1 -1
package/index.d.ts CHANGED
@@ -170,6 +170,16 @@ type ModelInputById = {
170
170
  imageUrls: [string, ...string[]];
171
171
  audioUrl: string;
172
172
  };
173
+ "creatify-boreal": {
174
+ prompt: string;
175
+ imageUrls?: string[];
176
+ audioUrl?: string;
177
+ negativePrompt?: string;
178
+ resolution?: "720p" | "1080p" | "2k";
179
+ aspectRatio?: "auto" | "16:9" | "9:16" | "1:1" | "4:3" | "3:4";
180
+ duration?: number;
181
+ manifestDisclosure?: boolean;
182
+ };
173
183
  "eleven-audio-isolation": {
174
184
  audioUrl: string;
175
185
  };
@@ -1509,7 +1519,8 @@ type ModelInputById = {
1509
1519
  duration?: number;
1510
1520
  generateAudio?: boolean;
1511
1521
  returnLastFrame?: boolean;
1512
- outputFormat?: "mp4_8bit" | "mp4" | "mov";
1522
+ outputFormat?: "mp4" | "mov";
1523
+ colorDepth?: "10bit" | "8bit";
1513
1524
  imageUrls?: string[];
1514
1525
  videoUrls?: string[];
1515
1526
  audioUrls?: string[];
@@ -1522,7 +1533,8 @@ type ModelInputById = {
1522
1533
  resolution?: "480p" | "720p" | "1080p";
1523
1534
  generateAudio?: boolean;
1524
1535
  returnLastFrame?: boolean;
1525
- outputFormat?: "mp4_8bit" | "mp4" | "mov";
1536
+ outputFormat?: "mp4" | "mov";
1537
+ colorDepth?: "10bit" | "8bit";
1526
1538
  videoUrl: string;
1527
1539
  imageUrls?: string[];
1528
1540
  };
@@ -1532,7 +1544,8 @@ type ModelInputById = {
1532
1544
  resolution?: "480p" | "720p" | "1080p";
1533
1545
  duration?: number;
1534
1546
  generateAudio?: boolean;
1535
- outputFormat?: "mp4_8bit" | "mp4" | "mov";
1547
+ outputFormat?: "mp4" | "mov";
1548
+ colorDepth?: "10bit" | "8bit";
1536
1549
  videoUrls: [string, ...string[]];
1537
1550
  };
1538
1551
  "seedance-2.5-without-moderation": {
@@ -1542,7 +1555,8 @@ type ModelInputById = {
1542
1555
  duration?: number;
1543
1556
  generateAudio?: boolean;
1544
1557
  returnLastFrame?: boolean;
1545
- outputFormat?: "mp4_8bit" | "mp4" | "mov";
1558
+ outputFormat?: "mp4" | "mov";
1559
+ colorDepth?: "10bit" | "8bit";
1546
1560
  imageUrls?: string[];
1547
1561
  videoUrls?: string[];
1548
1562
  audioUrls?: string[];
@@ -1555,7 +1569,8 @@ type ModelInputById = {
1555
1569
  resolution?: "480p" | "720p" | "1080p";
1556
1570
  generateAudio?: boolean;
1557
1571
  returnLastFrame?: boolean;
1558
- outputFormat?: "mp4_8bit" | "mp4" | "mov";
1572
+ outputFormat?: "mp4" | "mov";
1573
+ colorDepth?: "10bit" | "8bit";
1559
1574
  videoUrl: string;
1560
1575
  imageUrls?: string[];
1561
1576
  };
@@ -1565,7 +1580,8 @@ type ModelInputById = {
1565
1580
  resolution?: "480p" | "720p" | "1080p";
1566
1581
  duration?: number;
1567
1582
  generateAudio?: boolean;
1568
- outputFormat?: "mp4_8bit" | "mp4" | "mov";
1583
+ outputFormat?: "mp4" | "mov";
1584
+ colorDepth?: "10bit" | "8bit";
1569
1585
  videoUrls: [string, ...string[]];
1570
1586
  };
1571
1587
  "seedance-i2v": {
@@ -2312,6 +2328,7 @@ interface GenerationContext {
2312
2328
  returnLastFrame?: boolean;
2313
2329
  background?: string;
2314
2330
  outputFormat?: string;
2331
+ colorDepth?: string;
2315
2332
  guidance?: number;
2316
2333
  seed?: number;
2317
2334
  substyle?: string;
@@ -2883,6 +2900,7 @@ declare const Models: {
2883
2900
  readonly ClaudeSonnet46: "claude-sonnet-4-6";
2884
2901
  readonly ClaudeSonnet5: "claude-sonnet-5";
2885
2902
  readonly CreatifyAurora: "creatify-aurora";
2903
+ readonly CreatifyBoreal: "creatify-boreal";
2886
2904
  readonly ElevenAudioIsolation: "eleven-audio-isolation";
2887
2905
  readonly ElevenDubbing: "eleven-dubbing";
2888
2906
  readonly ElevenMultilingualStsV2: "eleven-multilingual-sts-v2";
package/index.js CHANGED
@@ -2421,6 +2421,27 @@ var { MODELS: MODELS3 } = defineModels("creatify", [
2421
2421
  ...params.imageInput(1, "Product Image", true),
2422
2422
  ...params.audioInput("Audio Track", true)
2423
2423
  }
2424
+ },
2425
+ {
2426
+ id: "creatify-boreal",
2427
+ name: "Creatify Boreal",
2428
+ addedAt: "2026-09-22",
2429
+ workflow: "creatify/boreal",
2430
+ estimatedTime: 169,
2431
+ mode: "video",
2432
+ inputType: "t2v",
2433
+ description: "Text-to-video with synchronized native audio for product, UGC, and presenter clips.",
2434
+ features: [feat("Image Input", "input"), feat("Audio Input", "audio")],
2435
+ paramConfig: {
2436
+ ...params.prompt({ maxLength: 5e3 }),
2437
+ ...params.imageInput(1, "Reference Image", false, "asset"),
2438
+ ...params.audioInput("Audio Track", false),
2439
+ ...params.negativePrompt(),
2440
+ ...params.resolution(["720p", "1080p", "2k"], "720p"),
2441
+ ...params.aspectRatio(["auto", "16:9", "9:16", "1:1", "4:3", "3:4"], "auto"),
2442
+ ...params.durationRange(1, 20, 10),
2443
+ ...p.boolean("manifestDisclosure", false, "AI-Generated Disclosure")
2444
+ }
2424
2445
  }
2425
2446
  ]);
2426
2447
 
@@ -3784,11 +3805,18 @@ var buildSeedance20VideoExtendPayloadFor = (modelAlias) => (ctx) => ({
3784
3805
  resolution: ctx.resolution ?? "720p",
3785
3806
  generate_audio: ctx.generateAudio ?? true
3786
3807
  });
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
- }));
3808
+ var SEEDANCE_25_DEPTH_RESOLUTION_REASON = "Color depth applies to 1080p only \u2014 480p and 720p are always 8-bit.";
3809
+ var SEEDANCE_25_DEPTH_CONTAINER_REASON = "Color depth applies to the mp4 container only.";
3810
+ var seedance25ColorDepthConstraints = [
3811
+ ...["480p", "720p"].map((resolution) => ({
3812
+ when: { resolution: { is: resolution } },
3813
+ then: { colorDepth: { disabled: true, reason: SEEDANCE_25_DEPTH_RESOLUTION_REASON } }
3814
+ })),
3815
+ {
3816
+ when: { outputFormat: { is: "mov" } },
3817
+ then: { colorDepth: { disabled: true, reason: SEEDANCE_25_DEPTH_CONTAINER_REASON } }
3818
+ }
3819
+ ];
3792
3820
  var SEEDANCE_25_FRAME_ADAPTIVE_REASON = "First/Last Frame mode requires an adaptive aspect ratio \u2014 the vendor rejects any fixed ratio.";
3793
3821
  var seedance25Constraints = [
3794
3822
  ...seedance20Constraints.slice(1),
@@ -3811,8 +3839,12 @@ var seedance25Constraints = [
3811
3839
  when: { endFrame: { exists: true } },
3812
3840
  then: { aspectRatio: { allowed: ["adaptive"], reason: SEEDANCE_25_FRAME_ADAPTIVE_REASON } }
3813
3841
  },
3814
- ...seedance25FormatConstraints
3842
+ ...seedance25ColorDepthConstraints
3815
3843
  ];
3844
+ var seedance25OutputFormat = (ctx) => {
3845
+ if (ctx.outputFormat === "mov") return "mov";
3846
+ return ctx.colorDepth === "8bit" ? "mp4_8bit" : "mp4";
3847
+ };
3816
3848
  var buildSeedance25PayloadFor = (modelAlias) => (ctx) => {
3817
3849
  const refImages = ctx.imageUrls ?? [];
3818
3850
  const refVideos = ctx.videoUrls ?? [];
@@ -3844,7 +3876,7 @@ var buildSeedance25PayloadFor = (modelAlias) => (ctx) => {
3844
3876
  duration: ctx.duration ?? 5,
3845
3877
  resolution: ctx.resolution ?? "1080p",
3846
3878
  generate_audio: ctx.generateAudio ?? true,
3847
- output_format: ctx.outputFormat ?? "mp4",
3879
+ output_format: seedance25OutputFormat(ctx),
3848
3880
  ...ctx.returnLastFrame ? { return_last_frame: true } : {}
3849
3881
  };
3850
3882
  };
@@ -3863,7 +3895,7 @@ var buildSeedance25VideoEditPayloadFor = (modelAlias) => (ctx) => ({
3863
3895
  duration: -1,
3864
3896
  resolution: ctx.resolution ?? "1080p",
3865
3897
  generate_audio: ctx.generateAudio ?? true,
3866
- output_format: ctx.outputFormat ?? "mp4",
3898
+ output_format: seedance25OutputFormat(ctx),
3867
3899
  ...ctx.returnLastFrame ? { return_last_frame: true } : {}
3868
3900
  });
3869
3901
  var buildSeedance25VideoExtendPayloadFor = (modelAlias) => (ctx) => ({
@@ -3880,14 +3912,11 @@ var buildSeedance25VideoExtendPayloadFor = (modelAlias) => (ctx) => ({
3880
3912
  duration: ctx.duration ?? 15,
3881
3913
  resolution: ctx.resolution ?? "1080p",
3882
3914
  generate_audio: ctx.generateAudio ?? true,
3883
- output_format: ctx.outputFormat ?? "mp4"
3915
+ output_format: seedance25OutputFormat(ctx)
3884
3916
  });
3885
3917
  var SEEDANCE_AR = ["16:9", "9:16", "1:1", "4:3", "3:4", "21:9", "adaptive"];
3886
- var SEEDANCE_25_FORMATS = [
3887
- { id: "mp4_8bit", label: "MP4" },
3888
- { id: "mp4", label: "MP4 10Bit" },
3889
- { id: "mov", label: "MOV" }
3890
- ];
3918
+ var SEEDANCE_25_FORMATS = ["mp4", "mov"];
3919
+ var SEEDANCE_25_COLOR_DEPTHS = ["10bit", "8bit"];
3891
3920
  var SEEDANCE_V2_DURATIONS = [4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15];
3892
3921
  var SEEDANCE_25_DURATION = { min: 4, max: 30 };
3893
3922
  var { MODELS: MODELS12 } = defineModels("seedance", [
@@ -3903,7 +3932,7 @@ var { MODELS: MODELS12 } = defineModels("seedance", [
3903
3932
  mode: "video",
3904
3933
  inputType: "t2v",
3905
3934
  badge: ["new", "premium", "hot"],
3906
- description: "Latest cinematic video with audio, multi-reference input, and mp4/mov/8-bit output. Up to 30s.",
3935
+ description: "Latest cinematic video with audio, multi-reference input, and mp4/mov output in 10- or 8-bit. Up to 30s.",
3907
3936
  features: [feat("Reference Image", "frame"), feat("Start/End Frame", "frame"), feat("Audio", "audio"), feat("1080p", "resolution"), feat("4-30 sec", "duration")],
3908
3937
  paramConfig: {
3909
3938
  ...params.prompt(),
@@ -3913,6 +3942,7 @@ var { MODELS: MODELS12 } = defineModels("seedance", [
3913
3942
  ...params.generateAudio(),
3914
3943
  ...params.returnLastFrame(),
3915
3944
  ...p.enum("outputFormat", SEEDANCE_25_FORMATS, "mp4", { label: "Format" }),
3945
+ ...p.enum("colorDepth", SEEDANCE_25_COLOR_DEPTHS, "10bit", { label: "Color Depth" }),
3916
3946
  // 2.5 lifts the reference caps to 30 images / 10 videos / 10 audios.
3917
3947
  ...params.imageInput(30, "Reference Images", false, "reference", { minSidePixels: SEEDANCE_MIN_SIDE_PIXELS }),
3918
3948
  ...params.videoInputs(10, "Reference Videos", false, {
@@ -3941,7 +3971,7 @@ var { MODELS: MODELS12 } = defineModels("seedance", [
3941
3971
  mode: "video",
3942
3972
  inputType: "t2v",
3943
3973
  badge: ["new", "premium", "hot"],
3944
- 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.",
3974
+ description: "Seedance 2.5 with vendor moderation disabled \u2014 cinematic video with audio, multi-reference input, and mp4/mov output in 10- or 8-bit. Up to 30s.",
3945
3975
  features: [feat("Reference Image", "frame"), feat("Start/End Frame", "frame"), feat("Audio", "audio"), feat("1080p", "resolution"), feat("4-30 sec", "duration")],
3946
3976
  paramConfig: {
3947
3977
  ...params.prompt(),
@@ -3951,6 +3981,7 @@ var { MODELS: MODELS12 } = defineModels("seedance", [
3951
3981
  ...params.generateAudio(),
3952
3982
  ...params.returnLastFrame(),
3953
3983
  ...p.enum("outputFormat", SEEDANCE_25_FORMATS, "mp4", { label: "Format" }),
3984
+ ...p.enum("colorDepth", SEEDANCE_25_COLOR_DEPTHS, "10bit", { label: "Color Depth" }),
3954
3985
  // 2.5 lifts the reference caps to 30 images / 10 videos / 10 audios.
3955
3986
  ...params.imageInput(30, "Reference Images", false, "reference", { minSidePixels: SEEDANCE_MIN_SIDE_PIXELS }),
3956
3987
  ...params.videoInputs(10, "Reference Videos", false, {
@@ -3970,7 +4001,7 @@ var { MODELS: MODELS12 } = defineModels("seedance", [
3970
4001
  addedAt: "2026-08-06",
3971
4002
  workflow: "seedance",
3972
4003
  buildPayload: buildSeedance25VideoEditPayloadFor("seedance_2_5"),
3973
- constraints: seedance25FormatConstraints,
4004
+ constraints: seedance25ColorDepthConstraints,
3974
4005
  estimatedTime: 60,
3975
4006
  mode: "video",
3976
4007
  inputType: "v2v",
@@ -3986,6 +4017,7 @@ var { MODELS: MODELS12 } = defineModels("seedance", [
3986
4017
  ...params.generateAudio(),
3987
4018
  ...params.returnLastFrame(),
3988
4019
  ...p.enum("outputFormat", SEEDANCE_25_FORMATS, "mp4", { label: "Format" }),
4020
+ ...p.enum("colorDepth", SEEDANCE_25_COLOR_DEPTHS, "10bit", { label: "Color Depth" }),
3989
4021
  ...params.videoInput("Source Video", "reference", true, void 0, void 0, SEEDANCE_25_MAX_VIDEO_BYTES),
3990
4022
  ...params.imageInput(30, "Reference Images")
3991
4023
  }
@@ -3998,7 +4030,7 @@ var { MODELS: MODELS12 } = defineModels("seedance", [
3998
4030
  release: "preview",
3999
4031
  workflow: "seedance",
4000
4032
  buildPayload: buildSeedance25VideoEditPayloadFor("seedance_2_5_without_moderation"),
4001
- constraints: seedance25FormatConstraints,
4033
+ constraints: seedance25ColorDepthConstraints,
4002
4034
  estimatedTime: 60,
4003
4035
  mode: "video",
4004
4036
  inputType: "v2v",
@@ -4014,6 +4046,7 @@ var { MODELS: MODELS12 } = defineModels("seedance", [
4014
4046
  ...params.generateAudio(),
4015
4047
  ...params.returnLastFrame(),
4016
4048
  ...p.enum("outputFormat", SEEDANCE_25_FORMATS, "mp4", { label: "Format" }),
4049
+ ...p.enum("colorDepth", SEEDANCE_25_COLOR_DEPTHS, "10bit", { label: "Color Depth" }),
4017
4050
  ...params.videoInput("Source Video", "reference", true, void 0, void 0, SEEDANCE_25_MAX_VIDEO_BYTES),
4018
4051
  ...params.imageInput(30, "Reference Images")
4019
4052
  }
@@ -4025,7 +4058,7 @@ var { MODELS: MODELS12 } = defineModels("seedance", [
4025
4058
  addedAt: "2026-08-06",
4026
4059
  workflow: "seedance",
4027
4060
  buildPayload: buildSeedance25VideoExtendPayloadFor("seedance_2_5"),
4028
- constraints: seedance25FormatConstraints,
4061
+ constraints: seedance25ColorDepthConstraints,
4029
4062
  estimatedTime: 200,
4030
4063
  mode: "video",
4031
4064
  inputType: "v2v",
@@ -4041,6 +4074,7 @@ var { MODELS: MODELS12 } = defineModels("seedance", [
4041
4074
  ...params.durationRange(SEEDANCE_25_DURATION.min, SEEDANCE_25_DURATION.max, 15),
4042
4075
  ...params.generateAudio(),
4043
4076
  ...p.enum("outputFormat", SEEDANCE_25_FORMATS, "mp4", { label: "Format" }),
4077
+ ...p.enum("colorDepth", SEEDANCE_25_COLOR_DEPTHS, "10bit", { label: "Color Depth" }),
4044
4078
  ...params.videoInputs(10, "Source Videos", true, { maxBytes: SEEDANCE_25_MAX_VIDEO_BYTES })
4045
4079
  }
4046
4080
  },
@@ -4052,7 +4086,7 @@ var { MODELS: MODELS12 } = defineModels("seedance", [
4052
4086
  release: "preview",
4053
4087
  workflow: "seedance",
4054
4088
  buildPayload: buildSeedance25VideoExtendPayloadFor("seedance_2_5_without_moderation"),
4055
- constraints: seedance25FormatConstraints,
4089
+ constraints: seedance25ColorDepthConstraints,
4056
4090
  estimatedTime: 200,
4057
4091
  mode: "video",
4058
4092
  inputType: "v2v",
@@ -4068,6 +4102,7 @@ var { MODELS: MODELS12 } = defineModels("seedance", [
4068
4102
  ...params.durationRange(SEEDANCE_25_DURATION.min, SEEDANCE_25_DURATION.max, 15),
4069
4103
  ...params.generateAudio(),
4070
4104
  ...p.enum("outputFormat", SEEDANCE_25_FORMATS, "mp4", { label: "Format" }),
4105
+ ...p.enum("colorDepth", SEEDANCE_25_COLOR_DEPTHS, "10bit", { label: "Color Depth" }),
4071
4106
  ...params.videoInputs(10, "Source Videos", true, { maxBytes: SEEDANCE_25_MAX_VIDEO_BYTES })
4072
4107
  }
4073
4108
  },
@@ -9321,6 +9356,21 @@ registerEditPayloads(MODELS37, {
9321
9356
  "muse-image-1.0": buildMuseImageEditPayload
9322
9357
  });
9323
9358
 
9359
+ // src/vendors/catalog/creatify.payloads.ts
9360
+ var buildCreatifyBorealPayload = (input) => ({
9361
+ prompt: input.prompt,
9362
+ ...input.imageUrls?.[0] ? { image_url: input.imageUrls[0] } : {},
9363
+ ...input.audioUrl ? { audio_url: input.audioUrl } : {},
9364
+ negative_prompt: input.negativePrompt ?? "",
9365
+ resolution: input.resolution ?? "720p",
9366
+ aspect_ratio: input.aspectRatio ?? "auto",
9367
+ duration: input.duration ?? 10,
9368
+ manifest_disclosure: input.manifestDisclosure ?? false
9369
+ });
9370
+ registerPayloads(MODELS3, {
9371
+ "creatify-boreal": buildCreatifyBorealPayload
9372
+ });
9373
+
9324
9374
  // src/vendors/catalog/index.ts
9325
9375
  var ALL_MODELS = [
9326
9376
  ...MODELS,
@@ -11883,6 +11933,7 @@ var ClaudeSonnet45 = "claude-sonnet-4-5";
11883
11933
  var ClaudeSonnet46 = "claude-sonnet-4-6";
11884
11934
  var ClaudeSonnet5 = "claude-sonnet-5";
11885
11935
  var CreatifyAurora = "creatify-aurora";
11936
+ var CreatifyBoreal = "creatify-boreal";
11886
11937
  var ElevenAudioIsolation = "eleven-audio-isolation";
11887
11938
  var ElevenDubbing = "eleven-dubbing";
11888
11939
  var ElevenMultilingualStsV2 = "eleven-multilingual-sts-v2";
@@ -12119,6 +12170,7 @@ var Models = {
12119
12170
  ClaudeSonnet46,
12120
12171
  ClaudeSonnet5,
12121
12172
  CreatifyAurora,
12173
+ CreatifyBoreal,
12122
12174
  ElevenAudioIsolation,
12123
12175
  ElevenDubbing,
12124
12176
  ElevenMultilingualStsV2,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@picsart/ai-sdk",
3
- "version": "6.2.2",
3
+ "version": "6.3.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",