seedinteger
Random seed (0-2147483647) for reproducible results. Omit for a random seed; the same seed may still produce slightly different results.
Minimum: 0
Maximum: 2147483647
alibaba/wan/3.0/prime/image-to-videoWan 3.0 Prime by Alibaba - animate still images into dynamic videos with AI. Transform photos into cinematic clips with natural motion, camera movement, and optional audio generation.
Try the model
PNG, JPEG, WebP, or GIF · 20 MiB maximum
Customize your input with more control.
PNG, JPEG, WebP, or GIF · 20 MiB maximum
Your output will appear here
Complete the inputs, then click Run.
Start a clip from your own picture. image becomes the exact first frame; add end_image and the model interpolates the motion between the two. Clips run 2–30 seconds with native audio.
Prime is the faster Wan 3.0 tier: the same inputs and output quality as standard Wan 3.0, with significantly shorter end-to-end generation time and a higher per-second rate. Use standard Wan 3.0 for batch or background jobs where turnaround does not matter.
| Field | Type | Default | Notes |
|---|---|---|---|
prompt | string, required | — | Up to 5,000 characters. |
image | image URL, required | — | First frame. JPEG/PNG/BMP/WebP, 240–8000px per side, ≤20MB, no transparency. |
end_image | image URL | — | Last frame; needs image. |
duration | 2–30 or auto | 5 | auto lets the model pick the length. |
resolution | 480p / 720p / 1080p | 720p | Sets the per-second rate. |
aspect_ratio | adaptive / 21:9 / 16:9 / 4:3 / 1:1 / 3:4 / 9:16 | adaptive | adaptive follows the prompt and inputs. |
generate_audio | boolean | true | Native dialogue, music, and effects. Same price on or off. |
seed | integer 0–2147483647 | random | Fix it to compare prompt changes. |
You pay for output seconds only: $0.068 at 480p, $0.14 at 720p, $0.28 at 1080p. Input images, audio, and video are not metered. The frame images are free.
| Output | Billed | 480p | 720p | 1080p |
|---|---|---|---|---|
| 2s | 2s | $0.136 | $0.28 | $0.56 |
| 5s (default) | 5s | $0.34 | $0.70 | $1.40 |
| 10s | 10s | $0.68 | $1.40 | $2.80 |
| 30s | 30s | $2.04 | $4.20 | $8.40 |
With duration: "auto" the run is pre-authorized at 30 seconds, then settled on the length that was actually generated. Failed runs are not charged. Output files are copied to SandBase storage and the returned URL stays valid for 7 days; download anything you need to keep.
aspect_ratio on adaptive to keep the image's own proportions.The subject slowly turns toward the camera as a breeze moves the fabric; subtle handheld push-in, natural daylight, no dialogue.
Other Wan 3.0 Prime endpoints: alibaba/wan/3.0/prime/video (all modes in one schema), alibaba/wan/3.0/prime/text-to-video, alibaba/wan/3.0/prime/reference-to-video, alibaba/wan/3.0/prime/video-edit, alibaba/wan/3.0/prime/video-extend. Standard tier: alibaba/wan/3.0/image-to-video.
Start building
Submit this model through the SandBase Unified Run API.
# The quoted heredoc keeps Unicode and shell metacharacters unchanged.
result=$(curl --fail-with-body --silent \
-X POST "https://api.sandbase.ai/v1/run" \
-H "Authorization: Bearer $SANDBASE_API_KEY" \
-H "Content-Type: application/json" \
--data-binary @- <<'SANDBASE_JSON'
{
"model": "alibaba/wan/3.0/prime/image-to-video",
"image": "https://static.sandbase.ai/samples/image-to-video/i2v-black-cat-sky-img0.png",
"duration": 5,
"resolution": "720p",
"generate_audio": true
}
SANDBASE_JSON
)
run_id=$(printf '%s' "$result" | jq -r .id)
for attempt in $(seq 1 120); do
status=$(printf '%s' "$result" | jq -r .status)
case "$status" in completed|failed|timeout) break ;; esac
sleep 2
result=$(curl --fail-with-body --silent \
-H "Authorization: Bearer $SANDBASE_API_KEY" \
"https://api.sandbase.ai/v1/run/$run_id")
done
status=$(printf '%s' "$result" | jq -r .status)
[ "$status" = completed ] || { echo "Generation ended: $status" >&2; exit 1; }
printf '%s\n' "$result"Create a SandBase API key and set it in your server environment. All requests use Bearer authentication.
export SANDBASE_API_KEY="YOUR_API_KEY"Keep the key on your server. Do not expose it in browser code or commit it to a repository.
POST to /v1/run with this model ID and its inputs. The request example above includes submission and polling.
Use the returned run ID to poll until the status is completed, failed or timeout. Read output only after completed.
curl "https://api.sandbase.ai/v1/run/$RUN_ID" \
-H "Authorization: Bearer $SANDBASE_API_KEY"Pass a publicly accessible file URL in the model’s image, video or audio field. Supported formats and limits are shown beside each Playground input.
Use the upload or replace control on supported image fields in the Playground. Video URL fields accept a hosted driving video; they do not imply video-upload support.
seedintegerRandom seed (0-2147483647) for reproducible results. Omit for a random seed; the same seed may still produce slightly different results.
Minimum: 0
Maximum: 2147483647
imagestringrequiredURL of the image used as the first frame (JPEG, PNG, BMP, or WebP). Cannot be combined with `images`, `videos`, or `audios`.
promptstringrequiredText prompt describing the motion to generate.
durationvalueOutput duration in seconds (2-30), or `auto` to let the model pick a length from the prompt and inputs. `auto` is pre-authorized at 30 seconds and billed on the actual output length.
Default: 5
Possible values: "auto", 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30
end_imagestringURL of the image used as the last frame (JPEG, PNG, BMP, or WebP). Cannot be combined with `images`, `videos`, or `audios`.
resolutionstringOutput video resolution tier.
Default: "720p"
Possible values: "480p", "720p", "1080p"
aspect_ratiostringOutput aspect ratio. Omit to match the input image.
Possible values: "21:9", "16:9", "4:3", "1:1", "3:4", "9:16"
generate_audiobooleanGenerate a synchronized audio track. Pricing is the same either way.
Default: true
{
"model": "alibaba/wan/3.0/prime/image-to-video",
"image": "https://static.sandbase.ai/samples/image-to-video/i2v-black-cat-sky-img0.png",
"duration": 5,
"resolution": "720p",
"generate_audio": true
}A completed run exposes its result in output. The following is the model’s saved example, not a new generation.
No example output has been published yet. Use Playground → Result → JSON after a completed run to inspect your response.