@picsart/ai-sdk 5.38.0 → 5.39.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
@@ -876,6 +876,21 @@ type ModelInputById = {
876
876
  seed?: number;
877
877
  enableSafetyChecker?: boolean;
878
878
  };
879
+ "minimax-h3-max-camera-controls": {
880
+ prompt?: string;
881
+ startFrame: string;
882
+ resolution?: "480p" | "768p" | "1080p";
883
+ duration?: number;
884
+ cameraTrajectory?: Array<{
885
+ time: number;
886
+ azimuth: number;
887
+ elevation: number;
888
+ distance: number;
889
+ }>;
890
+ promptExpansionMode?: "balanced" | "quality";
891
+ seed?: number;
892
+ enableSafetyChecker?: boolean;
893
+ };
879
894
  "minimax-h3-max-turbo": {
880
895
  prompt: string;
881
896
  startFrame?: string;
@@ -2781,6 +2796,7 @@ declare const Models: {
2781
2796
  readonly Minimax02Hd: "minimax-02-hd";
2782
2797
  readonly MinimaxH3: "minimax-h3";
2783
2798
  readonly MinimaxH3Max: "minimax-h3-max";
2799
+ readonly MinimaxH3MaxCameraControls: "minimax-h3-max-camera-controls";
2784
2800
  readonly MinimaxH3MaxTurbo: "minimax-h3-max-turbo";
2785
2801
  readonly MinimaxMusicV2: "minimax-music-v2";
2786
2802
  readonly MinimaxMusicV3: "minimax-music-v3";
package/index.js CHANGED
@@ -6942,6 +6942,60 @@ var { MODELS: MODELS25 } = defineModels("minimax", [
6942
6942
  aspectRatio: { disabled: true, reason: "Aspect ratio follows the frame image." }
6943
6943
  } }
6944
6944
  ]
6945
+ },
6946
+ {
6947
+ // Camera-controls sibling of minimax-h3-max: animates a single start
6948
+ // frame along scripted camera keyframes. The prompt is optional — blank
6949
+ // freezes the scene and moves only the camera. No aspect ratio on this
6950
+ // wire; the output follows the frame image.
6951
+ id: "minimax-h3-max-camera-controls",
6952
+ name: "MiniMax H3 Max Camera Controls",
6953
+ modelId: "fal-ai-h3-max-camera-controls",
6954
+ addedAt: "2026-09-14",
6955
+ workflow: "minimax/h3-max/camera-controls",
6956
+ estimatedTime: 5,
6957
+ mode: "video",
6958
+ inputType: "i2v",
6959
+ description: "MiniMax H3 Max video from a start frame with scripted camera motion \u2014 2-12 keyframes set the camera angle, height, and distance over time. Leave the prompt blank to freeze the scene and move only the camera. Up to 15s at 1080p.",
6960
+ features: [
6961
+ feat("Camera Controls", "characteristic"),
6962
+ feat("Image Input", "input"),
6963
+ feat("1080p", "resolution"),
6964
+ feat("5-15 sec", "duration")
6965
+ ],
6966
+ paramConfig: {
6967
+ ...params.prompt({
6968
+ maxLength: H3_MAX_PROMPT_MAX,
6969
+ required: false,
6970
+ placeholder: "Optional \u2014 leave blank to freeze the scene and move only the camera..."
6971
+ }),
6972
+ ...params.startFrame("Start Frame", true),
6973
+ // Native 480p default here (the siblings default to 768p); 1080p is a
6974
+ // latent refinement of a native 768p generation.
6975
+ ...params.resolution(["480p", "768p", "1080p"], "480p"),
6976
+ ...params.durationRange(5, 15, 5),
6977
+ // Ordered camera keyframes: the first pose is held before its time and
6978
+ // the final pose for the remainder. Azimuth keeps signed full turns,
6979
+ // capped at ±32 turns of total travel; distance is in normalized scene
6980
+ // units and must stay above zero (the wire has no upper bound).
6981
+ cameraTrajectory: {
6982
+ label: "Camera Trajectory",
6983
+ descriptor: {
6984
+ kind: "object",
6985
+ array: { min: 2, max: 12 },
6986
+ fields: {
6987
+ time: { kind: "range", min: 0, max: 1, step: 0.01, default: 0 },
6988
+ azimuth: { kind: "range", min: -11520, max: 11520, default: 0 },
6989
+ elevation: { kind: "range", min: -90, max: 90, default: 0 },
6990
+ distance: { kind: "range", min: 0.01, max: 100, default: 1 }
6991
+ }
6992
+ }
6993
+ },
6994
+ ...p.enum("promptExpansionMode", ["balanced", "quality"], "balanced", { label: "Prompt Expansion" }),
6995
+ // -1 (sentinel) means "pick a random seed"; the builder drops it.
6996
+ ...p.range("seed", -1, 2147483647, -1),
6997
+ ...p.boolean("enableSafetyChecker", true, "Safety Checker")
6998
+ }
6945
6999
  }
6946
7000
  ]);
6947
7001
 
@@ -7001,10 +7055,25 @@ var buildMinimaxH3MaxTurboPayload = (input) => ({
7001
7055
  ...input.seed != null && input.seed !== -1 ? { seed: input.seed } : {},
7002
7056
  enable_safety_checker: input.enableSafetyChecker ?? true
7003
7057
  });
7058
+ var buildMinimaxH3MaxCameraControlsPayload = (input) => ({
7059
+ // Blank prompt is meaningful upstream — fal substitutes its frozen-scene
7060
+ // default — so it is omitted rather than sent empty.
7061
+ ...input.prompt ? { prompt: input.prompt } : {},
7062
+ image_url: input.startFrame,
7063
+ ...input.cameraTrajectory?.length ? { camera_trajectory: input.cameraTrajectory } : {},
7064
+ prompt_expansion_mode: input.promptExpansionMode ?? "balanced",
7065
+ duration: input.duration ?? 5,
7066
+ // The vendor enum is uppercase; paramConfig keeps the lowercase form.
7067
+ resolution: (input.resolution ?? "480p").toUpperCase(),
7068
+ // -1 is the paramConfig sentinel for "random seed" — omit it on the wire.
7069
+ ...input.seed != null && input.seed !== -1 ? { seed: input.seed } : {},
7070
+ enable_safety_checker: input.enableSafetyChecker ?? true
7071
+ });
7004
7072
  registerPayloads(MODELS25, {
7005
7073
  "minimax-music-v3": buildMinimaxMusicV3Payload,
7006
7074
  "minimax-h3-max": buildMinimaxH3MaxPayload,
7007
- "minimax-h3-max-turbo": buildMinimaxH3MaxTurboPayload
7075
+ "minimax-h3-max-turbo": buildMinimaxH3MaxTurboPayload,
7076
+ "minimax-h3-max-camera-controls": buildMinimaxH3MaxCameraControlsPayload
7008
7077
  });
7009
7078
  registerEditPayloads(MODELS25, {
7010
7079
  "minimax-h3-max-turbo": buildMinimaxH3MaxTurboPayload
@@ -11545,6 +11614,7 @@ var Lyria35 = "lyria-3.5";
11545
11614
  var Minimax02Hd = "minimax-02-hd";
11546
11615
  var MinimaxH3 = "minimax-h3";
11547
11616
  var MinimaxH3Max = "minimax-h3-max";
11617
+ var MinimaxH3MaxCameraControls = "minimax-h3-max-camera-controls";
11548
11618
  var MinimaxH3MaxTurbo = "minimax-h3-max-turbo";
11549
11619
  var MinimaxMusicV2 = "minimax-music-v2";
11550
11620
  var MinimaxMusicV3 = "minimax-music-v3";
@@ -11770,6 +11840,7 @@ var Models = {
11770
11840
  Minimax02Hd,
11771
11841
  MinimaxH3,
11772
11842
  MinimaxH3Max,
11843
+ MinimaxH3MaxCameraControls,
11773
11844
  MinimaxH3MaxTurbo,
11774
11845
  MinimaxMusicV2,
11775
11846
  MinimaxMusicV3,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@picsart/ai-sdk",
3
- "version": "5.38.0",
3
+ "version": "5.39.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",