Wan logo

wan2.6-i2v-flash

by Wan

wan/wan2.6-i2v-flash

Animate a first-frame image with optional generated audio.

Billed per
second
Price
720P, audio: false: Official price: $0.025Sale price: $0.0179720P, audio: true: Official price: $0.05Sale price: $0.03571080P, audio: false: Official price: $0.0375Sale price: $0.02681080P, audio: true (default): Official price: $0.075Sale price: $0.053628.5% off
Provider
Wan
Timeout
5 min

Overview

Requires an active price tier and configured supplier. Accepted tasks retain their original order and price for read-only recovery. Billing uses validated native output seconds; never submit another generation to recover the same task.

After COMPLETED, read run.output.video_url, task_id, duration and resolution. Download the temporary video URL promptly.

Input

These go in the input object of the run request.

FieldTypeRequiredDescription
promptstringNoScene and movement.
Maximum: 1500
imagestringYesPublic HTTPS first-frame image URL; aspect ratio follows the image.
audiobooleanNoGenerate audio. Audio and silent requests have separate price tiers.
Default: true
prompt_extendbooleanNoMust be false for this first-frame contract.
Default: false
durationintegerNoRequested output seconds.
Default: 5
Minimum: 2
Maximum: 15
resolutionstringNoOutput resolution and billing tier.
Allowed: 720P, 1080P
Default: "1080P"

Requests up to 1 MB.

Example

Use your own API key and a saved idempotency key for each new job. Replace image or media placeholders with your own publicly reachable HTTPS URLs. Keep the same key and request body when recovering a timeout.

# Set IMAGE_URL to a publicly accessible first-frame image URL. Requires jq.
: "${IMAGE_URL:?Set IMAGE_URL to your first-frame image URL}"
REQUEST_BODY=$(jq --arg image "$IMAGE_URL" 'walk(if . == "IMAGE_URL" then $image else . end)' <<'JSON'
{"provider":"wan","endpoint":"wan2.6-i2v-flash","input":{"prompt":"A blue ceramic cup on a white table","duration":2,"resolution":"1080P","image":"IMAGE_URL","audio":true}}
JSON
)
# Set once per job; reuse this key and the identical body after a timeout.
: "${AGENTSKY_IDEMPOTENCY_KEY:?Set a unique, saved key for this job}"
curl --fail-with-body https://gateway.agentsky.dev/v1/run \
  -H "authorization: Bearer $AGENTSKY_API_KEY" \
  -H "content-type: application/json" \
  -H "Idempotency-Key: $AGENTSKY_IDEMPOTENCY_KEY" \
  -d "$REQUEST_BODY"
# If status is READY/RUNNING, poll GET /v1/runs/{runId} with the same API key.

Pricing

28.5% off

Prices by input conditions in USD per second, using your plan when signed in. Read the final customer charge from price.amount.value after the run finishes. A RUNNING response is not the final bill.

Input conditionsAvailabilityUSD per second
720P, audio: falseAvailableOfficial price: $0.025Sale price: $0.0179
720P, audio: trueAvailableOfficial price: $0.05Sale price: $0.0357
1080P, audio: falseAvailableOfficial price: $0.0375Sale price: $0.0268
1080P, audio: true (default)AvailableOfficial price: $0.075Sale price: $0.0536

Questions