Platform
Checking your session…
← All models

MiniMaxMiniMax H3 Max RelightVideo → Video

Relight an existing video with MiniMax H3 Max — 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.

RelightVideo InputImage Input2K

Authentication

Send your Picsart API key as a bearer token on every request.

Header
Authorization: Bearer <PICSART_API_KEY>

Make a request

One endpoint serves every model: POST to /workflows/v1/models/execute with the model id and its input in the body. The nesting is deliberate — the outer params is the envelope every workflow takes, and the inner one is this model's own input. Those inner names are the same unified ones the SDK takes, so a call translates one-to-one between the two — no per-vendor naming to learn.

cURL
curl -X POST 'https://api.picsart.com/workflows/v1/models/execute' \
  -H 'Authorization: Bearer $PICSART_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{
  "params": {
    "model": "minimax-h3-max-relight",
    "params": {
      "videoUrl": "https://cdn.example.com/input.mp4",
      "imageUrls": [
        "https://cdn.example.com/input.jpg"
      ],
      "resolution": "768p",
      "aspectRatio": "16:9"
    }
  }
}'

Async (submit & poll)

This model can run longer than the sync limit (~20s), so send it to /workflows/v1/models/submit, which returns a task id, and poll /workflows/v1/models/{taskId}/result until response.status is COMPLETED or FAILED.

cURL
# 1. Submit the job
curl -X POST 'https://api.picsart.com/workflows/v1/models/submit' \
  -H 'Authorization: Bearer $PICSART_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{
  "params": {
    "model": "minimax-h3-max-relight",
    "params": {
      "videoUrl": "https://cdn.example.com/input.mp4",
      "imageUrls": [
        "https://cdn.example.com/input.jpg"
      ],
      "resolution": "768p",
      "aspectRatio": "16:9"
    }
  }
}'
# → { "status": "success", "response": { "id": "task_abc123" } }

# 2. Poll until response.status is COMPLETED
curl 'https://api.picsart.com/workflows/v1/models/task_abc123/result' \
  -H 'Authorization: Bearer $PICSART_API_KEY'
Result body
{
  "status": "success",
  "response": {
    "id": "task_abc123",
    "status": "COMPLETED",
    "result": {
      "url": "https://cdn.picsart.com/…/result",
      "items": [
        {
          "url": "https://cdn.picsart.com/…/result"
        }
      ],
      "model": "minimax-h3-max-relight"
    }
  }
}

Parameters

6 parameters, sent inside the inner params object. Identical to the SDK's — one parameter set, whichever transport you use.

ParameterTypeRequiredDefaultDetails
videoUrl
Source Video
file (video)yes—max 15s
imageUrls
Lighting Reference
file (image[])yes——
resolutionenumno768p480p, 768p, 1080p, 2k
aspectRatioenumno16:9adaptive, 21:9, 16:9, 4:3, 1:1, 3:4, 9:16
seed
Seed
rangeno—0–2147483647 (step 1)
enableSafetyChecker
Safety Checker
booleannotrue—

Response

The body arrives in the gateway's status envelope, so the output is at response.result — alongside the task id, its status and the amount charged. Asset models return url plus an items array; text models return text instead.

Response body
{
  "status": "success",
  "response": {
    "id": "task_abc123",
    "status": "COMPLETED",
    "result": {
      "url": "https://cdn.picsart.com/…/result",
      "items": [
        {
          "url": "https://cdn.picsart.com/…/result"
        }
      ],
      "model": "minimax-h3-max-relight"
    }
  }
}