ModelSite
Video GenerationWan

Wan2.7 Image-to-Video

POST /api/v1/services/aigc/video-generation/video-synthesis — Wan2.7 image-to-video (first frame / first+last / continuation)

The Wan 2.7 image-to-video model accepts multimodal input and covers three jobs: first-frame animation, first+last-frame animation, and video continuation.

Models

ModelNotes
wan2.7-i2vWan 2.7 image-to-video

Create a job

POST/api/v1/services/aigc/video-generation/video-synthesis
curl https://api.modelsite.ai/api/v1/services/aigc/video-generation/video-synthesis \
  -H "Authorization: Bearer $MODELSITE_API_KEY" -H "Content-Type: application/json" \
  -d '{
    "model": "wan2.7-i2v",
    "input": {
      "prompt": "A cat rises from the grass and walks toward the sunlight",
      "media": [{ "type": "first_frame", "url": "https://example.com/cat.png" }]
    },
    "parameters": { "resolution": "720P", "duration": 5 }
  }'

Request body

FieldTypeNotes
modelstring (required)wan2.7-i2v
input.promptstring (optional)≤5000 characters. Can be omitted when the media speaks for itself
input.negative_promptstring (optional)≤500 characters (in input, not parameters)
input.mediaarray (required)Asset list; combination rules below
parametersobject (optional)Below

Media combinations (the six legal sets; anything else is refused)

Jobmedia
First framefirst_frame
First frame + audiofirst_frame + driving_audio
First + last framefirst_frame + last_frame
First + last + audiofirst_frame + last_frame + driving_audio
Continuationfirst_clip
Continuation + last framefirst_clip + last_frame

Each type may appear at most once. Asset limits: images JPEG/JPG/PNG/BMP/WEBP, sides [240, 8000]px, ≤20MB; driving audio wav/mp3, 2–30 s, ≤15MB; first clip mp4/mov, 2–10 s, ≤100MB.

parameters

ParameterTypeNotes
resolutionstring720P / 1080P (default). Sellable tiers follow the price configuration. Output aspect ratio follows the input assets
durationinteger[2, 15], default 5. For continuations this caps the total output duration (a 3 s input + duration 15 → 15 s of output, billed as 15 s)
prompt_extendbooleanDefault true
watermarkbooleanDefault false
seedinteger[0, 2147483647]

Image-to-video has no ratio parameter — the output aspect ratio follows the input assets; sending one is an InvalidParameter error.

Polling and result

GET/api/v1/tasks/{task_id}
curl "https://api.modelsite.ai/api/v1/tasks/$TASK_ID" \
  -H "Authorization: Bearer $MODELSITE_API_KEY"

Response fields

FieldMeaning
output.task_idJob ID (same value returned at creation)
output.task_statusPENDING queued / RUNNING processing / SUCCEEDED done / FAILED failed
output.video_urlThe generated video URL — only on SUCCEEDED; download promptly
output.code / output.messagePresent only on failure, with the reason
usageUsage stats (duration, resolution tier, …); counted only on success
request_idUnique request ID — include it when reporting issues

Status flow: PENDING → RUNNING → SUCCEEDED / FAILED.

Billing

Billed by actual generated seconds; continuations by total output duration; failed jobs are not billed. Rates on the Models page.

Error handling

Creation-time errors return {"code": "...", "message": "..."}; mid-job failures surface through the poll's output.code / output.message. General error codes: Errors.

On this page