# Wan | 2.5 | Preview | Text to Video Wan 2.5 Preview is a model designed to generate realistic videos directly from text. It transforms short descriptions into cinematic visuals with natural motion, smooth camera work, and high-quality output. The “Preview” version is optimized for quick tests and experiments, making it easy to visualize ideas before moving into full production. ## API Information - **Model Slug:** wan-2-5-preview-text-to-video - **Branded URL:** https://www.eachlabs.ai/alibaba/wan-2-5/wan-2-5-preview-text-to-video - **Provider:** Alibaba - **Category:** Text to Video - **Output Type:** video - **Status:** active - **Base Cost:** $0.05–$0.15 per second, depending on resolution - **Estimated Processing Time:** 180 seconds - **Interactive Demo:** https://www.eachlabs.ai/ai-models/wan-2-5-preview-text-to-video ## Pricing - **Charge Type:** dynamic - **Estimate:** $0.05–$0.15 per second, depending on resolution - **Pricing Details:** 480p: $0.05 - **Pricing Details:** 720p: $0.1 - **Pricing Details:** default: $0.15 ## Input Schema | Parameter | Type | Required | Default | Constraints | Description | |-----------|------|----------|---------|-------------|-------------| | prompt | string | Yes | - | - | Text prompt describing the desired video content. Supports Chinese and English. Max 1500 characters. | | aspect_ratio | string | No | 16:9 | 16:9, 9:16, 1:1 | Video aspect ratio. | | resolution | string | No | 1080p | 480p, 720p, 1080p | Video output resolution. 480p: lowest, fastest. 720p: medium. 1080p: highest quality (default). | | audio_url | string | No | - | - | URL of the audio file for audio-visual synchronization. Supports WAV and MP3. Duration: 3-30 seconds. Max 15MB. | | duration | string | No | 5 | 3, 4, 5, 6, 7, 8, 9, 10 | Video duration in seconds. Seconds 3-10 | | negative_prompt | string | No | - | - | Text describing content to avoid in the generated video. Max 500 characters. | | enable_prompt_expansion | boolean | No | true | - | Enable LLM-based prompt rewriting for better video quality. Default: true. | | seed | integer | No | - | 0–2147483647 | Random seed for reproducibility. Range: 0-2147483647. If not provided, a random seed is chosen. | ## 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-2-5-preview-text-to-video", "input": { "prompt": "Hyperspeed POV shot of a motorcycle ride, the rider’s hands gripping the handlebars clearly visible. Dodging explosions while weaving through smoke, rubble, and blasts, the camera races forward as the chaotic environment blurs in rapid motion all around." } }' ``` ## 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-2-5-preview-text-to-video — Text to Video AI Model** Developed by Alibaba as part of the **wan-2.5** family, **wan-2-5-preview-text-to-video** is a cutting-edge text-to-video AI model that generates realistic 5-10 second videos with synchronized native audio directly from text prompts. This preview version stands out by producing lip-synced speech, matching background music, and environmental sound effects in a single pass, eliminating the need for post-production audio editing common in other text-to-video AI models. Ideal for creators seeking quick, high-quality cinematic visuals with sound, it supports resolutions up to 1080p at 30 fps in MP4 format, making it perfect for social media content like TikTok videos or YouTube shorts. Alibaba's **wan-2-5-preview-text-to-video** transforms simple descriptions into dynamic clips with smooth camera movements and stable object tracking, offering unmatched efficiency for prototyping video ideas. ## 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.