@picsart/ai-sdk 6.29.0 → 6.31.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.
package/index.d.ts CHANGED
@@ -203,6 +203,13 @@ type ModelInputById = {
203
203
  duration?: number;
204
204
  manifestDisclosure?: boolean;
205
205
  };
206
+ "depth-anything-video": {
207
+ videoUrl: string;
208
+ model?: "VDA-Small" | "VDA-Base" | "VDA-Large";
209
+ colormap?: "grayscale" | "turbo" | "inferno" | "magma" | "viridis";
210
+ resolution?: "auto" | "360p" | "480p" | "720p" | "1080p";
211
+ sideBySide?: boolean;
212
+ };
206
213
  "eleven-audio-isolation": {
207
214
  audioUrl: string;
208
215
  };
@@ -1203,6 +1210,14 @@ type ModelInputById = {
1203
1210
  seed?: number;
1204
1211
  enableSafetyChecker?: boolean;
1205
1212
  };
1213
+ "minimax-h3-max-relight": {
1214
+ videoUrl: string;
1215
+ imageUrls: [string, ...string[]];
1216
+ resolution?: "480p" | "768p" | "1080p" | "2k";
1217
+ aspectRatio?: "adaptive" | "21:9" | "16:9" | "4:3" | "1:1" | "3:4" | "9:16";
1218
+ seed?: number;
1219
+ enableSafetyChecker?: boolean;
1220
+ };
1206
1221
  "minimax-h3-max-turbo": {
1207
1222
  prompt: string;
1208
1223
  startFrame?: string;
@@ -2460,7 +2475,7 @@ interface ModelFilter {
2460
2475
  release?: ReleaseTag[];
2461
2476
  }
2462
2477
 
2463
- type AppProvider = 'picsart' | 'google' | 'kling' | 'grok' | 'openai' | 'flux' | 'ideogram' | 'elevenlabs' | 'minimax' | 'wan' | 'seedance' | 'ltx' | 'seedream' | 'seedaudio' | 'hunyuan' | 'pika' | 'runway' | 'luma' | 'ovi' | 'creatify' | 'veed' | 'bytedance' | 'qwen' | 'reve' | 'recraft' | 'videography' | 'topaz' | 'heygen' | 'happyhorse' | 'pixverse' | 'anthropic' | 'async' | 'captionsai' | 'meta' | 'typesafe';
2478
+ type AppProvider = 'picsart' | 'google' | 'kling' | 'grok' | 'openai' | 'flux' | 'ideogram' | 'elevenlabs' | 'minimax' | 'wan' | 'seedance' | 'ltx' | 'seedream' | 'seedaudio' | 'hunyuan' | 'pika' | 'runway' | 'luma' | 'ovi' | 'creatify' | 'veed' | 'bytedance' | 'qwen' | 'reve' | 'recraft' | 'videography' | 'topaz' | 'heygen' | 'happyhorse' | 'pixverse' | 'anthropic' | 'async' | 'captionsai' | 'meta' | 'typesafe' | 'depth-anything';
2464
2479
  /** Provider used by model definitions. */
2465
2480
  type Provider = AppProvider;
2466
2481
  /** App generation modes. `json` marks structured-output models (judges,
@@ -3345,6 +3360,7 @@ declare const Models: {
3345
3360
  readonly ClaudeSonnet5: "claude-sonnet-5";
3346
3361
  readonly CreatifyAurora: "creatify-aurora";
3347
3362
  readonly CreatifyBoreal: "creatify-boreal";
3363
+ readonly DepthAnythingVideo: "depth-anything-video";
3348
3364
  readonly ElevenAudioIsolation: "eleven-audio-isolation";
3349
3365
  readonly ElevenDialogueV4: "eleven-dialogue-v4";
3350
3366
  readonly ElevenDubbing: "eleven-dubbing";
@@ -3477,6 +3493,7 @@ declare const Models: {
3477
3493
  readonly MinimaxH3MaxCameraControls: "minimax-h3-max-camera-controls";
3478
3494
  readonly MinimaxH3MaxExtend: "minimax-h3-max-extend";
3479
3495
  readonly MinimaxH3MaxLipSync: "minimax-h3-max-lip-sync";
3496
+ readonly MinimaxH3MaxRelight: "minimax-h3-max-relight";
3480
3497
  readonly MinimaxH3MaxTurbo: "minimax-h3-max-turbo";
3481
3498
  readonly MinimaxMusicV2: "minimax-music-v2";
3482
3499
  readonly MinimaxMusicV3: "minimax-music-v3";
package/index.js CHANGED
@@ -795,7 +795,8 @@ var providers = {
795
795
  async: { color: "#5E5CE6", label: "AA", name: "Async AI" },
796
796
  captionsai: { color: "#1D1F20", label: "MR", name: "Mirage" },
797
797
  meta: { color: "#0081FB", label: "MT", name: "Meta" },
798
- typesafe: { color: "#3E6B8F", label: "TS", name: "TypeSafe" }
798
+ typesafe: { color: "#3E6B8F", label: "TS", name: "TypeSafe" },
799
+ "depth-anything": { color: "#0EA5E9", label: "DA", name: "Depth Anything" }
799
800
  };
800
801
 
801
802
  // src/core/descriptors/presets.ts
@@ -1173,7 +1174,7 @@ var passthroughPayload = (paramConfig) => (ctx) => {
1173
1174
  return payload;
1174
1175
  };
1175
1176
  function defineModels(provider, configs) {
1176
- const MODELS39 = [];
1177
+ const MODELS40 = [];
1177
1178
  for (const c of configs) {
1178
1179
  const prov = c.provider ?? provider;
1179
1180
  const resolvedPayload = c.buildPayload ?? passthroughPayload(c.paramConfig);
@@ -1209,19 +1210,19 @@ function defineModels(provider, configs) {
1209
1210
  if (c.constraints !== void 0) model.constraints = c.constraints;
1210
1211
  const contract = createModelContract(model);
1211
1212
  model.outputSchema = c.outputSchema ?? contract.output;
1212
- MODELS39.push(model);
1213
+ MODELS40.push(model);
1213
1214
  }
1214
- return { MODELS: MODELS39 };
1215
+ return { MODELS: MODELS40 };
1215
1216
  }
1216
- function registerPayloads(MODELS39, payloads) {
1217
+ function registerPayloads(MODELS40, payloads) {
1217
1218
  for (const [id, builder] of Object.entries(payloads)) {
1218
- const model = MODELS39.find((m) => m.id === id);
1219
+ const model = MODELS40.find((m) => m.id === id);
1219
1220
  if (model) model.buildPayload = builder;
1220
1221
  }
1221
1222
  }
1222
- function registerEditPayloads(MODELS39, payloads) {
1223
+ function registerEditPayloads(MODELS40, payloads) {
1223
1224
  for (const [id, builder] of Object.entries(payloads)) {
1224
- const model = MODELS39.find((m) => m.id === id);
1225
+ const model = MODELS40.find((m) => m.id === id);
1225
1226
  if (model) model.buildEditPayload = builder;
1226
1227
  }
1227
1228
  }
@@ -3287,6 +3288,41 @@ var { MODELS: MODELS9 } = defineModels("minimax", [
3287
3288
  // Default-less on purpose: unset means the vendor picks a random seed.
3288
3289
  ...params.seed()
3289
3290
  }
3291
+ },
3292
+ {
3293
+ // Relight sibling of minimax-h3-max: re-lights an existing clip to match
3294
+ // a lighting-reference image (a sphere render showing the target light).
3295
+ // No prompt and no duration on this wire — the output keeps the source
3296
+ // clip's length (the source is converted to constant 24 fps and trimmed
3297
+ // to the closest 17n+5 frame count, with at least ~2.33s remaining).
3298
+ id: "minimax-h3-max-relight",
3299
+ name: "MiniMax H3 Max Relight",
3300
+ modelId: "fal-ai-h3-max-relight",
3301
+ addedAt: "2026-10-08",
3302
+ workflow: "minimax/h3-max/relight",
3303
+ estimatedTime: 120,
3304
+ mode: "video",
3305
+ inputType: "v2v",
3306
+ description: "Relight an existing video with MiniMax H3 Max \u2014 a sphere-render reference image sets the target lighting and the output keeps the source clip's length. Sources up to 15s, output up to 2K.",
3307
+ features: [
3308
+ feat("Relight", "characteristic"),
3309
+ feat("Video Input", "input"),
3310
+ feat("Image Input", "input"),
3311
+ feat("2K", "resolution")
3312
+ ],
3313
+ paramConfig: {
3314
+ ...params.videoInput("Source Video", "asset", true, 15),
3315
+ // The target lighting, as a sphere render.
3316
+ ...params.imageInput(1, "Lighting Reference", true, "reference"),
3317
+ // 480p/768p generate natively; 1080p and 2K are latent refinements
3318
+ // of a native 768p generation.
3319
+ ...params.resolution(["480p", "768p", "1080p", "2k"], "768p"),
3320
+ // 'adaptive' follows the source video's ratio.
3321
+ ...params.aspectRatio(["adaptive", "21:9", "16:9", "4:3", "1:1", "3:4", "9:16"], "16:9"),
3322
+ // Default-less on purpose: unset means the vendor picks a random seed.
3323
+ ...params.seed(),
3324
+ ...p.boolean("enableSafetyChecker", true, "Safety Checker")
3325
+ }
3290
3326
  }
3291
3327
  ]);
3292
3328
 
@@ -8001,13 +8037,24 @@ var buildMinimaxH3MaxExtendPayload = (input) => ({
8001
8037
  enable_prompt_expansion: input.enhancePrompt ?? true,
8002
8038
  enable_safety_checker: input.enableSafetyChecker ?? true
8003
8039
  });
8040
+ var buildMinimaxH3MaxRelightPayload = (input) => ({
8041
+ video_url: input.videoUrl,
8042
+ // The single lighting reference travels as a scalar on the wire.
8043
+ reference_image_url: input.imageUrls?.[0],
8044
+ // The vendor enum is uppercase; paramConfig keeps the lowercase form.
8045
+ resolution: (input.resolution ?? "768p").toUpperCase(),
8046
+ aspect_ratio: input.aspectRatio ?? "16:9",
8047
+ ...input.seed != null ? { seed: input.seed } : {},
8048
+ enable_safety_checker: input.enableSafetyChecker ?? true
8049
+ });
8004
8050
  registerPayloads(MODELS9, {
8005
8051
  "minimax-music-v3": buildMinimaxMusicV3Payload,
8006
8052
  "minimax-h3-max": buildMinimaxH3MaxPayload,
8007
8053
  "minimax-h3-max-turbo": buildMinimaxH3MaxTurboPayload,
8008
8054
  "minimax-h3-max-camera-controls": buildMinimaxH3MaxCameraControlsPayload,
8009
8055
  "minimax-h3-max-lip-sync": buildMinimaxH3MaxLipSyncPayload,
8010
- "minimax-h3-max-extend": buildMinimaxH3MaxExtendPayload
8056
+ "minimax-h3-max-extend": buildMinimaxH3MaxExtendPayload,
8057
+ "minimax-h3-max-relight": buildMinimaxH3MaxRelightPayload
8011
8058
  });
8012
8059
  registerEditPayloads(MODELS9, {
8013
8060
  "minimax-h3-max-turbo": buildMinimaxH3MaxTurboPayload
@@ -10735,6 +10782,53 @@ registerPayloads(MODELS38, {
10735
10782
  "typesafe-evaluate": buildEvaluatePayload
10736
10783
  });
10737
10784
 
10785
+ // src/vendors/catalog/depth-anything.ts
10786
+ var { MODELS: MODELS39 } = defineModels("depth-anything", [
10787
+ {
10788
+ // Billed per second of the source clip at one flat rate, so none of the
10789
+ // knobs below changes the price. `max_frames` / `output_fps` are left to
10790
+ // the vendor defaults on purpose: a frame cap would shorten the processed
10791
+ // clip while billing still counts the whole source.
10792
+ id: "depth-anything-video",
10793
+ name: "Video Depth Anything",
10794
+ modelId: "fal-ai-depth-anything-video",
10795
+ addedAt: "2026-10-08",
10796
+ workflow: "depth-anything-video",
10797
+ estimatedTime: 60,
10798
+ mode: "video",
10799
+ inputType: "v2v",
10800
+ description: "Estimate temporally consistent depth for every frame of a video and render it as a depth-map video \u2014 grayscale or a color map, optionally side by side with the source.",
10801
+ features: [
10802
+ feat("Depth Map", "characteristic"),
10803
+ feat("Video Input", "input"),
10804
+ feat("1080p", "resolution")
10805
+ ],
10806
+ paramConfig: {
10807
+ ...params.videoInput("Source Video", "asset", true),
10808
+ // Small is fastest, Large is the most accurate.
10809
+ ...p.enum("model", ["VDA-Small", "VDA-Base", "VDA-Large"], "VDA-Large", { label: "Model Size" }),
10810
+ ...p.enum("colormap", ["grayscale", "turbo", "inferno", "magma", "viridis"], "grayscale", { label: "Color Map" }),
10811
+ // 'auto' keeps the source resolution, capped at 1080p.
10812
+ ...params.resolution(["auto", "360p", "480p", "720p", "1080p"], "auto"),
10813
+ ...p.boolean("sideBySide", false, "Side by Side")
10814
+ }
10815
+ }
10816
+ ]);
10817
+
10818
+ // src/vendors/catalog/depth-anything.payloads.ts
10819
+ var buildDepthAnythingVideoPayload = (input) => ({
10820
+ video_url: input.videoUrl,
10821
+ model: input.model ?? "VDA-Large",
10822
+ colormap: input.colormap ?? "grayscale",
10823
+ resolution: input.resolution ?? "auto",
10824
+ side_by_side: input.sideBySide ?? false,
10825
+ // The .npz export is a second, non-media output the SDK has no slot for.
10826
+ include_raw_depths: false
10827
+ });
10828
+ registerPayloads(MODELS39, {
10829
+ "depth-anything-video": buildDepthAnythingVideoPayload
10830
+ });
10831
+
10738
10832
  // src/vendors/catalog/creatify.payloads.ts
10739
10833
  var buildCreatifyBorealPayload = (input) => ({
10740
10834
  prompt: input.prompt,
@@ -10890,7 +10984,8 @@ var ALL_MODELS = [
10890
10984
  ...MODELS35,
10891
10985
  ...MODELS36,
10892
10986
  ...MODELS37,
10893
- ...MODELS38
10987
+ ...MODELS38,
10988
+ ...MODELS39
10894
10989
  ];
10895
10990
  var getModelsByMode = (mode, includeHidden = false) => ALL_MODELS.filter((m) => m.mode === mode && (includeHidden || isVisibleForReleases(m)));
10896
10991
 
@@ -13602,6 +13697,7 @@ var ClaudeSonnet46 = "claude-sonnet-4-6";
13602
13697
  var ClaudeSonnet5 = "claude-sonnet-5";
13603
13698
  var CreatifyAurora = "creatify-aurora";
13604
13699
  var CreatifyBoreal = "creatify-boreal";
13700
+ var DepthAnythingVideo = "depth-anything-video";
13605
13701
  var ElevenAudioIsolation = "eleven-audio-isolation";
13606
13702
  var ElevenDialogueV4 = "eleven-dialogue-v4";
13607
13703
  var ElevenDubbing = "eleven-dubbing";
@@ -13734,6 +13830,7 @@ var MinimaxH3Max = "minimax-h3-max";
13734
13830
  var MinimaxH3MaxCameraControls = "minimax-h3-max-camera-controls";
13735
13831
  var MinimaxH3MaxExtend = "minimax-h3-max-extend";
13736
13832
  var MinimaxH3MaxLipSync = "minimax-h3-max-lip-sync";
13833
+ var MinimaxH3MaxRelight = "minimax-h3-max-relight";
13737
13834
  var MinimaxH3MaxTurbo = "minimax-h3-max-turbo";
13738
13835
  var MinimaxMusicV2 = "minimax-music-v2";
13739
13836
  var MinimaxMusicV3 = "minimax-music-v3";
@@ -13859,6 +13956,7 @@ var Models = {
13859
13956
  ClaudeSonnet5,
13860
13957
  CreatifyAurora,
13861
13958
  CreatifyBoreal,
13959
+ DepthAnythingVideo,
13862
13960
  ElevenAudioIsolation,
13863
13961
  ElevenDialogueV4,
13864
13962
  ElevenDubbing,
@@ -13991,6 +14089,7 @@ var Models = {
13991
14089
  MinimaxH3MaxCameraControls,
13992
14090
  MinimaxH3MaxExtend,
13993
14091
  MinimaxH3MaxLipSync,
14092
+ MinimaxH3MaxRelight,
13994
14093
  MinimaxH3MaxTurbo,
13995
14094
  MinimaxMusicV2,
13996
14095
  MinimaxMusicV3,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@picsart/ai-sdk",
3
- "version": "6.29.0",
3
+ "version": "6.31.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",