Skip to content
Dashboard

Seedance 2.5

Seedance 2.5 generates 30-second clips at native 4K with synchronized audio, accepting up to 50 multimodal reference inputs spanning images, video, audio, and style references.

View API reference
Output price
Output $10.70, Per 1M generated tokens
import { experimental_generateVideo as generateVideo } from 'ai';
const result = await generateVideo({
model: 'bytedance/seedance-2.5',
prompt: 'A serene mountain lake at sunrise.'
});
Read docs

Copy link to headingPlayground

Try out Seedance 2.5 by ByteDance. Usage is billed to your team at API rates. Free users (those who haven't made a payment) get $5 of credits every 30 days.

bytedance logo
Images(optional)
Add up to 30 images
Video to edit(optional)
Add up to 10 videos
Prompt(optional)

End frame(optional)
Duration8s
4s30s
Resolution
Aspect ratio
Videos to generate
bytedance logo

Your generated video will appear here.

Copy link to headingProviders

Route requests across multiple providers. Copy a provider slug to set your preference. Visit the docs for more info. Using a provider means you agree to their terms, listed under Legal.

Provider
Input
Output
Capabilities
ZDR
No Training
Free Tier
Release Date
$10.70/M+1 more
08/07/2026

Getting started

Generate videos with Seedance 2.5 using the experimental_generateVideo function from AI SDK 6 or later. AI Gateway handles routing and polls until the video is ready.

Install the AI SDK (pnpm add ai dotenv), create an API key from the API Keys page, and set it as AI_GATEWAY_API_KEY in your environment. Full setup is covered in the video generation quickstart.

index.ts
import { experimental_generateVideo as generateVideo } from 'ai';
import fs from 'node:fs';
import 'dotenv/config';
async function main() {
const result = await generateVideo({
model: 'bytedance/seedance-2.5',
prompt: 'A chicken flying into the sunset in the style of 90s anime',
});
// Save the generated video
fs.writeFileSync('output.mp4', result.videos[0].uint8Array);
console.log('Video saved to output.mp4');
}
main().catch(console.error);

Top-level parameters

Exercise the supported top-level params: prompt, aspectRatio, resolution, and duration.

seedance-text-to-video.ts
import { experimental_generateVideo as generateVideo } from 'ai';
import fs from 'node:fs';
import 'dotenv/config';
async function main() {
const result = await generateVideo({
model: 'bytedance/seedance-2.5',
prompt: 'A chicken flying into the sunset in the style of 90s anime',
aspectRatio: '16:9',
resolution: '1280x720',
duration: 5,
});
// Save the generated video
fs.writeFileSync('output.mp4', result.videos[0].uint8Array);
console.log('Video saved to output.mp4');
}
main().catch(console.error);
ParameterTypeRequiredDescription
promptstringNoText description of the video to generate.
durationnumberNoVideo length in seconds. 4-30 seconds.
resolutionstringNoResolution ('854x480', '1280x720', '1920x1080').
aspectRatiostringNoAspect ratio ('16:9', '4:3', '1:1', '3:4', '9:16', '21:9').
generateAudiobooleanNoGenerate synchronized audio with the video.
frameImagesArray<{ image: string; frameType: 'first_frame' | 'last_frame' }>NoFirst and last frames of the clip. A first_frame entry replaces prompt.image and wins when both are set, and adding a last_frame transitions between the two. Seedance accepts image URLs only, so host local files on Vercel Blob first.
inputReferencesArray<{ data: string; mediaType: string }>NoReference images and videos, referenced in the prompt as [Image 1], [Video 1], and so on, numbered separately in the order you pass them. Tag every URL with an explicit mediaType — an untyped URL is treated as an image and emits a warning. See the Input limits table for supported counts.

Input limits

InputFormatsSourcesMax countMax sizeLimits
Imagejpeg, png, webp, bmp, tiff, gif, heic, heifurl3030 MB≥300px · ≤6000px · aspect 2:5–5:2
Videomp4, movurl10200 MB2-30s · ≥300px · ≤6000px
Audiomp3, wavurl15 MB2-30s
Up to 50 reference inputs total across images and videos.

Provider options (bytedance)

Load the compatible Seedance options under providerOptions.bytedance. Frames and references are passed at the top level through frameImages and inputReferences, which change the call shape and are shown in their own examples below.

seedance-provider-options.ts
import { experimental_generateVideo as generateVideo } from 'ai';
import fs from 'node:fs';
import 'dotenv/config';
async function main() {
const result = await generateVideo({
model: 'bytedance/seedance-2.5',
prompt: 'A chicken flying into the sunset in the style of 90s anime',
resolution: '1280x720',
duration: 5,
providerOptions: {
bytedance: {
seed: 42,
pollIntervalMs: 5000,
pollTimeoutMs: 600000,
},
},
});
// Save the generated video
fs.writeFileSync('output.mp4', result.videos[0].uint8Array);
console.log('Video saved to output.mp4');
}
main().catch(console.error);

Pass these Seedance-specific options under providerOptions.bytedance in your generateVideo call.

ParameterTypeRequiredDescription
lastFrameImagestringNoURL of the last frame image, enabling first+last frame mode. Legacy alternative to the top-level frameImages, used only when frameImages is omitted.
referenceImagesstring[]NoReference image URLs for reference-to-video, referenced in the prompt as [Image 1], [Image 2], and so on — see the Input limits table for the supported count. Legacy alternative to the top-level inputReferences, used only when inputReferences is omitted.
referenceVideosstring[]NoReference video URLs for reference-to-video, numbered separately from the images and referenced in the prompt as [Video 1], [Video 2], and so on. Legacy alternative to the top-level inputReferences, used only when inputReferences is omitted.
referenceAudiostring[]NoReference audio URLs, sent alongside the reference images and videos to drive the generated audio.
seednumberNoFix the random seed for reproducible output.
pollIntervalMsnumberNoHow often to check task status. Defaults to 3000.
pollTimeoutMsnumberNoMaximum wait time. Defaults to 300000 (5 minutes).

Frames take priority over references

Frames and references are mutually exclusive. When frameImages is set, inputReferences and the legacy providerOptions.bytedance.referenceImages / referenceVideos are dropped with a warning.

The top-level parameters win over their provider-option equivalents: frameImages overrides prompt.image and lastFrameImage, and inputReferences overrides referenceImages and referenceVideos. Set one or the other, not both.

providerOptions.bytedance.referenceAudio has no top-level equivalent, so it stays a provider option and is sent alongside whichever reference path you use.

Reference-to-video

Pass reference media through the top-level inputReferences so the model keeps subjects, style, and composition consistent — see the Input limits table for the supported counts. Reference each one in the prompt with [Image 1], [Video 1], and so on; images and videos are numbered separately in the order you pass them. Tag every URL with an explicit mediaType, since Seedance cannot infer image or video from a bare URL.

seedance-reference-to-video.ts
import { experimental_generateVideo as generateVideo } from 'ai';
import fs from 'node:fs';
import 'dotenv/config';
async function main() {
const result = await generateVideo({
model: 'bytedance/seedance-2.5',
prompt:
'The lion from [Image 1] walks into the clearing from [Video 1], settles in the long grass, and watches the sun go down.',
aspectRatio: '16:9',
resolution: '1280x720',
duration: 30,
generateAudio: true,
inputReferences: [
{ data: 'https://example.com/lion.jpg', mediaType: 'image/jpeg' },
{ data: 'https://example.com/clearing.mp4', mediaType: 'video/mp4' },
],
providerOptions: {
bytedance: {
pollTimeoutMs: 600000,
},
},
});
// Save the generated video
fs.writeFileSync('output.mp4', result.videos[0].uint8Array);
console.log('Video saved to output.mp4');
}
main().catch(console.error);

Copy link to headingMore models by ByteDance

Model
Context
Latency
Throughput
Input
Output
Cache
Web Search
Capabilities
Providers
ZDR
No Training
Free Tier
Release Date
$0.003/M
$0.04/img
bytedance logo
07/11/2026
$0.04/img
bytedance logo
02/13/2026
$0.04/img
bytedance logo
12/03/2025
$0.03/img
bytedance logo
09/09/2025
256K1.1 s85 tps
$0.25/M+1 more
$2/M+1 more
Read$0.05/M
bytedance logo
09/01/2025
256K1.1 s104 tps
$0.25/M+1 more
$2/M+1 more
Read$0.05/M
bytedance logo
09/01/2025

Copy link to headingAbout Seedance 2.5

Seedance 2.5 is the generation after Seedance 2.0 in ByteDance's Seed family, skipping several version numbers to signal the size of the jump.

Two capabilities define it. Single-shot length reaches 30 seconds, with multi-turn extension for longer sequences. Resolution is native 4K rather than upscaled from a smaller render, which matters for professional pipelines where an upscale is visible, and 10-bit colour depth leaves headroom for grading in post.

The larger change is reference capacity. Seedance 2.5 accepts up to 50 multimodal inputs in a single request, spanning images, video, audio clips, 3D white models, and style references, against 12 in its predecessor. That is what makes it directable: style, motion, and composition can be shown rather than described. ByteDance also reports roughly 20 percent better prompt adherence, which reduces the number of generations needed to reach a usable result.

Audio and video are generated together by one model rather than dubbed afterwards, inheriting the joint architecture introduced with Seedance 2.0.

Generate video with generateVideo from the AI SDK.

Copy link to headingWhat To Consider When Choosing a Provider

  • Configuration: Reference capacity is the reason to choose Seedance 2.5, and it is also the work. Fifty inputs give fine control over style, motion, and composition, but assembling and curating that reference set is a real production step. On a simple prompt-to-clip task the earlier Seedance models reach a usable result with less setup.
  • Configuration: Native 4K and 30-second duration both raise cost per generation compared with shorter, smaller output. Prototype at lower resolution and duration, then generate the final at full settings. See the pricing panel on this page for current rates.
  • Configuration: Regional availability has been staged. Confirm the model is reachable for your account and region before you design a pipeline around it.
  • Zero Data Retention: Zero Data Retention is offered on a per-provider and model basis. See the documentation for details.
  • Authentication: AI Gateway authenticates requests using an API key or OIDC token. You do not need to manage provider credentials directly.

Copy link to headingWhen to Use Seedance 2.5

Best for

  • Native 4K Delivery: No visible upscale from a smaller render
  • Reference-Heavy Direction: Up to 50 multimodal inputs in one request
  • Longer Single Shots: 30 seconds before extension is needed
  • Colour Grading Workflows: 10-bit depth leaving headroom in post
  • Joint Audio And Video: Generated together rather than dubbed

Consider alternatives when

  • Simple Prompt-To-Clip Work: Earlier Seedance models need less setup
  • Cost-Constrained Generation: 4K and 30 seconds both raise cost per clip
  • Short Clip Needs: A lite Seedance variant is cheaper
  • Still Image Output: Seedream is the right family

Seedance 2.5 generates 30 seconds at native 4K and takes up to 50 reference inputs, which makes it a directable model rather than a prompt-and-hope one. Call bytedance/seedance-2.5 through generateVideo in the AI SDK, and budget for the reference curation that its control depends on.

Copy link to headingFrequently Asked Questions

  • How long can a Seedance 2.5 clip be?

    Up to 30 seconds in a single generation, with multi-turn extension for longer sequences.

  • Is Seedance 2.5 really 4K?

    Yes, generated natively at 4K rather than upscaled from a lower resolution render. It also supports 10-bit colour depth for grading in post.

  • How many reference inputs does Seedance 2.5 accept?

    Up to 50 in one request, spanning images, video, audio clips, 3D white models, and style references. Its predecessor accepted 12.

  • How do I call Seedance 2.5 on AI Gateway?

    Use generateVideo from the AI SDK with bytedance/seedance-2.5. The Chat Completions, Responses, and Messages APIs do not serve video generation.

  • Does Seedance 2.5 generate audio?

    Yes. Audio and video are produced together by one model, inheriting the joint generation architecture introduced with Seedance 2.0.

  • How does Seedance 2.5 compare to Seedance 2.0?

    Longer single shots, native 4K, and a much larger reference budget of 50 inputs against 12. ByteDance also reports roughly 20 percent better prompt adherence.

  • Does Seedance 2.5 support Zero Data Retention?

    Zero Data Retention is not currently available for this model. Zero Data Retention is offered on a per-provider basis. See https://vercel.com/docs/ai-gateway/capabilities/zdr for details.

Your use is subject to ByteDance's Terms & Privacy Policies.