# alibaba/wan-2.6/reference-to-video > Alibaba WAN 2.6 Reference-to-Video can generate new video shots from character, prop, or scene references, whether they are single or multi-view. This process ensures that identity, style, and layout are meticulously preserved while producing smooth and coherent motion. ## Overview - **Endpoint**: `https://api.shortapi.ai/api/v1/job/create` - **Model ID**: `alibaba/wan-2.6/reference-to-video` - **Category**: reference-to-video - **Kind**: inference ## Pricing The rate is $0.085 per second for 720p and $0.128 per second for 1080p. For more details, please check our pricing page. ## API Information This model can be used via our HTTP API or more conveniently via our client libraries. See the input and output schema below, as well as the usage examples. ### Input Schema The API accepts the following input parameters: - **`prompt`** (`string`, _required_): Positive text prompt. Length no more than 1500 characters - Examples: "An action shot of a black lab swimming..." - **`negative_prompt`** (`string`, _optional_): Negative text prompt. Length no more than 500 characters - **`image_urls`** (`list`, _optional_): Reference images: 0–5 in total. Total limit: images + videos ≤ 5. Requirements: resolution — width and height must be between 240 and 5000 pixels, file size ≤ 10MB, formats: JPEG, JPG, PNG (no alpha channel supported), BMP, WEBP. - **`video_urls`** (`list`, _required_): Reference videos: 1–3 in total. Total limit: images + videos ≤ 5. Requirements: duration — 1s to 30s, file size ≤ 100MB, formats: MP4, MOV. - **`duration`** (`int`, _optional_): Video Length, unit: s (seconds) - Default: `5` - Options: "2", "3", "4", "5", "6", "7", "8", "9", "10" - **`resolution`** (`string`, _optional_): Output video resolution - Default: `1080p` - Options: "720p", "1080p" - **`shot_type`** (`string`, _optional_): The type of camera shot used in the video, i.e., whether the video consists of a single continuous shot or multiple cuts - Default: `single` - Options: "single", "multi" - **`audio`** (`bool`, _optional_): Whether to generate original audio for the video. - Default: `false` - Options: "true", "false" ### Output Schema The API returns a JSON response with a `job_id` for tracking the request status. **Create Job Response:** ```json { "code": 0, "data": { "amount": "0.02", "job_id": "" } } ``` **Query Job Result (when status is 2, meaning succeeded):** ```json { "code": 0, "data": { "status": 2, "result": { "videos": [{ "url": "https://..." }] } } } ``` ## Use Example To use this model, make an HTTP POST request to the API endpoint, then poll for results using the returned `job_id`. ### Bash (cURL) ```bash # Step 1: Create a job response=$(curl --request POST \ --url https://api.shortapi.ai/api/v1/job/create \ --header "Authorization: Bearer $SHORTAPI_KEY" \ --header "Content-Type: application/json" \ --data '{ "model": "alibaba/wan-2.6/reference-to-video", "args": { "prompt": "@Video1 and @Video2 dance together.", "video_urls": ["https://file.shortapi.ai/assets/examples/alibaba/wan-2.6/reference-to-video-video_urls_1.mp4","https://file.shortapi.ai/assets/examples/alibaba/wan-2.6/reference-to-video-video_urls_2.mp4"] }, "callback_url": "CALLBACK_URL" }') JOB_ID=$(echo "$response" | grep -o '"job_id": *"[^"]*"' | sed 's/"job_id": *//; s/"//g') # Step 2: Poll for results curl --request GET \ --url "https://api.shortapi.ai/api/v1/job/query?id=$JOB_ID" \ --header "Authorization: Bearer $SHORTAPI_KEY" ``` ### JavaScript (Fetch API) ```javascript // Step 1: Create a job const response = await fetch(`https://api.shortapi.ai/api/v1/job/create`, { method: "POST", headers: { "Authorization": `Bearer ${SHORTAPI_KEY}`, "Content-Type": "application/json" }, body: JSON.stringify({ "model": "alibaba/wan-2.6/reference-to-video", "args": { "prompt": "@Video1 and @Video2 dance together.", "video_urls": ["https://file.shortapi.ai/assets/examples/alibaba/wan-2.6/reference-to-video-video_urls_1.mp4","https://file.shortapi.ai/assets/examples/alibaba/wan-2.6/reference-to-video-video_urls_2.mp4"] }, "callback_url": "CALLBACK_URL" }) }); const data = await response.json(); const JOB_ID = data.job_id; // Step 2: Poll for results const result = await fetch(`https://api.shortapi.ai/api/v1/job/query?id=${JOB_ID}`, { method: "GET", headers: { "Authorization": `Bearer ${SHORTAPI_KEY}` } }); const resultData = await result.json(); console.log(resultData); ``` ### Python (Requests) ```python import requests # Step 1: Create a job url = "https://api.shortapi.ai/api/v1/job/create" payload = { "model": "alibaba/wan-2.6/reference-to-video", "args": { "prompt": "@Video1 and @Video2 dance together.", "video_urls": ["https://file.shortapi.ai/assets/examples/alibaba/wan-2.6/reference-to-video-video_urls_1.mp4","https://file.shortapi.ai/assets/examples/alibaba/wan-2.6/reference-to-video-video_urls_2.mp4"] }, "callback_url": "CALLBACK_URL" } headers = { "Authorization": f"Bearer {SHORTAPI_KEY}", "Content-Type": "application/json" } response = requests.post(url, headers=headers, json=payload) data = response.json() JOB_ID = data.get("job_id") # Step 2: Poll for results result_url = f"https://api.shortapi.ai/api/v1/job/query?id={JOB_ID}" result = requests.get(result_url, headers={"Authorization": f"Bearer {SHORTAPI_KEY}"}) print(result.json()) ```