720p
33
credits / second
= $0.033 USD / second
- resolution
- 720p
Alibaba
Available via APIVideo GenerationTurn one image into a silent 2-15 second Wan 2.6 Flash video at 720p or 1080p, as a single shot or a short multi-shot sequence.
wan-2.6-flashNew accounts start with $0.20 in free credits, about 6 seconds of video at the starting price.
WAN 2.6 Flash is developed by Alibaba. Wizzx provides API access to it and does not own the model. All trademarks belong to their respective owners.
Need a first frame? Create one with
Model Guide
Turn one image into a silent 2-15 second Wan 2.6 Flash video at 720p or 1080p, as a single shot or a short multi-shot sequence.
Wan 2.6 Flash is part of Alibaba's Wan 2.6 video family. Alibaba presents Wan 2.6 with up to 15-second 1080p video and prompt-to-storyboard multi-shot generation. The Flash variant in Wizzx focuses on one job: animating a single first-frame image into a silent clip at a low per-second rate.
| Wizzx control | Current behavior |
|---|---|
| First frame | Required, exactly 1 public image URL; the output follows its aspect ratio |
| Prompt | Optional, up to 1,500 characters |
| Resolution | 720p (default) or 1080p |
| Duration | Any whole number from 2 to 15 seconds, default 5 |
| Shot type | Single shot or multi-shot |
| Prompt expansion | On by default; required for multi-shot |
| Audio | Not available; output is always silent |
Start from a clean, well-lit image. Describe the subject's action, the camera move, and the style; the prompt can be omitted if you only want gentle motion. Use the negative prompt for artifacts you want to avoid, and keep prompt expansion on when you use multi-shot.
Wizzx returns one silent video per request. Resolution selects the per-second rate and duration sets the total; the live amounts come from the backend catalog. Text-to-video, audio, and effect templates are not exposed for this model. Requests that include audio are rejected.
Backend pricing
Model identity, billing unit and every price tier below are read from the backend catalog.
33
credits / second
= $0.033 USD / second
54
credits / second
= $0.054 USD / second
1 credit = $0.001 USD. The final deduction returned by the API is authoritative.
Back to all modelsEvery request is asynchronous: submit the task, keep the task ID, then poll for the result. The body below uses the model's default settings.
Sign in and create a key in the dashboard. Set WIZZX_API_KEY in your server environment; never expose it in browser code.
Send a POST request to the model endpoint. A successful submission returns data.task_id; keep that ID before polling. Submission is not generation completion.
Replace YOUR_TASK_ID with the returned ID and query /api/v1/task/status. Wait for SUCCEEDED and read the output URLs. Stop on FAILED or REVIEW_REQUIRED; do not automatically resubmit an uncertain task.
curl -X POST \
https://api.wizzx.ai/api/v1/task/submit/wan-2.6-flash \
-H "Authorization: Bearer $WIZZX_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"resolution": "720p",
"duration": 5,
"prompt_extend": true,
"image_urls": [
"https://example.com/input.jpg"
],
"prompt": "A slow aerial push-in over a coastal cliff road at golden hour, cinematic motion"
}'const response = await fetch("https://api.wizzx.ai/api/v1/task/submit/wan-2.6-flash", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.WIZZX_API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
"resolution": "720p",
"duration": 5,
"prompt_extend": true,
"image_urls": [
"https://example.com/input.jpg"
],
"prompt": "A slow aerial push-in over a coastal cliff road at golden hour, cinematic motion"
}),
});
const payload = await response.json();
const task = payload.data ?? payload;
const taskId = task.task_id;import os
import requests
response = requests.post(
"https://api.wizzx.ai/api/v1/task/submit/wan-2.6-flash",
headers={
"Authorization": f"Bearer {os.environ['WIZZX_API_KEY']}",
},
json={
"resolution": "720p",
"duration": 5,
"prompt_extend": True,
"image_urls": [
"https://example.com/input.jpg"
],
"prompt": "A slow aerial push-in over a coastal cliff road at golden hour, cinematic motion"
},
)
payload = response.json()
task = payload.get("data", payload)
task_id = task["task_id"]curl -X POST \
https://api.wizzx.ai/api/v1/task/status \
-H "Authorization: Bearer $WIZZX_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"task_id": "YOUR_TASK_ID"
}'const response = await fetch("https://api.wizzx.ai/api/v1/task/status", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.WIZZX_API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({ task_id: "YOUR_TASK_ID" }),
});
const payload = await response.json();
const task = payload.data ?? payload;import os
import requests
response = requests.post(
"https://api.wizzx.ai/api/v1/task/status",
headers={
"Authorization": f"Bearer {os.environ['WIZZX_API_KEY']}",
},
json={"task_id": "YOUR_TASK_ID"},
)
payload = response.json()
task = payload.get("data", payload)Replace example.com URLs with public links to your own files.
The fields this endpoint accepts on Wizzx, read from the same schema as the Playground form.
| Parameter | Type | Default | Allowed values | Description |
|---|---|---|---|---|
promptPrompt | string | — | ≤ 1,500 | Optional. Describe the subject, action, camera, and style (max 1500 characters). |
image_urlsFirst Framerequired | url[] ≤ 1 | — | — | Required. Add 1 image as the first frame; the output follows its aspect ratio. The video is silent. |
resolutionResolution | string | 720p | 720p · 1080p | Resolution selects the per-second rate. |
durationDuration | integer | 5 | 2 – 15 | Video duration in seconds. Duration determines the total. |
shot_typeShot Type | string | — | single · multi | — |
prompt_extendPrompt Expansion | boolean | true | — | Rewrite the prompt with more detail. Multi-shot needs it on. |
negative_promptNegative Prompt | string | — | ≤ 500 | What you don't want in the video (max 500 characters) |
seedSeed | integer | — | 0 – … | Random seed for reproducibility |
Wizzx API
New accounts get $0.20 in free credits. Pay as you go with no subscription, and failed tasks are refunded.