Luma AI - Image to Video
Generate high-quality videos from images using Luma AI's Dream Machine model. Transform static images into dynamic videos with customizable motion and prompt enhancement capabilities.
Note: Image files must first be uploaded using the Asset API before processing. The imageUrl parameter should contain the path returned from the Asset API upload.
Endpoint
Request Headers
| Field | Value |
|---|---|
| API-KEY | <api-key> |
| Content-Type | application/json |
Request Parameters
| Field Name | Type | Example | Description | Required |
|---|---|---|---|---|
| type | string | IMAGE_TO_VIDEO | Feature identifier | ✔️ |
| model | string | luma | AI provider (must be "luma") | ✔️ |
| promptObject.imageUrl | string | images/example.jpg | Source image path from Asset API upload | ✔️ |
| promptObject.prompt | string | gentle waves moving | Text description of desired motion/scene | ✔️ |
| promptObject.modelName | string | ray-v3 | AI model to use (ray-v1, ray-v2, ray-v2-flash, ray-v3, ray-v3-reasoning) | ✔️ |
| promptObject.duration | string | 5s | Length of video (5s or 10s) | ✔️ |
| promptObject.aspectRatio | string | 16:9 | Video aspect ratio (1:1, 16:9, 9:16, 4:3, 3:4, 21:9, 9:21) | ❌ |
| promptObject.resolution | string | 720p | Video resolution (720p or 1080p) | ❌ |
| promptObject.loop | boolean | false | Enable video looping | ❌ |
Code Examples
- cURL
- JavaScript
- Python
curl --location 'https://api.1min.ai/api/features' \
--header 'API-KEY: <api-key>' \
--header 'Content-Type: application/json' \
--data '{
"type": "IMAGE_TO_VIDEO",
"model": "luma",
"promptObject": {
"imageUrl": "images/2025_10_22_07_10_43_846_elon-musk.jpg",
"prompt": "gentle waves moving across a serene lake with soft sunlight",
"modelName": "ray-v3",
"duration": "5s",
"aspectRatio": "16:9",
"resolution": "720p",
"loop": false
}
}'
fetch('https://api.1min.ai/api/features', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'API-KEY': 'YOUR_API_KEY'
},
body: JSON.stringify({
type: 'IMAGE_TO_VIDEO',
model: 'luma',
promptObject: {
imageUrl: 'images/2025_10_22_07_10_43_846_elon-musk.jpg',
prompt: 'gentle waves moving across a serene lake with soft sunlight',
modelName: 'ray-v3',
duration: '5s',
aspectRatio: '16:9',
resolution: '720p',
loop: false
}
})
})
import requests
url = "https://api.1min.ai/api/features"
headers = {
"Content-Type": "application/json",
"API-KEY": "YOUR_API_KEY"
}
data = {
"type": "IMAGE_TO_VIDEO",
"model": "luma",
"promptObject": {
"imageUrl": "images/2025_10_22_07_10_43_846_elon-musk.jpg",
"prompt": "gentle waves moving across a serene lake with soft sunlight",
"modelName": "ray-v3",
"duration": "5s",
"aspectRatio": "16:9",
"resolution": "720p",
"loop": False
}
}
response = requests.post(url, headers=headers, json=data)
Interactive Playground
API Playground
https://api.1min.ai/api/featuresPath to the source image file uploaded via Asset API
Describe the motion and animation you want to see in the video
Choose the duration for your generated video
Choose the aspect ratio for your video
Choose the resolution for your video
Enable seamless video looping
Generated cURL Command:
curl -X POST "https://api.1min.ai/api/features" \
-H "API-KEY: <your-api-key>" \
-H "Content-Type: application/json" \
-d '{
"type": "IMAGE_TO_VIDEO",
"model": "luma",
"promptObject": {
"imageUrl": "images/2025_10_22_07_10_43_846_elon-musk.jpg",
"prompt": "gentle waves moving across a serene lake with soft sunlight",
"modelName": "ray-v3",
"duration": "5s",
"aspectRatio": "16:9",
"resolution": "720p",
"loop": false
}
}'
Response
{}