# 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 - **Version:** 0.0.1 - **Estimated Processing Time:** 180 seconds - **Last Updated:** 2026-05-07 - **Interactive Demo:** https://www.eachlabs.ai/ai-models/wan-2-5-preview-text-to-video ## Pricing Pricing information not available. ## Input Schema | Parameter | Type | Required | Default | Constraints | Description | |-----------|------|----------|---------|-------------|-------------| | prompt | string | Yes | - | - | The text prompt for video generation. Supports Chinese and English, max 800 characters. | | 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 or 10 seconds), the audio is truncated to the first 5 or 10 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. | | aspect_ratio | string | No | 16:9 | 16:9,9:16,1:1 | The aspect ratio of the generated video | | duration | string | No | 5 | 5,10 | Duration of the generated video in seconds. Choose between 5 or 10 seconds. | | resolution | string | No | 1080p | 480p,720p,1080p | Video resolution tier | | 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. Improves results for short prompts but increases processing time. | | seed | integer | No | - | - | Random seed for reproducibility. If None, a random seed is chosen. | ## 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": "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 "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 **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 `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.