API reference · Alibaba
alibaba/wan/2.1/vace/video-edit
Integrate this model through SandBase's unified API, with production-ready schemas and examples.
Production endpoint
Send your first request
OpenAI-compatible endpoint with unified authentication and usage tracking.
POST
https://api.sandbase.ai/v1/runModel ID
alibaba/wan/2.1/vace/video-edit01
Input Schema
6 parameters · 1 required · 5 optional
| Parameter | Type | Required | Description |
|---|---|---|---|
prompt | string | Required | Prompt to edit the video. |
video | string | Optional | URL of the input video. |
images | string[] | Optional | URLs of the input images to use as a reference for the generation. · Default: [] |
resolution | string | Optional | Resolution of the edited video. · Options: auto, 240p, 360p, 480p, 720p · Default: "auto" auto240p360p480p720p |
video_type | string | Optional | The type of video you're editing. Use 'general' for most videos, and 'human' for videos emphasizing human subjects and motions. The default value 'auto' means the model will guess based on the first frame of the video. · Options: auto, general, human · Default: "auto" autogeneralhuman |
aspect_ratio | string | Optional | The aspect ratio of the generated image. · Options: 21:9, 16:9, 3:2, 4:3, 5:4, 1:1, 4:5, 3:4, 2:3, 9:16 21:916:93:24:35:41:14:53:42:39:16 |
02
Output Schema
| Field | Type | Description |
|---|---|---|
id | string | Unique identifier for the generation task |
status | string | Task status: pending, running, completed, failed, timeout |
model | string | Model used for the generation |
outputs | array | Array of output items |
outputs[].url | string | URL of the generated artifact |
outputs[].content_type | string | MIME type (e.g. image/png, video/mp4) |
error | object | null | Error details if failed, null on success |
error.type | string | Machine-readable error type code |
error.message | string | Human-readable error description |
Async Workflow
This model uses asynchronous execution. Submit a request and poll for the result.
- Submit — POST to /v1/run, receive an
id - Poll — GET /v1/run/{id} until status is
completed,failed, ortimeout - Retrieve — Read
outputsfrom the completed response
03
Code Examples
Ready-to-run snippets
const apiKey = process.env.SANDBASE_API_KEY;
const response = await fetch("https://api.sandbase.ai/v1/run", {
method: "POST",
headers: {
Authorization: `Bearer ${apiKey}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
"model": "alibaba/wan/2.1/vace/video-edit",
"video": "https://static.sandbase.ai/examples/alibaba/wan/2.1/vace/video-edit/input_video_0.mp4",
"images": [],
"prompt": "replace him with a large anthropomorphic polar bear",
"resolution": "auto",
"video_type": "auto"
}),
});
if (!response.ok) throw new Error(await response.text());
let result = await response.json();
for (let attempt = 0; attempt < 120 && !["completed", "failed", "timeout"].includes(result.status); attempt++) {
await new Promise((resolve) => setTimeout(resolve, 2_000));
const poll = await fetch(`https://api.sandbase.ai/v1/run/${result.id}`, {
headers: { Authorization: `Bearer ${apiKey}` },
});
if (!poll.ok) throw new Error(await poll.text());
result = await poll.json();
}
if (result.status !== "completed") throw new Error(`Generation ended: ${result.status}`);
console.log(result);