Platform
Checking your session…
← All models

FluxFlux 3 Max KeyframesImage → Video

Animate a video between up to 10 positioned keyframe images, with synchronized audio. Up to 20s at 1080p.

Multi-Image InputAudioUp to 20s1080p

Install the SDK

The SDK targets Node 20+ and ships with TypeScript types.

npm install @picsart/ai-sdk

Authenticate

Create a client once with your API key — it's sent as a bearer token on every request.

import { createClient } from '@picsart/ai-sdk';

const ai = createClient({
  apiKey: process.env.PICSART_API_KEY, // sent as: Authorization: Bearer <key>
  apiUrl: 'https://api.picsart.com',
});

Run the model

Call the model with its parameters. This example uses the required ones.

import { createClient } from '@picsart/ai-sdk';

const ai = createClient({
  apiKey: process.env.PICSART_API_KEY,
  apiUrl: 'https://api.picsart.com',
});

const result = await ai.generate('flux-3-max-keyframes', {
  prompt: "A serene mountain lake at golden hour, ultra detailed",
  imageUrls: [
    "https://cdn.example.com/input.jpg"
  ],
  aspectRatio: "16:9",
  resolution: "720p",
  duration: 5
});

console.log(result.url); // video URL

Parameters

8 parameters. Required ones must be supplied; the rest fall back to their defaults. The API takes these same names over HTTP.

ParameterTypeRequiredDefaultDetails
prompt
Prompt
textyes——
imageUrls
Keyframes
file (image[])yes——
aspectRatioenumno16:9auto, 21:9, 2:1, 16:9, 4:3, 1:1, 3:4, 9:16
resolutionenumno720p720p, 1080p
durationrangeno55–20 (step 1)
generateAudiobooleannotrue—
reasoningLevel
Reasoning
enumnohighlow, high
seedrangeno-1-1–2147483647

Output

generate() resolves once the job completes. A video URL.

Result
{
  "items": [
    {
      "url": "https://cdn.picsart.com/…/result"
    }
  ],
  "model": "flux-3-max-keyframes"
}