ByteDance's flagship multimodal video model with native audio, native 30-second single-pass generation, and large multimodal reference sets (up to 30 images, 10 videos, 10 audios). Supports text-to-video, image-to-video, first/last-frame control, video editing, extension, and lip-sync.
Test this model instantly in the Console Playground โ no code required
Copy usage instructions for Claude, ChatGPT, or other AI
curl -X POST "https://api.core.today/v1/predictions" \
-H "Content-Type: application/json" \
-H "X-API-Key: cdt_your_api_key" \
-d '{
"model": "bytedance/seedance-2.5",
"input": {
"prompt": "a golden retriever puppy running across a green meadow toward the camera, slow motion, warm afternoon light",
"duration": 5,
"resolution": "720p",
"seed": 42
}
}'| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
prompt | string | No | - | Text prompt for video generation. Maximum 20000 characters (BytePlus states no hard cap; quality is best under ~1,000 English words). Optional when a media input (image, reference images/videos/audios) is supplied. |
duration | integer | Yes | 5 | Video duration in seconds (4-30). Required โ upstream also accepts -1 for intelligent duration, but the resulting length is unknown at request time and cannot be billed accurately, so this gateway requires an explicit duration. |
resolution | string | No | 720p | Video resolution. 1080p is billed at a higher per-second rate. 480p720p1080p |
image | string | No | - | First-frame image for image-to-video or first/last-frame generation. Cannot be combined with reference images, videos, or audios. |
last_frame_image | string | No | - | Last-frame image. Requires a first-frame image. Cannot be combined with reference images, videos, or audios. |
reference_images | array | No | - | Reference images (up to 30) for character consistency, style guidance, and scene composition. Cannot be combined with first/last frame images. Reference them in your prompt as [Image1], [Image2], etc. |
reference_videos | array | No | - | Reference videos (up to 10, combined duration max 30s) for motion transfer, style reference, editing, and extension. Supplying any reference video switches billing to the higher video_in rate. |
reference_audios | array | No | - | Reference audio files (up to 10, combined duration max 30s) for audio-driven generation and lip-sync. Requires at least one reference image or video. |
aspect_ratio | string | No | adaptive | Video aspect ratio. 'adaptive' (default) lets the model choose the best ratio based on inputs. First/last-frame, editing, and extension modes require 'adaptive'. adaptive16:94:31:13:49:1621:9 |
generate_audio | boolean | No | true | Generate synchronized audio with the video, including dialogue (use double quotes in prompt), sound effects, and background music. |
watermark | boolean | No | false | Add a watermark to the generated video. |
output_format | string | No | mp4 | Output video container format. mp4mov |
seed | integer | No | - | Random seed. Set for reproducible generation. Reproducibility is not guaranteed. |
There are 3 ways to provide files for the imagelast_frame_imagereference_imagesreference_videosreference_audios parameters:
Pass a publicly accessible URL directly. With the Storage API (POST /v1/files/upload-url) the file uploads straight to S3 (50MB per file) and you pass the returned file_url.
{
"model": "bytedance/seedance-2.5",
"input": {
"prompt": "your prompt here",
"image": "https://example.com/image.jpg"
}
}Attach files directly to POST /v1/predictions/upload. No separate upload step, but the bytes pass through the API server so the whole request is capped at 10MB.
curl -X POST "https://api.core.today/v1/predictions/upload" \
-H "X-API-Key: cdt_your_api_key" \
-F "model=bytedance/seedance-2.5" \
-F 'input={"prompt":"your prompt here"}' \
-F "file:image=@your_file.png"Common parameters used when calling POST /v1/predictions.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
model | string | Yes | - | Model identifier |
input | object | Yes | - | Object containing the model-specific parameters from the table above |
output_folder | string | No | - | Folder path for output files (max 256 chars, '..' not allowed) |
webhook_url | string | No | - | Webhook URL to call on completion |
is_public | boolean | No | false | If true, output files are also available via permanent public URLs |
A 5-second 720p clip generated from a prompt alone, with synchronized ambience produced in the same pass.
curl -X POST "https://api.core.today/v1/predictions" \
-H "Content-Type: application/json" \
-H "X-API-Key: cdt_your_api_key" \
-d '{
"model": "bytedance/seedance-2.5",
"input": {
"prompt": "a golden retriever puppy running across a green meadow toward the camera, slow motion, warm afternoon light",
"duration": 5,
"resolution": "720p",
"seed": 42
}
}'Combine reference images and a reference video, then describe how to merge them by addressing each input in the prompt.
curl -X POST "https://api.core.today/v1/predictions" \
-H "Content-Type: application/json" \
-H "X-API-Key: cdt_your_api_key" \
-d '{
"model": "bytedance/seedance-2.5",
"input": {
"prompt": "The character from [Image1] performs the dance from [Video1] on a neon-lit stage.",
"reference_images": [
"https://example.com/character.jpg"
],
"reference_videos": [
"https://example.com/dance-reference.mp4"
],
"duration": 8,
"resolution": "720p",
"aspect_ratio": "adaptive"
}
}'POST /v1/predictions