Hailuo AI - Image to Video
Transform static images into dynamic videos using Hailuo AI's advanced video generation models. Supports both v1 and v2 models with customizable duration, resolution, director mode for camera control, and live mode for real-time animation.
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 | hailuo | AI model to use | ✔️ |
| conversationId | string | IMAGE_TO_VIDEO | Conversation context | ✔️ |
| promptObject.imageUrl | string | images/example.jpg | Source image path from Asset API upload | ✔️ |
| promptObject.taskType | string | i2v-02 | Model variant to use (see available models below) | ✔️ |
| promptObject.prompt | string | gentle waves moving | Text description of desired motion/scene | ❌ |
| promptObject.duration | number | 6 | Video duration in seconds (required for v2 models: 6 or 10) | ⚠️ |
| promptObject.resolution | number | 768 | Video resolution (required for v2 models: 768 or 1080) | ⚠️ |
| promptObject.expand_prompt | boolean | false | Automatically expand the prompt for better results | ❌ |
Available Model Variants
V2 Models (Recommended - Default):
i2v-02- Image to Video v2 (default, supports duration and resolution customization)
V1 Models:
i2v-01- Image to Video v1 (standard quality)i2v-01-director- Image to Video v1 with director mode (camera control)i2v-01-live- Image to Video v1 live mode (real-time animation)
Note: The combination of 1080p + 10s is not supported. Use 1080p + 6s or 768p + 10s instead.
Image Requirements
File formats:
- JPG, PNG only
Size limit:
- Maximum: 10MB
Dimensions:
- Minimum: 300px (width or height)
- Maximum: 4096px (width or height)
- Aspect ratio: Must be between 2:5 and 5:2
Text Prompt Requirements
Maximum length:
- 2000 characters
Required for:
s2v-01- Subject Reference Videoi2v-01-director- Director Mode
Optional for:
i2v-01- Standard Image to Videoi2v-01-live- Live Modei2v-02- Image to Video v2
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": "hailuo",
"conversationId": "IMAGE_TO_VIDEO",
"promptObject": {
"imageUrl": "images/2025_12_08_08_29_30_730_cat.png",
"taskType": "i2v-02",
"prompt": "gentle waves moving",
"duration": 6,
"resolution": 768,
"expand_prompt": 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: 'hailuo',
conversationId: 'IMAGE_TO_VIDEO',
promptObject: {
imageUrl: 'images/2025_12_08_08_29_30_730_cat.png',
taskType: 'i2v-02',
prompt: 'gentle waves moving',
duration: 6,
resolution: 768,
expand_prompt: 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": "hailuo",
"conversationId": "IMAGE_TO_VIDEO",
"promptObject": {
"imageUrl": "images/2025_12_08_08_29_30_730_cat.png",
"taskType": "i2v-02",
"prompt": "gentle waves moving",
"duration": 6,
"resolution": 768,
"expand_prompt": 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. Must be JPG/PNG, 300px-4096px, aspect ratio 2:5 to 5:2, max 10MB
Describe the motion and animation you want to see in the video. Required for s2v-01 and i2v-01-director. Max 2000 characters.
Optional for v2 models (i2v-02). Default: 6
Optional for v2 models (i2v-02). Default: 768. Note: 1080p + 10s is not supported
Automatically expand the prompt for better results
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": "hailuo",
"conversationId": "IMAGE_TO_VIDEO",
"promptObject": {
"imageUrl": "images/2025_12_08_08_29_30_730_cat.png",
"taskType": "i2v-02",
"prompt": "gentle waves moving",
"duration": 6,
"resolution": 768,
"expand_prompt": false
}
}'
Response
{
"aiRecord": {
"uuid": "73ae328e-9fa2-492a-be60-7b9b98909471",
"userId": "c937fbcc-fa8f-4565-a440-c4d87f56fcb2",
"teamId": "a4e176b2-dabb-451e-9c58-62b451fa9630",
"teamUser": {
"teamId": "a4e176b2-dabb-451e-9c58-62b451fa9630",
"userId": "c937fbcc-fa8f-4565-a440-c4d87f56fcb2",
"userName": "John Doe",
"userAvatar": "https://lh3.googleusercontent.com/a/ACg8ocLqgsNsHRfmWF9d-E1RvJetVsEzxNOsOg-NXWNTpMxLDPJbwELI=s96-c",
"status": "ACTIVE",
"role": "ADMIN",
"creditLimit": 100000000,
"usedCredit": 25491660,
"createdAt": "2025-10-20T04:13:40.847Z",
"createdBy": "SYSTEM",
"updatedAt": "2025-10-22T08:31:13.089Z",
"updatedBy": "SYSTEM"
},
"model": "hailuo",
"type": "IMAGE_TO_VIDEO",
"metadata": null,
"rating": null,
"feedback": null,
"conversationId": null,
"status": "SUCCESS",
"createdAt": "2025-12-08T11:17:44.499Z",
"aiRecordDetail": {
"promptObject": {
"imageUrl": "images/2025_12_08_08_29_30_730_cat.png",
"taskType": "i2v-02",
"prompt": "gentle waves moving",
"duration": 6,
"resolution": 768,
"expand_prompt": false
},
"resultObject": [
"development/videos/2025_12_08_19_17_44_499_123456.mp4"
],
"responseObject": {}
},
"additionalData": null,
"temporaryUrl": "https://s3.us-east-1.amazonaws.com/asset.1min.ai/development/videos/2025_12_08_19_17_44_499_123456.mp4?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=..."
}
}