# vidu/vidu-q3/reference-to-video > Integrates advanced multi-entity consistent video generation capabilities. By blending multiple reference images with precise text guidance, the Vidu Q3 Reference-to-Video model maintains exceptional character and entity consistency across complex dynamic scenes. ## Overview - **Endpoint**: `https://api.shortapi.ai/api/v1/job/create` - **Model ID**: `vidu/vidu-q3/reference-to-video` - **Category**: video-to-video - **Kind**: inference ## Pricing The pricing per second is as follows: Mix mode costs $0.10 per second for 720p and $0.12 per second for 1080p; Turbo mode costs $0.02 per second for 540p, $0.04 per second for 720p, and $0.052 per second for 1080p; Pro mode costs $0.04 per second for 540p, $0.08 per second for 720p, and $0.10 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_): Text prompt - Examples: "An action shot of a black lab swimming..." - **`images`** (`list`, _required_): Reference Images (Up to 7) - **`duration`** (`int`, _optional_): Video Length, unit: s (seconds) - Default: `5` - Range: `3` to `16` - **`resolution`** (`string`, _optional_): Output video resolution - Default: `720p` - Options: "540p", "720p", "1080p" - **`aspect_ratio`** (`string`, _optional_): The aspect ratio of the generated video frame (width:height) - Default: `16:9` - Options: "16:9", "9:16", "4:3", "3:4", "1:1" - **`mode`** (`string`, _optional_): Video generation mode. Mix does not support 540p - Default: `pro` - Options: "pro", "mix", "turbo" ### 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": "vidu/vidu-q3/reference-to-video", "args": { "prompt": "A beautiful young woman with short curly hair and a bright smile, wearing a white and blue floral tiered summer sundress, walking joyfully on a pristine tropical beach with white sand and palm trees. Clear turquoise water and sunny sky in the background. Gentle sea breeze blowing her hair and dress, cinematic lighting, photorealistic, 4k resolution.", "images": ["https://file.shortapi.ai/assets/examples/vidu/vidu-q3/reference-to-video-images-1.png","https://file.shortapi.ai/assets/examples/vidu/vidu-q3/reference-to-video-images-2.png","https://file.shortapi.ai/assets/examples/vidu/vidu-q3/reference-to-video-images-3.png"] }, "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": "vidu/vidu-q3/reference-to-video", "args": { "prompt": "A beautiful young woman with short curly hair and a bright smile, wearing a white and blue floral tiered summer sundress, walking joyfully on a pristine tropical beach with white sand and palm trees. Clear turquoise water and sunny sky in the background. Gentle sea breeze blowing her hair and dress, cinematic lighting, photorealistic, 4k resolution.", "images": ["https://file.shortapi.ai/assets/examples/vidu/vidu-q3/reference-to-video-images-1.png","https://file.shortapi.ai/assets/examples/vidu/vidu-q3/reference-to-video-images-2.png","https://file.shortapi.ai/assets/examples/vidu/vidu-q3/reference-to-video-images-3.png"] }, "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": "vidu/vidu-q3/reference-to-video", "args": { "prompt": "A beautiful young woman with short curly hair and a bright smile, wearing a white and blue floral tiered summer sundress, walking joyfully on a pristine tropical beach with white sand and palm trees. Clear turquoise water and sunny sky in the background. Gentle sea breeze blowing her hair and dress, cinematic lighting, photorealistic, 4k resolution.", "images": ["https://file.shortapi.ai/assets/examples/vidu/vidu-q3/reference-to-video-images-1.png","https://file.shortapi.ai/assets/examples/vidu/vidu-q3/reference-to-video-images-2.png","https://file.shortapi.ai/assets/examples/vidu/vidu-q3/reference-to-video-images-3.png"] }, "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()) ```