# Bytedance | Seedance 2.5 | Reference to Video Seedance 2.5 Reference-to-Video blends up to 50 image, video, and audio references into one consistent clip for character-true branded storytelling "Please use this model only with AI-generated human faces, not real human faces. If you use real human faces, you accept full responsibility and liability for any consequences." ## API Information - **Model Slug:** bytedance-seedance-2-5-reference-to-video - **Branded URL:** https://www.eachlabs.ai/bytedance/seedance-2-5/bytedance-seedance-2-5-reference-to-video - **Provider:** ByteDance - **Category:** Reference to Video - **Output Type:** video - **Status:** active - **Base Cost:** $0.155–$0.695 per second, depending on duration and resolution - **Estimated Processing Time:** 250 seconds - **Interactive Demo:** https://www.eachlabs.ai/ai-models/bytedance-seedance-2-5-reference-to-video ## Pricing - **Charge Type:** dynamic - **Estimate:** $0.155–$0.695 per second, depending on duration and resolution - **Pricing Details:** 480p, duration: $0.155 - **Pricing Details:** 1080p, duration: $0.695 - **Pricing Details:** duration: $0.305 - **Pricing Details:** 480p: $0.155 - **Pricing Details:** 1080p: $0.695 - **Pricing Details:** default: $0.305 ## Input Schema | Parameter | Type | Required | Default | Constraints | Description | |-----------|------|----------|---------|-------------|-------------| | prompt | string | Yes | - | - | The text prompt used to generate the video. | | image_urls | array | No | - | - | Reference images to guide video generation. Refer to them in the prompt as @Image1, @Image2, etc. Supported formats: JPEG, PNG, WebP. Max 30 MB per image. Up to 9 images. Total files across all modalities must not exceed 12. | | video_urls | array | No | - | - | Reference videos to guide video generation. Refer to them in the prompt as @Video1, @Video2, etc. Supported formats: MP4, MOV. Up to 3 videos, combined duration must be between 2 and 15 seconds, total size under 50 MB. Each video must be between ~480p (640x640) and ~720p (834x1112) in resolution. | | audio_urls | array | No | - | - | Reference audio to guide video generation. Refer to them in the prompt as @Audio1, @Audio2, etc. Supported formats: MP3, WAV. Up to 3 files, combined duration must not exceed 15 seconds. Max 15 MB per file. If audio is provided, at least one reference image or video is required. | | resolution | string | No | 720p | 480p, 720p, 1080p | Video resolution - 480p for faster generation, 720p for balance, 1080p for highest quality. | | duration | string | No | auto | auto, 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 | Duration of the video in seconds. Supports 4 to 30 seconds, or auto to let the model decide based on the prompt. | | aspect_ratio | string | No | auto | auto, 21:9, 16:9, 4:3, 1:1, 3:4, 9:16 | The aspect ratio of the generated video. Use 16:9 for landscape, 9:16 for portrait/vertical, 1:1 for square, 21:9 for ultrawide cinematic, or auto to let the model decide. | | generate_audio | boolean | No | true | - | Whether to generate synchronized audio for the video, including sound effects, ambient sounds, and lip-synced speech. The cost of video generation is the same regardless of whether audio is generated or not. | ## 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": "bytedance-seedance-2-5-reference-to-video", "input": { "prompt": "Shot 1 (0–2s): @Image1 — The pasta bowl rotates smoothly on the table as steam rises and strands of spaghetti lift and twirl upward. The rotation accelerates into a fast spin and the frame blurs. Spin transition.\n\nShot 2 (2–4s): @Image2 — Out of the spin, same table and framing, the plate is now the seared fish, still rotating and slowing to a stop as golden olive oil pours down over the fillet. The plate spins up fast again and blurs. Spin transition.\n\nShot 3 (4–6s): @Image3 — Out of the spin, same table and framing, the bowl is now the salad, rotating and slowing as fresh leaves, walnuts and feta cubes tumble down into it. The bowl spins up fast again and blurs. Spin transition.\n\nShot 4 (6–8s): @Image4 — Out of the spin, same table and framing, the plate is now the chocolate lava cake, rotating and slowing to a full stop as the cake splits open and molten chocolate flows out across the plate. The camera pushes in slightly and holds on the final dish.\n\nStyle: cinematic food commercial, macro lens, shallow depth of field, warm restaurant ambient light, plates rotate on a turntable, motion blur during each spin, food details in slow motion, glossy oil and sauce highlights, identical table, background and framing across all four shots, fast energetic pacing on the beat." } }' ``` ## 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 **Bytedance | Seedance 2.5 | Reference to Video Overview** Bytedance | Seedance 2.5 | Reference to Video is a multimodal video generation model that turns reference assets and prompts into a single coherent clip. It is designed for character-true storytelling, branded scenes, and controlled motion when consistency matters more than one-off novelty. According to ByteDance’s Seedance 2.5 launch materials, the model’s main differentiator is its ability to combine flexible referencing with a long native generation window and synchronized audio-video output in one pass. For each::labs users, Bytedance | Seedance 2.5 | Reference to Video is best understood as a production-oriented model rather than a simple clip generator. It supports reference-guided creative control for scenes that need identity consistency, camera direction, and stable visual style across the full shot. ## 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.