Wan 2.2 Image to Video Fast Serverless API

Transforms simple text prompts into breathtaking cinematic-quality videos in minutes.

POST /v2/wan-2.2-i2v-fast · submit + poll
 1# pip install "segmind>=1.1.0"
 2# export SEGMIND_API_KEY="YOUR_API_KEY"
 3from segmind import SegmindClient, InferenceFailed, InferenceTimeout
 4
 5# Async (v2) — recommended for long-running / video models.
 6# run() blocks up to 600s; submit_async + job.wait(timeout=...) sets a longer
 7# deadline and keeps the request_id so you can re-poll later.
 8client = SegmindClient()                      # reads SEGMIND_API_KEY
 9payload = {
10    "prompt": "4K cinematic close-up of a bloodied, battle-worn Viking warrior kneeling in a snowy sacred cave, eyes wide and glassy with intensity.His long braided blonde beard is frosted with snow, blood streaks run down his face and shoulders.The background is dimly lit by a flickering flame behind him — ancient carvings and symbols glow faintly on the icy stone wall.Camera slowly pushes in on his face as snow swirls in slow motion, and he breathes heavily, lips slightly parted.Suddenly, subtle glitch effects ripple across his face — like time distorting — as if a divine force is entering his mind.In the distance, an echo of a woman’s voice is heard whispering prophecy.As his eyes narrow, a faint blue rune glow reflects in his iris, foreshadowing something ancient and powerful.The camera holds as his expression changes — from fear… to understanding… to resolve.",
11    "resolution": "480p",
12    "image": "https://segmind-resources.s3.amazonaws.com/output/310df0db-0c5e-4c5a-8c78-5db73fbc7c91-bcd49a2d-a0a9-465e-aefd-ca9b5ebb11a7.jpeg",
13}
14job = client.submit_async("wan-2.2-i2v-fast", **payload)
15print(job.request_id)                         # available immediately
16try:
17    result = job.wait(timeout=900, interval=2.0)
18    print(result["status"])                  # COMPLETED
19    print(result.get("output"))              # model output (e.g. video URL)
20except InferenceTimeout as e:
21    print("still running:", e.request_id)    # re-poll later with this id
22except InferenceFailed as e:
23    print("failed:", e.detail)
24
25# Fast models (<=600s) can use the one-liner instead:
26# result = segmind.run("wan-2.2-i2v-fast", **payload)

API Endpoint

POSThttps://api.segmind.com/v1/wan-2.2-i2v-fast

Parameters

imagerequired
string (uri)

Input image URL used as the video base.

Default: "https://segmind-resources.s3.amazonaws.com/output/310df0db-0c5e-4c5a-8c78-5db73fbc7c91-bcd49a2d-a0a9-465e-aefd-ca9b5ebb11a7.jpeg"
promptrequired
string

Descriptive prompt for the video content.

Default: "4K cinematic close-up of a bloodied, battle-worn Viking warrior kneeling in a snowy sacred cave, eyes wide and glassy with intensity.His long braided blonde beard is frosted with snow, blood streaks run down his face and shoulders.The background is dimly lit by a flickering flame behind him — ancient carvings and symbols glow faintly on the icy stone wall.Camera slowly pushes in on his face as snow swirls in slow motion, and he breathes heavily, lips slightly parted.Suddenly, subtle glitch effects ripple across his face — like time distorting — as if a divine force is entering his mind.In the distance, an echo of a woman’s voice is heard whispering prophecy.As his eyes narrow, a faint blue rune glow reflects in his iris, foreshadowing something ancient and powerful.The camera holds as his expression changes — from fear… to understanding… to resolve."
aspect_ratiooptional
string

Frame aspect ratio.

Default: "16:9"
Allowed values :
Landscape (16:9)"16:9"
Portrait (9:16)"9:16"
frames_per_secondoptional
integer

Playback smoothness. 16 fps is a good balance.

Default: 16Range: 5 - 24
go_fastoptional
boolean

Use a faster generation mode. Disable for quality over speed.

Default: true
high_noise_loraoptional
string

URL to a high-noise LoRA model (.safetensors) for style customization.

high_noise_lora_2optional
string

Second high-noise LoRA model URL for blending multiple LoRAs.

high_noise_lora_3optional
string

Third high-noise LoRA model URL for blending multiple LoRAs.

high_noise_lora_scaleoptional
number

Influence strength of the high-noise LoRA. 0 disabled, 1 full strength, 2 maximum.

Default: 1Range: 0 - 2
high_noise_lora_scale_2optional
number

Influence strength of the second high-noise LoRA.

Default: 1Range: 0 - 2
high_noise_lora_scale_3optional
number

Influence strength of the third high-noise LoRA.

Default: 1Range: 0 - 2
last_imageoptional
string (uri)

Optional end image to guide the video toward a specific final frame.

low_noise_loraoptional
string

URL to a low-noise LoRA model (.safetensors) for style customization.

low_noise_lora_2optional
string

Second low-noise LoRA model URL for blending multiple LoRAs.

low_noise_lora_3optional
string

Third low-noise LoRA model URL for blending multiple LoRAs.

low_noise_lora_scaleoptional
number

Influence strength of the low-noise LoRA. 0 disabled, 1 full strength, 2 maximum.

Default: 1Range: 0 - 2
low_noise_lora_scale_2optional
number

Influence strength of the second low-noise LoRA.

Default: 1Range: 0 - 2
low_noise_lora_scale_3optional
number

Influence strength of the third low-noise LoRA.

Default: 1Range: 0 - 2
negative_promptoptional
string

Elements to exclude from the video, to help improve quality.

Default: ""
num_framesoptional
integer

Video frame count. 81 gives optimal detail; increase for smoother motion.

Default: 81Range: 81 - 100
resolutionoptional
string

Video resolution. Also determines price (720p = $0.27, 480p = $0.125).

Default: "480p"
Allowed values :
"480p""720p"
sample_shiftoptional
number

Adjusts the image sampling shift. Lower values give subtler changes.

Default: 12Range: 1 - 20
seedoptional
integer

Controls generation randomness. Set for consistency, or leave the default for variation.

Default: 123456789Range: 0 - 999999999999999

Response Type

Returns: Video

Asynchronous requests (v2)

Use Async for video, long-running (>~60s), or high-concurrency workloads; Sync is simplest for fast image & LLM calls. Async submits a request and you poll it to completion.

  1. 1
    POST /v2/wan-2.2-i2v-fast

    Submitreturns request_id, status_url, response_url

  2. 2
    GET /v2/requests/{id}/status

    Polluntil COMPLETED or FAILED

  3. 3
    GET /v2/requests/{id}

    Resultfinal response body

Status states

QUEUEDAccepted, waiting for a worker
PROCESSINGRunning on a worker
COMPLETEDDone — result body is ready
FAILEDErrored (incl. content/RAI blocks)
  • A FAILED request is served as HTTP 422 — the body still carries the error detail.
  • An unknown or expired request_id returns HTTP 404.
  • Results are retained for 1 hour, then expire.
  • Content / RAI blocks surface as FAILED, not a separate state.
  • Track completion by polling the status endpoint.

Common Error Codes

The API returns standard HTTP status codes. Detailed error messages are provided in the response body.

400

Bad Request

Invalid parameters or request format

401

Unauthorized

Missing or invalid API key

403

Forbidden

Insufficient permissions

404

Not Found

Model or endpoint not found

406

Insufficient Credits

Not enough credits to process request

429

Rate Limited

Too many requests

500

Server Error

Internal server error

502

Bad Gateway

Service temporarily unavailable

504

Timeout

Request timed out