Skip to main content

Wan 3.0

Wan 3.0 is Alibaba's video model. It writes a video with sound from a text prompt, animates a first frame (and can end on a last frame), or keeps the characters, places, style and voice of reference images, clips and audio. Clips run 2 to 30 seconds, or the model picks the length.

ModeEndpoint idModel page
Text to videoflymyai/wan-3_0-t2vhttps://app.flymy.ai/models/flymyai/wan-3_0-t2v
Image to videoflymyai/wan-3_0-i2vhttps://app.flymy.ai/models/flymyai/wan-3_0-i2v
Reference to videoflymyai/wan-3_0-ref2vhttps://app.flymy.ai/models/flymyai/wan-3_0-ref2v

Generate a video​

Making a video takes a minute or more, so use the async route: submit, then poll the result. Inputs are form fields.

curl -X POST https://api.flymy.ai/api/v1/flymyai/wan-3_0-t2v/predict/async/ \
-H "X-API-KEY: fly-***" \
-F 'prompt=A red fox runs through fresh snow at dawn, low tracking shot' \
-F 'resolution=720P' -F 'duration=10' -F 'ratio=16:9'
# {"prediction_id": "02ecd473..."}

curl "https://api.flymy.ai/api/v1/flymyai/wan-3_0-t2v/predict/async/result/?request_id=02ecd473..." \
-H "X-API-KEY: fly-***"

The result route answers 425 while the video is being made. When it is ready, it returns:

{
"inference_responses": [
{
"response": {
"video": [{"url": "https://storage.googleapis.com/...", "content_type": "video/mp4"}],
"calculated_price": "1.000000"
},
"infer_details": {"status": 200, "inference_time": 103.1, "request_id": "02ecd473-..."}
}
]
}

url is a signed link valid for 24 hours; download the file to keep it. calculated_price is what the run cost. The synchronous /predict route works too, but it returns the video inline as base64, so prefer async for anything but short clips.

Image to video​

Give the first frame, and optionally the last one, as a file upload or a public image URL (JPEG, PNG, BMP or WEBP, up to 20 MB):

curl -X POST https://api.flymy.ai/api/v1/flymyai/wan-3_0-i2v/predict/async/ \
-H "X-API-KEY: fly-***" \
-F 'prompt=The cat slowly turns its head toward the camera and blinks' \
-F 'first_frame_image=@cat.jpg' -F 'resolution=720P' -F 'duration=5'

ratio defaults to adaptive, which keeps the shape of your image.

Reference to video​

Pass references as public URLs, one URL or a JSON array per field, and say in the prompt who and what they are and how to use them:

FieldLimits
reference_imagesUp to 10 images (JPEG, PNG, BMP, WEBP)
reference_videosUp to 5 clips (mp4, mov), 1-15 s each, 15 s in total
reference_audiosUp to 5 clips (wav, mp3), 1-15 s each, 15 s in total
curl -X POST https://api.flymy.ai/api/v1/flymyai/wan-3_0-ref2v/predict/async/ \
-H "X-API-KEY: fly-***" \
-F 'prompt=The woman from the photo walks through a night market and waves' \
-F 'reference_images=["https://example.com/woman.jpg"]' \
-F 'resolution=720P' -F 'duration=8'

At least one reference is required; reference to video takes no first or last frame.

Parameters​

ParameterValues
promptWhat happens in the video, up to 20,000 characters
resolution480P, 720P (default) or 1080P
ratioadaptive (when omitted), 21:9, 16:9, 4:3, 1:1, 3:4, 9:16
duration2 to 30 seconds (5 when omitted); -1 lets the model choose the length
audiotrue (default) adds sound, false makes a silent video
prompt_extendtrue (default) lets the model expand the prompt
watermarkfalse (default) or true
seed0 to 2147483647, for repeatable takes

Invalid values are refused before the video is started, so they cost nothing.

From an AI assistant​

An assistant connected to FlyMy.AI finds the three models with recommend_model, quotes them with get_pricing and makes the video with run_model (the same input as the REST fields). The result is a link to the video file.

Pricing​

ResolutionPrice per generated second
480P$0.05
720P$0.10
1080P$0.20

You pay for the seconds Wan 3.0 generates; a run that fails costs nothing. A run with the defaults (720P, 5 seconds) costs $0.50, a 10-second 720P clip $1.00. Before a run starts, a request whose top price is more than your balance is refused with 403 Insufficient funds; with duration: -1 the top price counts 30 seconds. Every charge is in your usage.