Skip to content

Wan 2.7 - Image to Video ​

This page is generated from the upstream official OpenAPI documentation. Endpoints, parameters and examples match the official docs; brand and API domain are replaced with ModelFold.

Endpoint ​

POST /jobs/createTask

Full URL: https://ai.modelfold.online/v1/jobs/createTask

Authentication: every request must include the Authorization: Bearer <API_KEY> header.

Create Task ​

Use this endpoint to create a new image-to-video generation task.

This model supports the following three generation modes:

  • First-frame-to-video: provide first_frame_url only
  • First-and-last-frame-to-video: provide both first_frame_url and last_frame_url
  • Video continuation: provide first_clip_url

Provide at least one of first_frame_url or first_clip_url.

  • Get Task Details — After submission, use the unified query endpoint to check task progress and retrieve results

TIP

For production use, we recommend providing the callBackUrl parameter so your service can receive completion notifications instead of polling for task status.

TIP

For video continuation, duration is the total length including the input clip, and the whole length is billed. For current prices, see ai.modelfold.online/pricing.

Request Parameters ​

Body (application/json) ​

ParameterTypeRequiredDescription
modelstringYesThe model name used for generation. This field is required. This endpoint must use the wan/2-7-image-to-video model. Default:"wan/2-7-image-to-video"。 Allowed values:wan/2-7-image-to-video。 示例:wan/2-7-image-to-video。
callBackUrlstringNoCallback URL for task completion notifications. Optional parameter. If provided, the system will send a POST request to this URL when the task completes, whether it succeeds or fails. If omitted, no callback notification will be sent. 示例:https://your-domain.com/api/callback。
inputobjectYesInput parameters for the image-to-video task.
  input.promptstringYesPositive prompt. Maximum length: 5000 characters.
  input.negative_promptstringNoNegative prompt. Maximum length: 500 characters.
  input.first_frame_urlstringNoFirst frame image URL.
  input.last_frame_urlstringNoLast frame image URL.
  input.first_clip_urlstringNoFirst clip video URL, used for video continuation.
  input.driving_audio_urlstringNoDriving audio URL.
  input.resolutionstringNoVideo resolution.
- 720p: 720p
- 1080p: 1080p Default:"1080p"。 Allowed values:720p / 1080p。 示例:1080p。
  input.durationintegerNoTotal output video duration in seconds.
- Minimum: 2
- Maximum: 15
- Default: 5 Default:5。 示例:5。
  input.prompt_extendbooleanNoWhether to enable intelligent prompt rewriting. Default value: true. Default:true。 示例:true。
  input.watermarkbooleanNoWhether to add an AI-generated watermark. Default value: false. Default:false。 示例:false。
  input.seedintegerNoRandom seed.
- Minimum: 0
- Maximum: 2147483647
  input.nsfw_checkerbooleanNoDefaults to false. When false, no additional content filtering is applied and results are returned directly by the model.

Request Example ​

bash
curl -X POST "https://ai.modelfold.online/v1/jobs/createTask" \
  -H "Authorization: Bearer $MODELFOLD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "model": "wan/2-7-image-to-video",
  "callBackUrl": "https://your-domain.com/api/callback",
  "input": {
    "prompt": "A serene mountain landscape at sunrise",
    "negative_prompt": "A serene mountain landscape at sunrise",
    "first_frame_url": "https://your-domain.com/input.png",
    "last_frame_url": "https://your-domain.com/input.png",
    "first_clip_url": "https://your-domain.com/input.png",
    "driving_audio_url": "https://your-domain.com/input.png",
    "resolution": "1080p",
    "duration": 5,
    "prompt_extend": true,
    "watermark": false,
    "seed": 0,
    "nsfw_checker": false
  }
}'
json
{
  "model": "wan/2-7-image-to-video",
  "callBackUrl": "https://your-domain.com/api/callback",
  "input": {
    "prompt": "A serene mountain landscape at sunrise",
    "negative_prompt": "A serene mountain landscape at sunrise",
    "first_frame_url": "https://your-domain.com/input.png",
    "last_frame_url": "https://your-domain.com/input.png",
    "first_clip_url": "https://your-domain.com/input.png",
    "driving_audio_url": "https://your-domain.com/input.png",
    "resolution": "1080p",
    "duration": 5,
    "prompt_extend": true,
    "watermark": false,
    "seed": 0,
    "nsfw_checker": false
  }
}

Response ​

200 — Request successful ​

json
{
  "code": 200,
  "msg": "success",
  "data": {
    "taskId": "task_wan_1765180586443"
  }
}

Callback ​

videoTaskCompleted ​

Callback URL: {request.body#/callBackUrl} (the callBackUrl in the request body).

The system sends this callback when the wan/2-7-image-to-video task succeeds or fails.

Callback body parameters

参数类型必填说明
codeinteger是Unified callback code: 200 for success, 501 for failure. Allowed values:200 / 501。 示例:200。
msgstring是Unified callback message. Allowed values:Playground task completed successfully. / Playground task failed.。 示例:Playground task completed successfully.。
dataobject是—
  data.taskIdstring是The unique task identifier.
  data.modelstring是The model used for the task. Allowed values:wan/2-7-image-to-video。 示例:wan/2-7-image-to-video。
  data.statestring是Terminal task state. Allowed values:success / fail。 示例:success。
  data.paramstring是JSON string containing the submitted task parameters.
  data.resultJsonstring否JSON string containing resultUrls, firstFrameUrl, lastFrameUrl, or resultObject when successful. Present only when state is success.
  data.failCodestring否Failure code, a numeric string such as "400" or "500". Present only when state is fail.
  data.failMsgstring否Failure reason. Present only when state is fail.
  data.costTimeinteger否Processing time in seconds. Present on both success and failure callbacks.
  data.completeTimeinteger否Task completion timestamp.
  data.createTimeinteger否Task creation timestamp.
  data.updateTimeinteger否Use completeTime as the completion time; updateTime may equal createTime.
  data.creditsConsumednumber否Credits consumed by the task; 0 for failed tasks.

Task completed successfully

json
{
  "code": 200,
  "msg": "Playground task completed successfully.",
  "data": {
    "taskId": "task_example_video_webhook_001",
    "model": "wan/2-7-image-to-video",
    "state": "success",
    "param": "{\"input\":\"{}\",\"callBackUrl\":\"https://example.com/callback\",\"model\":\"wan/2-7-image-to-video\"}",
    "resultJson": "{\"resultUrls\":[\"https://example.com/generated-video.mp4\"]}",
    "costTime": 12,
    "completeTime": 1234567890,
    "createTime": 1234560000,
    "updateTime": 1234567890,
    "creditsConsumed": 1.23
  }
}

Task failed

json
{
  "code": 501,
  "msg": "Playground task failed.",
  "data": {
    "taskId": "task_example_video_webhook_001",
    "model": "wan/2-7-image-to-video",
    "state": "fail",
    "param": "{\"input\":\"{}\",\"callBackUrl\":\"https://example.com/callback\",\"model\":\"wan/2-7-image-to-video\"}",
    "failCode": "400",
    "failMsg": "<error detail>",
    "costTime": 12,
    "creditsConsumed": 0
  }
}

ModelFold — one API for all the best AI models.