# Alibaba | Wan 2.7 | Image to Video Wan 2.7 Image-to-Video generates high-quality videos from a single image with optional last-frame control, offering guided motion, audio synchronization, and intelligent prompt enhancement. ## API Information - **Model Slug:** alibaba-wan-2-7-image-to-video - **Branded URL:** https://www.eachlabs.ai/alibaba/wan-2-7/alibaba-wan-2-7-image-to-video - **Provider:** Alibaba - **Category:** Image to Video - **Output Type:** video - **Status:** active - **Version:** 0.0.1 - **Base Cost:** 1080P pricing: $0.15/sec (default) - **Estimated Processing Time:** 110 seconds - **Last Updated:** 2026-06-01 - **Interactive Demo:** https://www.eachlabs.ai/ai-models/alibaba-wan-2-7-image-to-video ## Pricing - **Charge Type:** dynamic - **Estimated Price (default example):** $0.7500 - **Pricing Details:** 1080P pricing: $0.15/sec (default) ### Pricing Rules | Condition | Pricing | | --- | --- | | resolution == "720P" | 720P pricing: $0.10/sec | | Rule 2 | 1080P pricing: $0.15/sec (default) | ## Input Schema | Parameter | Type | Required | Default | Constraints | Description | |-----------|------|----------|---------|-------------|-------------| | prompt | string | No | - | - | Text description to guide video generation. Supports Chinese and English. Max 5,000 characters. Optional but recommended. | | first_frame | string | Yes | - | - | URL of the image to use as the first frame. Supported formats: JPEG, JPG, PNG, BMP, WEBP. Max 20 MB. | | last_frame | string | No | - | - | URL of the image to use as the last frame (optional). Enables first-and-last-frame generation mode. | | first_clip | string | No | - | - | URL of a video to continue from (optional). Enables video continuation mode. MP4/MOV, 2-10s, max 100 MB. When provided, first_frame is ignored. | | driving_audio | string | No | - | - | URL of audio for audio-visual synchronization (optional). WAV/MP3, 2-30s, max 15 MB. | | resolution | string | No | 1080P | ["720P","1080P"] | Output video resolution. 720P: lower cost. 1080P: higher quality (default). | | negative_prompt | string | No | - | - | Describe what to avoid in the generated video. Max 500 characters. | | duration | integer | No | 5 | - | Video duration in seconds. Range: 2-15. Each second is billed separately. Default: 5. | | prompt_extend | boolean | No | true | - | Intelligent prompt rewriting for better quality. Default: true. | | seed | integer | No | - | - | Seed for reproducibility. Same seed produces similar results. Random if omitted. | ## Example Request ```bash curl -X POST https://api.eachlabs.ai/v1/prediction/ \ -H "X-API-Key: YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "alibaba-wan-2-7-image-to-video", "input": { "first_frame": "https://storage.googleapis.com/magicpoint/inputs/alibaba-wan-2-7-image-to-video-first-input.png" } }' ``` ## Output Schema Response returned by `GET /v1/prediction/{id}` when the job completes: ```json { "status": "success", "predictionID": "string", "output": "string (URL of generated video)", "metrics": { "predict_time": "number (seconds)" } } ``` ## Polling ```bash curl https://api.eachlabs.ai/v1/prediction/{PREDICTION_ID} \ -H "X-API-Key: YOUR_API_KEY" ``` | Status | Meaning | |--------|---------| | `processing` | Still running — poll again | | `success` | Done — read `output` | | `error` | Failed — read `message` / `details` | ## Webhook (alternative to polling) Pass `"webhook_url": "https://your.host/path"` in the create request. Eachlabs POSTs this payload when the job ends: ```json { "exec_id": "prediction-uuid", "status": "succeeded", "output": "https://...", "error": "" } ``` `status` is `"succeeded"` or `"failed"`. `exec_id` equals the `predictionID` from create. Return 2xx within 30 seconds. ## Errors Error body: `{ "status": "error", "message": "...", "details": "..." }` | Code | Meaning | |------|---------| | `400` | Invalid input | | `401` | Missing / invalid `X-API-Key` | | `404` | Unknown model or prediction id | | `429` | Rate limit — 100 creates / min, 10 concurrent per key | | `5xx` | Retry with backoff | ## Overview Alibaba | Wan 2.7 | Image to Video transforms a single static image into dynamic, high-quality video clips, solving the challenge of adding realistic motion and audio to visuals without complex editing tools. Developed by Alibaba Tongyi Lab as part of the advanced Wan 2.7 family, this model stands out with its support for guided motion control, including first/last frame options, and embedded audio synchronization for cinematic results. Users provide an input image and optional prompts to generate videos up to 15-30 seconds at 1080p or higher resolutions, making it ideal for creators seeking professional-grade output directly from each::labs (eachlabs.ai). The Alibaba | Wan 2.7 | Image to Video API enables seamless integration for developers building multimodal applications. ## Usage Notes - API Base URL: `https://api.eachlabs.ai/v1` - Authentication: send `X-API-Key: YOUR_API_KEY`. Generate a key from the Eachlabs dashboard at https://www.eachlabs.ai/dashboard/api-keys. - File-typed parameters (`*_url`, `image_url`, `video_url`, `audio_url`, etc.) accept publicly-reachable HTTPS URLs only. Upload your asset first (GCS / S3 / your CDN) and pass the resulting URL. Data-URIs and localhost URLs are rejected. - For structured parameters (arrays / objects) send real JSON values, not stringified payloads. - Monetary values are reported in USD; per-token / per-megapixel rates may be billed in micro-cents internally. - Prefer `webhook_url` over polling for long-running predictions — see the Webhook Callback section.