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_urlonly - First-and-last-frame-to-video: provide both
first_frame_urlandlast_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.
Related Resources
- Model Marketplace — Explore all available models and capabilities
- Common API — Check account credits and usage
Request Parameters
Body (application/json)
| Parameter | Type | Required | Description |
|---|---|---|---|
model | string | Yes | The 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。 |
callBackUrl | string | No | Callback 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。 |
input | object | Yes | Input parameters for the image-to-video task. |
input.prompt | string | Yes | Positive prompt. Maximum length: 5000 characters. |
input.negative_prompt | string | No | Negative prompt. Maximum length: 500 characters. |
input.first_frame_url | string | No | First frame image URL. |
input.last_frame_url | string | No | Last frame image URL. |
input.first_clip_url | string | No | First clip video URL, used for video continuation. |
input.driving_audio_url | string | No | Driving audio URL. |
input.resolution | string | No | Video resolution. - 720p: 720p- 1080p: 1080p Default:"1080p"。 Allowed values:720p / 1080p。 示例:1080p。 |
input.duration | integer | No | Total output video duration in seconds. - Minimum: 2- Maximum: 15- Default: 5 Default:5。 示例:5。 |
input.prompt_extend | boolean | No | Whether to enable intelligent prompt rewriting. Default value: true. Default:true。 示例:true。 |
input.watermark | boolean | No | Whether to add an AI-generated watermark. Default value: false. Default:false。 示例:false。 |
input.seed | integer | No | Random seed. - Minimum: 0- Maximum: 2147483647 |
input.nsfw_checker | boolean | No | Defaults to false. When false, no additional content filtering is applied and results are returned directly by the model. |
Request Example
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
}
}'{
"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
{
"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
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
code | integer | 是 | Unified callback code: 200 for success, 501 for failure. Allowed values:200 / 501。 示例:200。 |
msg | string | 是 | Unified callback message. Allowed values:Playground task completed successfully. / Playground task failed.。 示例:Playground task completed successfully.。 |
data | object | 是 | — |
data.taskId | string | 是 | The unique task identifier. |
data.model | string | 是 | The model used for the task. Allowed values:wan/2-7-image-to-video。 示例:wan/2-7-image-to-video。 |
data.state | string | 是 | Terminal task state. Allowed values:success / fail。 示例:success。 |
data.param | string | 是 | JSON string containing the submitted task parameters. |
data.resultJson | string | 否 | JSON string containing resultUrls, firstFrameUrl, lastFrameUrl, or resultObject when successful. Present only when state is success. |
data.failCode | string | 否 | Failure code, a numeric string such as "400" or "500". Present only when state is fail. |
data.failMsg | string | 否 | Failure reason. Present only when state is fail. |
data.costTime | integer | 否 | Processing time in seconds. Present on both success and failure callbacks. |
data.completeTime | integer | 否 | Task completion timestamp. |
data.createTime | integer | 否 | Task creation timestamp. |
data.updateTime | integer | 否 | Use completeTime as the completion time; updateTime may equal createTime. |
data.creditsConsumed | number | 否 | Credits consumed by the task; 0 for failed tasks. |
Task completed successfully
{
"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
{
"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
}
}