# Wan | v2.6 | Image to Video Wan 2.6 is an image-to-video model that transforms images into high-quality videos with smooth motion and visual consistency. ## API Information - **Model Slug:** wan-v2-6-image-to-video - **Branded URL:** https://www.eachlabs.ai/alibaba/wan-v2-6/wan-v2-6-image-to-video - **Provider:** Alibaba - **Category:** Image to Video - **Output Type:** video - **Status:** active - **Version:** 0.0.1 - **Base Cost:** 1080p pricing (fallback): $0.15/second - **Estimated Processing Time:** 60 seconds - **Last Updated:** 2026-07-13 - **Interactive Demo:** https://www.eachlabs.ai/ai-models/wan-v2-6-image-to-video ## Pricing - **Charge Type:** dynamic - **Estimated Price (default example):** $2.25 - **Pricing Details:** 1080p pricing (fallback): $0.15/second ### Pricing Rules | Condition | Pricing | | --- | --- | | resolution eq_i "720p" | 720p pricing: $0.10/second | | Rule 2 | 1080p pricing (fallback): $0.15/second | ## Input Schema | Parameter | Type | Required | Default | Constraints | Description | |-----------|------|----------|---------|-------------|-------------| | prompt | string | Yes | - | - | The text prompt describing the desired video motion. Max 800 characters. | | image_url | string | Yes | - | - | URL of the image to use as the first frame. Must be publicly accessible or base64 data URI. Max file size: 50.0MB, Min width: 360px, Min height: 360px, Max width: 2000px, Max height: 2000px, Timeout: 20.0s | | audio_url | string | No | - | - | URL of the audio to use as the background music. Must be publicly accessible. Limit handling: If the audio duration exceeds the duration value (5, 10, or 15 seconds), the audio is truncated to the first N seconds, and the rest is discarded. If the audio is shorter than the video, the remaining part of the video will be silent. For example, if the audio is 3 seconds long and the video duration is 5 seconds, the first 3 seconds of the output video will have sound, and the last 2 seconds will be silent. - Format: WAV, MP3. - Duration: 3 to 30 s. - File size: Up to 15 MB. | | resolution | string | No | 1080p | 720p,1080p | Video resolution. Valid values:720p, 1080p | | duration | string | No | 5 | 5,10,15 | Duration of the generated video in seconds. Choose between 5, 10 or 15 seconds. | | negative_prompt | string | No | - | - | Negative prompt to describe content to avoid. Max 500 characters. | | enable_prompt_expansion | boolean | No | true | - | Whether to enable prompt rewriting using LLM. | | multi_shots | boolean | No | false | - | When true, enables intelligent multi-shot segmentation. Only active when enable_prompt_expansion is True. Set to false for single-shot generation. | | seed | integer | No | - | - | Random seed for reproducibility. If None, a random seed is chosen. | | enable_safety_checker | boolean | No | true | - | If set to true, the safety checker will be enabled. | ## Example Request ```bash curl -X POST https://api.eachlabs.ai/v1/prediction/ \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "wan-v2-6-image-to-video", "input": { "prompt": "A comedic yet premium cinematic sequence where a printed object transforms reality.\n\nThe scene begins exactly from the input image: the creator grips the stack of printed papers labeled “eachlabs” on the desk.\n\n[0–4s] The creator slowly pulls the stack apart. The paper resists like heavy fabric, emitting a deep mechanical sound. The creator murmurs, slightly amused: “This feels… expensive.”\n\n[4–8s] Hard match cut: the paper stretches outward and becomes a vast snow-covered mountain landscape surrounding the desk, wind moving snow and clouds as if the scene was folded inside the paper. The desk still exists at the center. The creator looks around, surprised: “That was not in the margins.”\n\n[8–12s] Smash cut: the paper sharply folds again and snaps open into a neon-lit futuristic city at night, rain reflecting colorful lights, cinematic depth and motion. The creator laughs softly: “Okay. That’s on me.”\n\n[12–15s] Hard cut back to the original studio. The paper stack settles back onto the table, perfectly intact. The “eachlabs” text is visible again. The creator looks directly into camera and says calmly: “One input. Multiple realities.”\n\nPhotoreal 4K, cinematic lighting, strong match cuts, smooth camera motion, coherent main character, natural dialogue, no subtitles, no UI, no watermark.", "image_url": "https://storage.googleapis.com/magicpoint/inputs/wan-v2-6-image-to-video-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 "Authorization: Bearer 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 `Authorization` bearer token | | `404` | Unknown model or prediction id | | `429` | Rate limit — 100 creates / min, 10 concurrent per key | | `5xx` | Retry with backoff | ## Overview **wan-v2.6-image-to-video — Image-to-Video AI Model** Developed by Alibaba as part of the **wan-v2.6** family, **wan-v2.6-image-to-video** transforms static images into cinematic 1080p videos up to 15 seconds long, with native audio synchronization and multi-shot narrative consistency that outperforms typical image-to-video AI models. This lightweight flash variant excels in rapid inference for production workflows, preserving subject structure, lighting, and framing while generating smooth, realistic motion from a single input image and text prompt—ideal for creators seeking **Alibaba image-to-video** solutions without chaotic movements or identity drift. Users upload JPG, PNG, or WebP images (up to 50MB) alongside prompts describing motion, enabling quick generation of short-form content like promotional clips or concept visuals via the **wan-v2.6-image-to-video API**. ## Usage Notes - API Base URL: `https://api.eachlabs.ai/v1` - Authentication: send `Authorization: Bearer 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.