Midjourney Image To Video API Documentation

Midjourney Image To Video API Documentation

Playground

Try it on WaveSpeedAI!

Midjourney Image to Video turns a single image into an artistically rich, high quality AI video with strong visual style and creative motion. Ready-to-use REST inference API, best performance, no coldstarts, affordable pricing.

Features

Midjourney Image-to-Video generates a video from a single input image. Upload an image, optionally describe the desired motion or scene, choose the output resolution, and select the motion strength for the generated video.


Why Choose This?

  • Image-to-video generation
    Convert a single input image into a generated video.

  • Optional motion guidance
    Add a prompt to describe the motion, camera movement, or scene direction.

  • Resolution options
    Choose between 480p and 720p depending on your quality and cost requirements.

  • Motion strength control
    Select low or high motion strength to control how much movement appears in the generated video.

  • Simple workflow
    Only an input image is required. If no prompt is provided, a gentle cinematic camera movement is used.


Parameters

ParameterRequiredDescription
imageYesInput image URL used as the first frame.
promptNoOptional motion or scene guidance. If omitted, a gentle cinematic camera movement is used.
resolutionNoOutput video resolution. Supported values: 480p, 720p. Default: 480p.
motionNoMotion strength for the generated video. Supported values: low, high. Default: low.

How to Use

  1. Upload your image — Provide the input image to use as the first frame.
  2. Add motion guidance (optional) — Describe the motion, camera movement, or scene direction you want.
  3. Select resolution — Choose 480p or 720p. The default is 480p.
  4. Choose motion strength — Select low or high. The default is low.
  5. Submit — Generate the final video.

Output

Returns generated video URL(s) in the standard WaveSpeed prediction response.


Pricing

ResolutionCost
480p$0.35
720p$1.10

Billing Rules

  • Pricing is charged per generation.
  • 480p costs $0.35 per generation.
  • 720p costs $1.10 per generation.
  • The price depends on the selected resolution.

Best Use Cases

  • Image animation — Turn a still image into a generated video.
  • Cinematic camera movement — Add gentle camera motion to a static image.
  • Motion exploration — Test different motion strengths from the same input image.
  • Scene development — Use prompt guidance to describe how the image should move or evolve.
  • Short visual content — Generate video assets from image references.

Pro Tips

  • Use a clear input image with the main subject visible.
  • Add a prompt when you want more control over the motion or scene direction.
  • Leave prompt empty when you want the default gentle cinematic camera movement.
  • Use low motion for more subtle movement.
  • Use high motion when you want stronger movement.
  • Use 480p for lower-cost testing and 720p for higher-resolution output.
  • Ensure the image URL is publicly accessible.

Notes

  • image is the only required field.
  • prompt, resolution, and motion are optional.
  • Default resolution is 480p.
  • Default motion is low.
  • If prompt is omitted, a gentle cinematic camera movement is used.
  • Ensure uploaded image URLs are publicly accessible.

## Authentication

For authentication details, please refer to the [Authentication Guide](/api-authentication).

## API Endpoints

### Submit Task & Query Result

<ApiTabs submitUrl={model.submitUrl} resultUrl={model.resultUrl} payload={model.defaultValues} />

## Parameters

### Task Submission Parameters

#### Request Parameters

<RequestParams params={model.params} />

#### Response Parameters

<SubmitResponse />

#### Result Request Parameters

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| id | string | Yes | - | Task ID |

#### Result Response Parameters

| Parameter | Type | Description |
|-----------|------|-------------|
| code | integer | HTTP status code (e.g., 200 for success) |
| message | string | Status message (e.g., "success") |
| data | object | The prediction data object containing all details |
| data.id | string | Unique identifier for the prediction |
| data.model | string | Model ID used for the prediction |
| data.outputs | array&lt;string \| object&gt; | Array of generated outputs (empty when status is not completed). Items are usually URL strings, but may be text strings or structured result objects, depending on the model. |
| data.urls | object | Object containing related API endpoints |
| data.status | string | Status: `completed` is successful; `failed`, `cancelled`, `timeout`, and `deleted` are failure terminal statuses |
| data.created_at | string | ISO timestamp of when the request was created |
| data.error | string | Error message (empty if no error occurred) |
| data.timings | object | Object containing timing details |
| data.timings.inference | integer | Inference time in milliseconds |
© 2026 WaveSpeedAI. All rights reserved.