Alibaba Wan 2.7 image-to-video model. Animates a first frame (and optional last frame or continuation clip) with audio synchronization, up to 15 seconds, at 720p or 1080p.
Test this model instantly in the Console Playground โ no code required
Copy usage instructions for Claude, ChatGPT, or other AI
curl -X POST "https://api.core.today/v1/predictions" \
-H "Content-Type: application/json" \
-H "X-API-Key: cdt_your_api_key" \
-d '{
"model": "wan-video/wan-2.7-i2v",
"input": {
"first_frame": "https://example.com/product-shot.jpg",
"prompt": "The product slowly rotates on a reflective surface as soft studio light sweeps across it.",
"resolution": "1080p",
"duration": 5
}
}'| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
prompt | string | No | - | Text prompt for video generation |
first_frame | string | No | - | First frame image to animate into video (jpg/png/bmp/webp, โค20MB) |
last_frame | string | No | - | Last frame image for first-and-last-frame video generation (jpg/png/bmp/webp, โค20MB). Requires first_frame. |
first_clip | string | No | - | Video clip to continue from (mp4/mov, 2-10s, โค100MB). Cannot be combined with first_frame. |
audio | string | No | - | Audio file (wav/mp3, 3-30s, โค15MB) for voice/music synchronization. If not provided, the model auto-generates matching audio. |
negative_prompt | string | No | - | Negative prompt โ describes content that should not appear in the video |
resolution | string | No | 1080p | Output video resolution 720p1080p |
duration | integer | No | 5 | Duration of the generated video in seconds |
enable_prompt_expansion | boolean | No | true | Automatically expand and optimize the prompt for better results. Improves quality for short prompts but increases latency. |
seed | integer | No | - | Random seed for reproducible generation. Range: 0-2147483647 |
There are 3 ways to provide files for the first_framelast_framefirst_clipaudio parameters:
Attach files directly to POST /v1/predictions/upload. No separate upload step needed.
curl -X POST "https://api.core.today/v1/predictions/upload" \
-H "X-API-Key: cdt_your_api_key" \
-F "model=wan-video/wan-2.7-i2v" \
-F 'input={"prompt":"your prompt here"}' \
-F "file:first_frame=@your_file.png"Pass a publicly accessible URL directly. You can also use file_url from the Storage API.
{
"model": "wan-video/wan-2.7-i2v",
"input": {
"prompt": "your prompt here",
"first_frame": "https://example.com/image.jpg"
}
}Common parameters used when calling POST /v1/predictions.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
model | string | Yes | - | Model identifier |
input | object | Yes | - | Object containing the model-specific parameters from the table above |
output_folder | string | No | - | Folder path for output files (max 256 chars, '..' not allowed) |
webhook_url | string | No | - | Webhook URL to call on completion |
is_public | boolean | No | false | If true, output files are also available via permanent public URLs |
Turn a static product image into a short animated video clip.
curl -X POST "https://api.core.today/v1/predictions" \
-H "Content-Type: application/json" \
-H "X-API-Key: cdt_your_api_key" \
-d '{
"model": "wan-video/wan-2.7-i2v",
"input": {
"first_frame": "https://example.com/product-shot.jpg",
"prompt": "The product slowly rotates on a reflective surface as soft studio light sweeps across it.",
"resolution": "1080p",
"duration": 5
}
}'Generate a controlled transition between two images using first and last frame anchors.
curl -X POST "https://api.core.today/v1/predictions" \
-H "Content-Type: application/json" \
-H "X-API-Key: cdt_your_api_key" \
-d '{
"model": "wan-video/wan-2.7-i2v",
"input": {
"first_frame": "https://example.com/scene-day.jpg",
"last_frame": "https://example.com/scene-night.jpg",
"prompt": "Time gradually shifts from day to night over the same landscape.",
"duration": 8
}
}'POST /v1/predictions