@picsart/ai-sdk 5.21.2 → 5.22.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
@@ -791,6 +791,17 @@ type ModelInputById = {
791
791
  duration?: 5 | 10 | 15;
792
792
  aspectRatio?: "adaptive" | "21:9" | "16:9" | "4:3" | "1:1" | "3:4" | "9:16";
793
793
  };
794
+ "minimax-h3-max": {
795
+ prompt: string;
796
+ startFrame?: string;
797
+ endFrame?: string;
798
+ resolution?: "480p" | "768p";
799
+ duration?: number;
800
+ aspectRatio?: "21:9" | "16:9" | "4:3" | "1:1" | "3:4" | "9:16";
801
+ promptExpansionMode?: "disabled" | "balanced" | "quality";
802
+ seed?: number;
803
+ enableSafetyChecker?: boolean;
804
+ };
794
805
  "minimax-music-v2": {
795
806
  prompt: string;
796
807
  lyricsPrompt?: string;
@@ -2590,6 +2601,7 @@ declare const Models: {
2590
2601
  readonly Lyria3Pro: "lyria-3-pro";
2591
2602
  readonly Minimax02Hd: "minimax-02-hd";
2592
2603
  readonly MinimaxH3: "minimax-h3";
2604
+ readonly MinimaxH3Max: "minimax-h3-max";
2593
2605
  readonly MinimaxMusicV2: "minimax-music-v2";
2594
2606
  readonly MinimaxMusicV3: "minimax-music-v3";
2595
2607
  readonly Ovi: "ovi";
package/index.js CHANGED
@@ -6413,6 +6413,52 @@ var { MODELS: MODELS26 } = defineModels("minimax", [
6413
6413
  ...p.enum("bitrate", [32e3, 64e3, 128e3, 256e3], 256e3, { label: "Bitrate" }),
6414
6414
  ...p.enum("format", ["mp3", "wav", "pcm"], "mp3", { label: "Format" })
6415
6415
  }
6416
+ },
6417
+ {
6418
+ // Combined T2V/I2V — fal.ai-hosted (pa-fal-ai-pluggable-worker), unlike
6419
+ // the Hailuo/H3 entries in hailuo.ts which route through the minimax
6420
+ // worker. A start frame switches to the image-to-video edit workflow.
6421
+ id: "minimax-h3-max",
6422
+ name: "MiniMax H3 Max",
6423
+ modelId: "fal-ai-h3-max",
6424
+ addedAt: "2026-08-28",
6425
+ workflow: "minimax/h3-max/text-to-video",
6426
+ editWorkflow: "minimax/h3-max/image-to-video",
6427
+ estimatedTime: 180,
6428
+ mode: "video",
6429
+ inputType: "t2v",
6430
+ description: "Top-tier MiniMax H3 Max video from text or a start/end frame, with prompt expansion. Up to 15s at 768p.",
6431
+ features: [
6432
+ feat("Image Input", "input"),
6433
+ feat("Start/End Frame", "frame"),
6434
+ feat("768p", "resolution"),
6435
+ feat("5-15 sec", "duration")
6436
+ ],
6437
+ paramConfig: {
6438
+ ...params.prompt(),
6439
+ ...params.startFrame(),
6440
+ ...params.endFrame(),
6441
+ // Lowercase on purpose: the worker uppercases for the fal wire ('768P')
6442
+ // and the pricing qualities are lowercase, so this casing serves both.
6443
+ ...params.resolution(["480p", "768p"], "768p"),
6444
+ ...params.durationRange(5, 15, 5),
6445
+ ...params.aspectRatio(["21:9", "16:9", "4:3", "1:1", "3:4", "9:16"], "16:9"),
6446
+ ...p.enum("promptExpansionMode", ["disabled", "balanced", "quality"], "balanced", { label: "Prompt Expansion" }),
6447
+ // -1 (sentinel) means "pick a random seed"; the builder drops it.
6448
+ ...p.range("seed", -1, 2147483647, -1),
6449
+ ...p.boolean("enableSafetyChecker", true, "Safety Checker")
6450
+ },
6451
+ constraints: [
6452
+ // The T2V wire has no end_image_url — an end frame only reaches the
6453
+ // vendor on the I2V route, which needs a start frame to trigger.
6454
+ { when: { startFrame: { exists: false } }, then: {
6455
+ endFrame: { disabled: true, reason: "An end frame requires a start frame." }
6456
+ } },
6457
+ // I2V derives the ratio from the input image (no aspect_ratio on that wire).
6458
+ { when: { startFrame: { exists: true } }, then: {
6459
+ aspectRatio: { disabled: true, reason: "Aspect ratio follows the start frame image." }
6460
+ } }
6461
+ ]
6416
6462
  }
6417
6463
  ]);
6418
6464
 
@@ -6431,8 +6477,25 @@ var buildMinimaxMusicV3Payload = (input) => ({
6431
6477
  format: input.format ?? "mp3"
6432
6478
  }
6433
6479
  });
6480
+ var buildMinimaxH3MaxPayload = (input) => ({
6481
+ prompt: input.prompt,
6482
+ prompt_expansion_mode: input.promptExpansionMode ?? "balanced",
6483
+ duration: input.duration ?? 5,
6484
+ resolution: input.resolution ?? "768p",
6485
+ ...input.startFrame ? {
6486
+ image_url: input.startFrame,
6487
+ ...input.endFrame ? { end_image_url: input.endFrame } : {}
6488
+ } : { aspect_ratio: input.aspectRatio ?? "16:9" },
6489
+ // -1 is the paramConfig sentinel for "random seed" — omit it on the wire.
6490
+ ...input.seed != null && input.seed !== -1 ? { seed: input.seed } : {},
6491
+ enable_safety_checker: input.enableSafetyChecker ?? true
6492
+ });
6434
6493
  registerPayloads(MODELS26, {
6435
- "minimax-music-v3": buildMinimaxMusicV3Payload
6494
+ "minimax-music-v3": buildMinimaxMusicV3Payload,
6495
+ "minimax-h3-max": buildMinimaxH3MaxPayload
6496
+ });
6497
+ registerEditPayloads(MODELS26, {
6498
+ "minimax-h3-max": buildMinimaxH3MaxPayload
6436
6499
  });
6437
6500
 
6438
6501
  // src/vendors/catalog/ideogram.ts
@@ -10624,6 +10687,7 @@ var Lyria3Clip = "lyria-3-clip";
10624
10687
  var Lyria3Pro = "lyria-3-pro";
10625
10688
  var Minimax02Hd = "minimax-02-hd";
10626
10689
  var MinimaxH3 = "minimax-h3";
10690
+ var MinimaxH3Max = "minimax-h3-max";
10627
10691
  var MinimaxMusicV2 = "minimax-music-v2";
10628
10692
  var MinimaxMusicV3 = "minimax-music-v3";
10629
10693
  var Ovi = "ovi";
@@ -10833,6 +10897,7 @@ var Models = {
10833
10897
  Lyria3Pro,
10834
10898
  Minimax02Hd,
10835
10899
  MinimaxH3,
10900
+ MinimaxH3Max,
10836
10901
  MinimaxMusicV2,
10837
10902
  MinimaxMusicV3,
10838
10903
  Ovi,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@picsart/ai-sdk",
3
- "version": "5.21.2",
3
+ "version": "5.22.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",