IMAGINE

Generate a video based on a prompt and/or an image input.

POST https://api.apiframe.pro/luma-imagine

Headers

NameValue

Content-Type

application/json

Authorization*

Your APIFRAME API Key

Body

NameTypeDescription

prompt*

string

the text prompt for the video

image_url

string

URL of the image representing initial frame of the video

end_image_url

string

URL of the image representing end frame of the video

enhance_prompt

boolean

Should Luma AI try to enhance your prompt? Default: false

aspect_ratio

string

Aspect ratio for the video. Default: 1:1

loop

boolean

Create a looping video

webhook_url

string

The final result and updates of this task will be posted at this URL.

webhook_secret

string

Will be passed as x-webhook-secret in the webhook call headers for authentication.

Response

// Success, the task has been submitted
{
  "task_id": "29e983ca-7e86-4017-a9e3-ef6fe9cd5f2a"
}

This endpoint doesn't generate the video instantly, you can use the Fetch endpoint to fetch the result or use webhooks.

The result (posted to the webhook_url or retrieved with the Fetch endpoint) looks like this:

{
    "task_id": "29e983ca-7e86-4017-a9e3-ef6fe9cd5f2a",
    "task_type": "luma",
    "video_url": "https://...........xxxx.mp4", // 
}

If the job is not completed, you will get a result like this:

{
    "task_id": "29e983ca-7e86-4017-a9e3-ef6fe9cd5f2a",
    "task_type": "luma",
    "status": "processing",
    "percentage": "40",
}

Code samples

const axios = require('axios');
const data = JSON.stringify({
  "prompt": "A colossal mech suit towering over a futuristic cityscape, its powerful weapons primed for battle against an unseen threat.",
  "webhook_url": "https://........",
  "webhook_secret": "abc123"
});

const config = {
  method: 'post',
  maxBodyLength: Infinity,
  url: 'https://api.apiframe.pro/luma-imagine',
  headers: { 
    'Content-Type': 'application/json', 
    'Authorization': 'YOUR_API_KEY'
  },
  data : data
};

axios.request(config)
.then((response) => {
  console.log(JSON.stringify(response.data));
})
.catch((error) => {
  console.log(error);
});

Last updated