MetaSAM 3 VideoVideo → Video
Segment and track objects through a video from a text prompt — name several objects separated by commas and SAM 3 keeps each one masked across every frame.
SegmentationObject TrackingVideo Input
Install the SDK
The SDK targets Node 20+ and ships with TypeScript types.
npm install @picsart/ai-sdkAuthenticate
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('sam-3-video', {
prompt: "A serene mountain lake at golden hour, ultra detailed",
videoUrl: "https://cdn.example.com/input.mp4"
});
console.log(result.url); // video URLParameters
5 parameters. Required ones must be supplied; the rest fall back to their defaults. The API takes these same names over HTTP.
| Parameter | Type | Required | Default | Details |
|---|---|---|---|---|
promptPrompt | text | yes | — | e.g. "person, cloth" |
videoUrlSource Video | file (video) | yes | — | — |
detectionThresholdDetection Threshold | range | no | 0.5 | 0–1 (step 0.05) |
applyMaskApply Mask | boolean | no | true | — |
outputFormatFormat | enum | no | mp4 | mp4, webm |
Output
generate() resolves once the job completes. A video URL.
Result
{
"items": [
{
"url": "https://cdn.picsart.com/…/result"
}
],
"model": "sam-3-video"
}