API Free WeekHundreds of APIs are free to call this week.Browse free APIs

Seedance 2.5 Reference to Video

15% OFFbytedance/seedance/2.5/reference-to-video

ByteDance's next-generation reference-to-video model, generating video from multimodal references (images, videos, audio) and locking a character, set, and palette across a full take up to 30 seconds for production-grade consistency.

Base price
$1.53$1.80USD / run
Execution
async
Model type
video
Input fields
12
Production route

Try the model

Playground

Open playground
Input
The text prompt to generate a video from.

PNG, JPEG, WebP, or GIF · 20 MiB maximum each

The URLs of reference images to guide video generation. Refer to them in the prompt as @Image1, @Image2, etc.
The URLs of reference videos to guide video generation. Up to 10 MP4 or MOV files; combined duration must not exceed 30 seconds.
The URLs of reference audio files to guide video generation.
`reference` generates a new video from the references, `edit` edits a reference video (replace subjects, add or remove objects, repaint), `extend` extends a reference video forward or backward, `auto` (or omitted) lets the model infer it from the prompt. `edit` and `extend` require at least one video; `edit` forces `adaptive` aspect ratio and `auto` duration, `extend` forces `adaptive` aspect ratio. Write the prompt to match, otherwise the task can fail with a task-type mismatch. Allowed values: auto, reference, edit, extend.
Output duration in seconds (4-30), or `auto` to let the model pick a length from the prompt and inputs. `auto` is pre-authorized at 30 seconds and billed on the actual output length. When a reference video is edited or extended, use `auto` with `adaptive` aspect ratio so the output follows the source clip. Allowed values: 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.
Output aspect ratio. Omit to let the model choose from the prompt and reference inputs. Allowed values: 16:9, 9:16, 1:1, 4:3, 3:4, 21:9, adaptive.
The resolution of the video to generate. Allowed values: 480p, 720p, 1080p.
Whether to generate synchronized audio (voice, SFX, BGM) for the video.
Random seed for reproducible results. Omit or use -1 for a random seed. Range: -1 to 4294967295.
Draft mode step 1: render a fast, low-cost 480p draft (overrides `resolution`, billed at the 480p rate). Pass the result's `outputs[0].draft_id` back as `draft_id` within 7 days to render the same shot at 1080p.
Draft mode step 2: the `outputs[0].draft_id` of a succeeded draft from this same model (created with `draft: true` in the last 7 days). Renders the same shot at 1080p, billed at the 1080p rate for the actual output length. The prompt, media, duration, aspect ratio, seed, audio setting and task type are reused from the draft; any such fields sent with `draft_id` are ignored.
15% OFF
OutputExample

Examples

Select an example to load its inputs and result into the playground.

Model card

Specifications

Pricing

Base price
$1.53 / run

Context & modalities

Input
Schema-defined
Output
video

Capabilities

Chat
Not supported
Vision
Not supported
Reasoning
Not supported
Structured output
Not supported
Function calling
Not supported
Audio input
Not supported

Access

Provider
ByteDance
Model ID
bytedance/seedance/2.5/reference-to-video
Execution
async
Base URL
https://api.sandbase.ai
API
Unified Run API
Endpoint
/v1/run

API README

Seedance 2.5 Reference to Video

Seedance 2.5 reference-to-video: combine reference images, up to 10 reference videos, and reference audio to lock a character, set, motion, or voice in a new clip.

Fields

FieldTypeDefaultNotes
promptstring, required—Up to 50,000 characters.
imagesimage URL[]—Reference images, Image 1, Image 2, …
videosvideo URL[] (≤10)—Reference clips (up to 10), Video 1, Video 2, …
audiosaudio URL[]—Reference audio, Audio 1, Audio 2, …
durationauto / 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 / 305Output length in seconds (4–30), or auto to let the model choose.
aspect_ratio16:9 / 9:16 / 1:1 / 4:3 / 3:4 / 21:9—Output frame shape.
resolution480p / 720p / 1080p720pSets the per-second rate.
generate_audiobooleantrueNative dialogue, music, and effects. Same price on or off.
seedinteger -1–4294967295randomFix it to compare prompt changes; -1 is random.

Billing

Without reference videos you pay for output seconds: $0.18 at 480p, $0.36 at 720p, $0.90 at 1080p. With reference videos, the input video seconds (at least 2) are added to the output length and billed at a lower rate: $0.11 at 480p, $0.22 at 720p, $0.55 at 1080p. With duration: "auto" the quote assumes 30 seconds and the final charge uses the generated length.

Output480p720p1080p
5s, images only$0.90$1.80$4.50
10s, images only$1.80$3.60$9.00
5s + 5s reference video$1.10$2.20$5.50
10s + 10s reference video$2.20$4.40$11.00

Failed runs are not charged.

Prompting

  • Give each reference a role: “Image 1 is the dancer, Video 1 sets the choreography, Audio 1 is the music”.
  • Numbering follows array order within each type.

Limits

  • Reference video seconds count toward billing (minimum 2, up to 30).

Task types

task_type selects the reference sub-task: reference (new video guided by the references), edit (edit a reference video), extend (extend a reference video forward or backward), or auto (default, inferred from the prompt). edit and extend need at least one video and use the source clip's aspect ratio; edit also follows the source clip's length and is billed on the actual output length. If the prompt contradicts an explicit task_type, the task fails.

{"prompt": "Replace the man in @Video1 with the character in @Image1.", "images": ["https://example.com/character.png"], "videos": ["https://example.com/source.mp4"], "task_type": "edit"}

Draft mode

Draft mode is two calls to this same model:

  1. Draft: add "draft": true. The output is a 480p preview billed at the 480p rate, and outputs[0].draft_id identifies it.
  2. Final: send {"draft_id": "<outputs[0].draft_id>"} (optionally watermark). The same shot is rendered at 1080p and billed at the 1080p output rate for the actual output length.

The final reuses the draft's prompt, media, duration, aspect ratio, seed and audio setting; those fields are ignored when draft_id is set. A draft can be finalized within 7 days, only with the model that created it.

{"prompt": "@Image1 walks along the shoreline in the style of @Video1.", "images": ["https://example.com/character.png"], "videos": ["https://example.com/style.mp4"], "draft": true}
{"draft_id": "<outputs[0].draft_id from the draft>"}

Also on SandBase

Other Seedance 2.5 endpoints and tiers: bytedance/seedance/2.5/text-to-video, bytedance/seedance/2.5/image-to-video, bytedance/seedance/2.0/reference-to-video, bytedance/seedance/2.0/fast/reference-to-video, bytedance/seedance/2.0/mini/reference-to-video.

Start building

Send your first request

OpenAI-compatible endpoint with unified authentication and usage tracking.

Production API
Unified Run API endpoint
https://api.sandbase.ai/v1/run
Model ID
bytedance/seedance/2.5/reference-to-video
# The quoted heredoc keeps Unicode and shell metacharacters unchanged.
result=$(curl --fail-with-body --silent \
  -X POST "https://api.sandbase.ai/v1/run" \
  -H "Authorization: Bearer $SANDBASE_API_KEY" \
  -H "Content-Type: application/json" \
  --data-binary @- <<'SANDBASE_JSON'
{
  "model": "bytedance/seedance/2.5/reference-to-video",
  "draft": false,
  "images": [
    "https://static.sandbase.ai/examples/bytedance/seedance/2.0/reference-to-video/input_image_safe_ocean_0.jpg"
  ],
  "prompt": "Use Image1 as the visual reference and Video1 as the motion reference. Create a peaceful cinematic shoreline scene with rolling ocean waves at golden hour, soft foam, natural water movement, and no people.",
  "videos": [
    "https://static.sandbase.ai/examples/pixverse/sound-effects/input_video_0.mp4"
  ],
  "duration": 5,
  "resolution": "720p",
  "generate_audio": true
}
SANDBASE_JSON
)
run_id=$(printf '%s' "$result" | jq -r .id)
for attempt in $(seq 1 120); do
  status=$(printf '%s' "$result" | jq -r .status)
  case "$status" in completed|failed|timeout) break ;; esac
  sleep 2
  result=$(curl --fail-with-body --silent \
    -H "Authorization: Bearer $SANDBASE_API_KEY" \
    "https://api.sandbase.ai/v1/run/$run_id")
done
status=$(printf '%s' "$result" | jq -r .status)
[ "$status" = completed ] || { echo "Generation ended: $status" >&2; exit 1; }
printf '%s\n' "$result"

Choose your model

Compare models

All image & video models
ModelTypeDefault priceReleased
ByteDanceVideo$1.80 / runJul 1, 2026
ByteDanceVideo$1.80 / runJul 1, 2026
ByteDanceVideo$1.80 / runJul 1, 2026
ByteDanceVideo$0.60 / runJun 24, 2026
ByteDanceVideo$0.60 / runJun 24, 2026
ByteDanceVideo$0.60 / runJun 24, 2026

Questions

FAQ

How do I call ByteDance Seedance 2.5 Reference to Video through SandBase?

Create a SandBase API key, then send requests with the model ID "bytedance/seedance/2.5/reference-to-video" to Unified Run API (/v1/run) at https://api.sandbase.ai. The request examples on this page show the exact payload.

Do I need a separate ByteDance account?

No. One SandBase API key and balance gives you access to ByteDance Seedance 2.5 Reference to Video and the other models in the catalog; you do not need to sign up with ByteDance separately.