# Alibaba | Wan | 3.0 | Text to Video Alibaba Wan 3.0 Text-to-Video generates AI video from prompts with duration, aspect ratio, audio, seed, and 480P-1080P output controls for teams. ## API Information - **Model Slug:** alibaba-wan-3-0-text-to-video - **Branded URL:** https://www.eachlabs.ai/alibaba/wan-3-0/alibaba-wan-3-0-text-to-video - **Provider:** Alibaba - **Category:** Text to Video - **Output Type:** video - **Status:** active - **Base Cost:** $0.05–$0.20 per second, depending on resolution - **Estimated Processing Time:** 200 seconds - **Interactive Demo:** https://www.eachlabs.ai/ai-models/alibaba-wan-3-0-text-to-video ## Pricing - **Charge Type:** dynamic - **Estimate:** $0.05–$0.20 per second, depending on resolution - **Pricing Details:** 1080p: $0.2 - **Pricing Details:** 720p: $0.1 - **Pricing Details:** 480p: $0.05 ## Input Schema | Parameter | Type | Required | Default | Constraints | Description | |-----------|------|----------|---------|-------------|-------------| | prompt | string | Yes | - | - | Text prompt describing the desired video. | | resolution | string | No | 1080P | 480P, 720P, 1080P | Output video resolution. | | ratio | string | No | adaptive | adaptive, 16:9, 9:16, 1:1, 4:3, 3:4 | Output video aspect ratio. Select adaptive to let the model choose a suitable ratio based on the prompt. | | duration | string | No | 5 | auto, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30 | Generated video duration. Select Auto to let the model determine the duration automatically. | | audio | boolean | No | true | - | Whether to generate an audio track for the output video. | | prompt_extend | boolean | No | true | - | Enable automatic prompt rewriting. Enabled by default. Disabling it may reduce latency but can reduce generation quality. | | seed | integer | No | - | 0–2147483647 | Random seed for reproducibility. The same seed may produce similar, but not identical, results. | ## 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": "alibaba-wan-3-0-text-to-video", "input": { "prompt": "A young woman walks slowly along a rain-soaked Tokyo street at night, neon signs reflecting in the puddles around her. She holds a transparent umbrella, water running off its edges. She stops at a crossing, looks up at the glowing signs above her, and a faint smile appears. Then she turns to the camera and she says softly: \"This is my favorite time of the day.\" Behind her, the crossing light turns green and people begin to move past her in both directions. She steps forward into the crowd, and the camera holds as she disappears among the umbrellas.\n\nCinematic, shallow depth of field, cool blue and magenta neon palette, natural rain sound and distant city traffic. Steady handheld camera, slow forward drift." } }' ``` ## 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 **Alibaba | Wan | 3.0 | Text to Video Overview** Alibaba | Wan | 3.0 | Text to Video is a multimodal AI video generation model from Alibaba’s Tongyi Lab that turns text prompts and reference media into up to 30‑second, sound‑enabled clips in a single pass. It is designed for teams that need fast, controllable short-form video without stitching multiple generations together, offering 480p, 720p, and 1080p output with synchronized audio. The primary differentiator of Alibaba | Wan | 3.0 | Text to Video is its unified pipeline: one endpoint accepts text, images, video, audio, and office documents and produces a coherent, narrated video clip. Through each::labs, teams can use this model for text-to-video campaigns, document-to-video explainers, or reference-driven edits while keeping control over duration, aspect ratio, seed, and resolution for repeatable, production-ready workflows. ## 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.