Video Generation
Midjourney Video
Image-to-video generation powered by Midjourney — generates 4 videos per request.
POST /v2/videos/generate — model: "midjourney-video"
Generate 4 video variations from a start image and text prompt, powered by Midjourney's video model.
See Video Generation overview for common request fields, response format, and error codes.
Model-specific parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
midjourneyVideoParams.start_image | string | Yes | — | URL of the image to animate into video |
midjourneyVideoParams.motion | string | No | "low" | Motion intensity: "low" or "high" |
midjourneyVideoParams.resolution | string | No | "sd" | Video resolution: "sd" (480p) or "hd" (720p) |
Output format
Unlike single-video models, Midjourney Video returns 4 video URLs in the completed job result:
{
"videos": [
"https://cdn2.apiframe.ai/videos/job-id-1.mp4",
"https://cdn2.apiframe.ai/videos/job-id-2.mp4",
"https://cdn2.apiframe.ai/videos/job-id-3.mp4",
"https://cdn2.apiframe.ai/videos/job-id-4.mp4"
]
}Credit cost
| Variant | Description |
|---|---|
sd | SD resolution, low motion |
sd-high | SD resolution, high motion |
hd | HD resolution, low motion |
hd-high | HD resolution, high motion |
Code examples
curl -X POST https://api.apiframe.ai/v2/videos/generate \
-H "X-API-Key: afk_your_api_key_here" \
-H "Content-Type: application/json" \
-d '{
"prompt": "the camera slowly pans across a misty forest at dawn",
"model": "midjourney-video",
"midjourneyVideoParams": {
"start_image": "https://example.com/forest.jpg",
"motion": "low",
"resolution": "hd"
}
}'import requests
response = requests.post(
"https://api.apiframe.ai/v2/videos/generate",
headers={
"X-API-Key": "afk_your_api_key_here",
"Content-Type": "application/json",
},
json={
"prompt": "the camera slowly pans across a misty forest at dawn",
"model": "midjourney-video",
"midjourneyVideoParams": {
"start_image": "https://example.com/forest.jpg",
"motion": "low",
"resolution": "hd",
},
},
)
print(response.json())const response = await fetch("https://api.apiframe.ai/v2/videos/generate", {
method: "POST",
headers: {
"X-API-Key": "afk_your_api_key_here",
"Content-Type": "application/json",
},
body: JSON.stringify({
prompt: "the camera slowly pans across a misty forest at dawn",
model: "midjourney-video",
midjourneyVideoParams: {
start_image: "https://example.com/forest.jpg",
motion: "low",
resolution: "hd",
},
}),
});
console.log(await response.json());body := `{
"prompt": "the camera slowly pans across a misty forest at dawn",
"model": "midjourney-video",
"midjourneyVideoParams": {
"start_image": "https://example.com/forest.jpg",
"motion": "low",
"resolution": "hd"
}
}`
req, _ := http.NewRequest("POST", "https://api.apiframe.ai/v2/videos/generate",
strings.NewReader(body))
req.Header.Set("X-API-Key", "afk_your_api_key_here")
req.Header.Set("Content-Type", "application/json")
resp, err := http.DefaultClient.Do(req)Try it
POST
/v2/videos/generateTry it