# Wan | v2.6 | Reference to Video Wan 2.6 is a reference-to-video model that generates high-quality videos while preserving visual style, motion, and scene consistency from a reference input. ## API Information - **Model Slug:** wan-v2-6-reference-to-video - **Branded URL:** https://www.eachlabs.ai/alibaba/wan-v2-6/wan-v2-6-reference-to-video - **Provider:** Alibaba - **Category:** Reference to Video - **Output Type:** video - **Status:** active - **Version:** 0.0.1 - **Base Cost:** Calculated using formula: 10 * 0.15 - **Estimated Processing Time:** 320 seconds - **Last Updated:** 2026-04-16 - **Interactive Demo:** https://www.eachlabs.ai/ai-models/wan-v2-6-reference-to-video ## Pricing - **Charge Type:** dynamic - **Estimated Price (default example):** $1.50 - **Pricing Details:** Calculated using formula: 10 * 0.15 ### Pricing Rules | Condition | Pricing | | --- | --- | | resolution eq_i "720p" | 720p pricing: $0.10/second | | Rule 2 | duration * 0.15 | ## Input Schema | Parameter | Type | Required | Default | Constraints | Description | |-----------|------|----------|---------|-------------|-------------| | prompt | string | Yes | - | - | Use @Video1, @Video2, @Video3 to reference subjects from your videos. Works for people, animals, or objects. For multi-shot prompts: '[0-3s] Shot 1. [3-6s] Shot 2.' Max 800 characters. | | video_urls | array | Yes | - | 1–3 | Reference videos for subject consistency (1-3 videos). Reference in prompt as @Video1, @Video2, @Video3. Works for people, animals, or objects. | | aspect_ratio | string | No | 16:9 | 16:9,9:16,1:1,4:3,3:4 | The aspect ratio of the generated video. | | resolution | string | No | 1080p | 720p,1080p | Video resolution tier. R2V only supports 720p and 1080p (no 480p). | | duration | string | No | 5 | 5,10 | Duration of the generated video in seconds. R2V supports only 5 or 10 seconds (no 15s). | | 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 | true | - | When true (default), enables intelligent multi-shot segmentation for coherent narrative videos with multiple shots. When false, generates single continuous shot. Only active when enable_prompt_expansion is True. | | 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-reference-to-video", "input": { "prompt": "run competition on the road between @Video1 and @Video2.", "video_urls": [ "https://storage.googleapis.com/magicpoint/inputs/wan-v2-6-reference-to-video-input1.mp4", "https://storage.googleapis.com/magicpoint/inputs/wan-v2-6-reference-to-video-input2.mp4" ] } }' ``` ## 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-reference-to-video — Reference-to-Video AI Model** Developed by Alibaba as part of the wan v2.6 family, wan-v2.6-reference-to-video is a reference-to-video model that generates high-quality videos while preserving visual style, motion patterns, and voice characteristics from uploaded reference videos. Unlike traditional image-to-video or text-to-video approaches that rely on static images or text descriptions alone, this model extracts appearance, movement, and audio features from reference material—enabling creators to maintain consistent character identity and stylistic elements across generated video sequences. This capability solves a critical problem for content creators: generating multiple video variations that feel cohesive and on-brand without manual reshooting or complex post-production work. The model accepts up to 3 reference videos (2–30 seconds each) alongside text prompts, making it ideal for creators building AI video generators for professional workflows. It produces multi-shot narrative videos up to 15 seconds at 720p or 1080p resolution with synchronized audio, delivering cinematic quality suitable for commercial applications. ## 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.