Skip to content
Dashboard

Seedance 2.0

Seedance 2.0 generates video with synchronized multilingual audio, professional camera work, multi-shot composition, and in-video text rendering. Inputs include text, image, multimodal reference, and existing video for editing and extension. Your use is subject to ByteDance's Terms & Privacy Policies.

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

Copy link to headingPlayground

Try out Seedance 2.0 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 9 images
Videos(optional)
Add up to 3 videos
Prompt(optional)

End frame(optional)
Duration8s
4s15s
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
$7/M+1 more
04/14/2026

Getting started

Generate videos with Seedance 2.0 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.0',
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.0',
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-15 seconds.
resolutionstringNoResolution ('854x480', '1280x720', '1920x1080', '3840x2160').
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, gifurl930 MB≥300px · ≤6000px · aspect 2:5–5:2
Videomp4, movurl350 MB2-15s · ≥300px · ≤6000px
Audiowav, mp3url15 MB2-15s

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.0',
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[]No1-9 reference image URLs for reference-to-video, referenced in the prompt as [Image 1], [Image 2], and so on. 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.0',
prompt:
'Replace the cat in [Video 1] with the lion from [Image 1]. The lion lies down and gently interacts with the girl in a warm and tender way.',
aspectRatio: '16:9',
resolution: '1920x1080',
duration: 12,
generateAudio: true,
inputReferences: [
{ data: 'https://example.com/lion.jpg', mediaType: 'image/jpeg' },
{ data: 'https://example.com/cat-video.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
262K1.5 s104 tps
$0.50/M
$2.50/M
Read$0.10/M
bytedance logo
06/23/2026
$0.04/img
bytedance logo
02/13/2026
$0.04/img
bytedance logo
12/03/2025
256K1.2 s86 tps
$0.25/M+1 more
$2/M+1 more
Read$0.05/M
bytedance logo
09/01/2025
256K1.1 s100 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.0

Seedance 2.0 was released April 14, 2026 as the second-generation ByteDance Seedance video model. The standard variant targets the highest output quality in the 2.0 lineup.

Input modes span text-to-video, image-to-video, multimodal reference-to-video (combining image, video, and audio references), and video editing and extension. One model covers the full range of creative workflows where Seedance 1.0 Pro required separate variants.

Output supports 16:9 aspect ratio with 720p resolution in examples shown, and clip durations from five to 10 seconds. Seedance 2.0 maintains motion stability and fine detail across frames, handles complex scenes with facial expressions and physical interactions, and renders text inside generated video.

Native audio generation with multilingual support lets you produce dialogue, sound effects, and ambient audio without a separate text-to-speech or audio compositing step. Professional camera movements and multi-shot composition extend creative control beyond single static shots.

AI Gateway applies no markup on video generation for Seedance 2.0: the rate matches the direct ByteDance provider price. Set the model to bytedance/seedance-2.0 and call it through the AI SDK's generateVideo function.

Copy link to headingWhat To Consider When Choosing a Provider

  • Configuration: Seedance 2.0 accepts text, image, multimodal reference (image plus video plus audio), and existing video as input. If your pipeline handles multiple input modes, route through a single model rather than composing separate generation steps.
  • 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.0

Best for

  • Multimodal video workflows: Text, image, video, and audio inputs combined in a single reference-to-video generation
  • Character-driven content: Scenes with facial expressions, physical interactions, and synchronized dialogue in multiple languages
  • Cinematic production: Professional camera movements and multi-shot composition that extend beyond typical social clip defaults
  • In-video text rendering: Content where legible text inside the generated video matters for brand or narrative
  • Video editing and extension: Modifying existing video or extending a source clip without regenerating from scratch

Consider alternatives when

  • Maximum generation speed: Seedance 2.0 Fast trades some quality for faster turnaround and lower cost
  • Static image generation: Use a dedicated image model when motion isn't required
  • Video understanding only: Use a vision-language model when you need to analyze existing video rather than generate new content

Seedance 2.0 consolidates second-generation Seedance capabilities into a single model: multimodal inputs, high-fidelity motion, native synchronized audio, professional camera work, and in-video text. For teams producing character-driven or cinematic short-form video, it's the quality-focused default in the 2.0 line.

Copy link to headingFrequently Asked Questions

  • What input types does Seedance 2.0 support?

    Text-to-video, image-to-video, multimodal reference-to-video (combining image, video, and audio inputs), and video editing and extension.

  • Does Seedance 2.0 generate audio alongside video?

    Yes. Audio generation is native and synchronized to the video, with multilingual support for dialogue, sound effects, and ambient audio. No separate text-to-speech or audio compositing step is required.

  • How does Seedance 2.0 compare to Seedance 2.0 Fast?

    The standard variant targets the highest output quality in the 2.0 line. Seedance 2.0 Fast shares the same input types and capabilities but prioritizes speed and lower cost. Choose based on whether quality or turnaround matters more.

  • Can Seedance 2.0 render text inside generated video?

    Yes. In-video text rendering is one of the new capabilities in the 2.0 line, useful for brand, narrative, and informational content.

  • What resolutions and durations does Seedance 2.0 support?

    Examples shown at launch use 720p at 16:9 aspect ratio, with clip durations from five to 10 seconds.

  • Does Vercel AI Gateway support Zero Data Retention for Seedance 2.0?

    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.

  • What is the pricing for Seedance 2.0?

    Current pricing is shown on this page. AI Gateway applies no markup on video generation, so the rate matches the direct ByteDance provider price.

  • How do I call Seedance 2.0 through AI Gateway?

    Set the model to bytedance/seedance-2.0 and call it through the AI SDK's generateVideo function. AI Gateway handles authentication, retries, and failover across bytedance.