Bytedance Seedance 2.5 Text To Video

Bytedance Seedance 2.5 Text To Video

Playground

Try it on WaveSpeedAI!

Seedance 2.5 (Text-to-Video) generates Hollywood-grade cinematic videos from text prompts with native audio-visual synchronization, director-level camera and lighting control, and exceptional motion stability. Built on Seed’s unified multimodal architecture, it leads on instruction adherence, motion quality, and visual aesthetics.

Features

Seedance 2.5 is Seed’s latest video generation model, built on a unified multimodal architecture that accepts text, image, audio, and video inputs. The Text-to-Video mode generates production-grade cinematic videos from text prompts alone — with native audio, director-level control, and exceptional motion stability.


Key Features

  • Unified multimodal architecture A single model that handles text, image, audio, and video inputs for comprehensive creative flexibility.

  • Native audio-visual synchronization Generates video with synchronized audio in a single pass — no separate audio generation needed.

  • Director-level control Granular control over camera movement, lighting, shadows, and character performance through natural language prompts.

  • Production-grade cinematic quality Hollywood-grade visual fidelity with dramatic lighting, professional color grading, and smooth natural motion.

  • Exceptional motion stability Industry-leading motion coherence with stable subjects, consistent physics, and fluid transitions.

  • Strong instruction adherence Accurately follows detailed scene descriptions, shot compositions, and creative direction.


Parameters

ParameterRequiredDescription
promptYesDetailed description of the cinematic scene
aspect_ratioNoOutput format: 16:9 (default), 9:16, 4:3, 3:4, 1:1, 21:9
durationNoVideo length in seconds: 4-30 (default: 5)
resolutionNoOutput resolution: 480p, 720p (default), 1080p, or 4k
reference_imagesNoReference image URLs to guide style, characters, or composition
reference_videosNoReference video URLs (total length must not exceed 30 seconds)
reference_audiosNoReference audio URLs (total length must not exceed 30 seconds)

How to Use

  1. Write your prompt — describe the scene with cinematic detail: lighting, mood, camera movement, action, and style.
  2. Select aspect ratio — 16:9 for widescreen, 9:16 for vertical, 4:3 or 3:4 for classic formats.
  3. Set duration — choose any duration from 4 to 30 seconds.
  4. Optionally add references — provide reference images, videos, or audios for style guidance.
  5. Run — submit and download your cinematic video with synchronized audio.

Pricing

Without Reference Videos

Billed per second of output duration, anchored at $0.90 per 5 seconds at 480p.

ResolutionDurationCost
480p5 s$0.90
480p10 s$1.80
480p15 s$2.70
720p5 s$1.80
720p10 s$3.60
720p15 s$5.40
1080p5 s$4.50
4k5 s$9.00
1080p10 s$9.00
4k10 s$18.00
1080p15 s$13.50
4k15 s$27.00

With Reference Videos

When reference_videos are provided, billing follows the same scheme as Seedance 2.5 Video-Edit: billed per second across input duration + output duration, where input duration is the total length of the supplied reference videos clamped to the 2-30 s range.

ResolutionPer second
480p$0.11
720p$0.22
1080p$0.55
4k$1.10

Examples (reference videos totaling 5 s, output 5 s = 10 billed seconds):

ResolutionCost
480p$1.10
720p$2.20
1080p$5.50
4k$11.00

Billing Rules

  • Without reference videos: $0.90 per 5 seconds at 480p, scaled by resolution; prorated per second.
  • With reference videos: per-second billing matching Seedance 2.5 Video-Edit, using the total reference-video duration as input (clamped 2-30 s) plus the output duration.
  • 720p: 2x the 480p price.
  • 1080p: 5x the 480p price (2.5x the 720p price).
  • 4k: 10x the 480p price (2x the 1080p price).
  • Duration range: 4-30 seconds (continuous).

Best Use Cases

  • Film & Production — Generate cinematic footage for professional video projects.
  • Commercials & Ads — Create high-end promotional content with Hollywood aesthetics.
  • Music Videos — Produce visually stunning sequences with native audio sync.
  • Social Media Premium — Stand out with film-quality short-form content.
  • Concept Visualization — Pitch film and TV concepts with production-quality previews.

Pro Tips

  • Write prompts like a film director — include lighting (e.g., “dramatic rim lighting”), camera angles, and mood.
  • Use 16:9 for cinematic widescreen; 9:16 for premium vertical content.
  • Include specific visual details for best results (e.g., “golden hour sunlight casting long shadows”).
  • Describe character expressions and actions for more engaging scenes.
  • Start with a short duration (4-5s) to iterate on the look, then extend up to 15s.

Notes

  • Native audio generation is included — videos come with synchronized sound.
  • Duration range: 4-30 seconds (continuous).
  • Built on the same architecture as Seedance 2.5 Image-to-Video.


Notice: Use @image1, @image2, @audio1, etc. to reference your uploaded assets. The references will stay as plain text—don’t worry.


Authentication

For authentication details, please refer to the Authentication Guide.

API Endpoints

Submit Task & Query Result

set -euo pipefail

export WAVESPEED_API_KEY="your-api-key"

REQUEST_BODY=$(cat <<'JSON'
{
  "prompt": "A cinematic ocean wave at sunrise, highly detailed",
  "aspect_ratio": "16:9",
  "resolution": "720p",
  "duration": 5,
  "generate_audio": true
}
JSON
)

# 1. Submit the prediction.
SUBMIT_RESPONSE=$(curl --silent --show-error --fail-with-body \
  -X POST "https://api.wavespeed.ai/api/v3/bytedance/seedance-2.5/text-to-video" \
  -H "Authorization: Bearer ${WAVESPEED_API_KEY}" \
  -H "Content-Type: application/json" \
  -d "${REQUEST_BODY}")

TASK=$(printf '%s' "${SUBMIT_RESPONSE}" | jq 'if type == "object" and has("data") then .data else . end')
PREDICTION_ID=$(printf '%s' "${TASK}" | jq -r '.id // empty')
if [ -z "${PREDICTION_ID}" ]; then
  printf 'Submission response did not contain a prediction id
' >&2
  exit 1
fi
RESULT_URL=$(printf '%s' "${TASK}" | jq -r '.urls.get // empty')
if [ -z "${RESULT_URL}" ]; then RESULT_URL="https://api.wavespeed.ai/api/v3/predictions/${PREDICTION_ID}/result"; fi

# 2. Poll until the prediction finishes.
while true; do
  RESPONSE=$(curl --silent --show-error --fail-with-body \
    "${RESULT_URL}" \
    -H "Authorization: Bearer ${WAVESPEED_API_KEY}")
  RESULT=$(printf '%s' "${RESPONSE}" | jq 'if type == "object" and has("data") then .data else . end')
  STATUS=$(printf '%s' "${RESULT}" | jq -r '.status // empty')

  case "${STATUS}" in
    completed) printf '%s\n' "${RESULT}" | jq '.outputs'; break ;;
    failed|cancelled|timeout) printf '%s\n' "${RESULT}" | jq . >&2; exit 1 ;;
    created|processing) sleep 2 ;;
    *) printf 'Unexpected status: %s
' "${STATUS}" >&2; exit 1 ;;
  esac
done

Parameters

Task Submission Parameters

Request Parameters

ParameterTypeRequiredDefaultRangeDescription
promptstringYes-Describe the scene, action, camera movement, and mood for the video.
reference_imagesarray<string>No-0 ~ 30 itemsReference image URLs to guide visual style, characters, or scene composition.
reference_videosarray<string>No-0 ~ 10 itemsReference video URLs (total length must not exceed 30 seconds).
reference_audiosarray<string>No-0 ~ 10 itemsReference audio URLs (total length must not exceed 30 seconds).
aspect_ratiostringNo16:916:9, 9:16, 4:3, 3:4, 1:1, 21:9The aspect ratio of the generated video.
resolutionstringNo720p480p, 720p, 1080p, 4kThe output video resolution.
durationintegerNo54 ~ 30The duration of the generated video in seconds (4-30s).
generate_audiobooleanNotrue-Whether to generate native audio synchronized with the output video. Defaults to true.

Response Parameters

ParameterTypeDescription
codeintegerHTTP status code (e.g., 200 for success)
messagestringStatus message (e.g., “success”)
data.idstringUnique identifier for the prediction, Task Id
data.modelstringModel ID used for the prediction
data.outputsarrayOutput values, usually URL strings; some models return text strings or structured result objects (empty when status is not completed)
data.urlsobjectObject containing related API endpoints
data.urls.getstringURL to retrieve the prediction result
data.statusstringStatus of the task: created, processing, completed, or failed
data.created_atstringISO timestamp of when the request was created (e.g., “2023-04-01T12:34:56.789Z”)
data.errorstringError message (empty if no error occurred)
data.timingsobjectObject containing timing details
data.timings.inferenceintegerInference time in milliseconds

Result Request Parameters

ParameterTypeRequiredDefaultDescription
idstringYes-Task ID

Result Response Parameters

ParameterTypeDescription
codeintegerHTTP status code (e.g., 200 for success)
messagestringStatus message (e.g., “success”)
dataobjectThe prediction data object containing all details
data.idstringUnique identifier for the prediction
data.modelstringModel ID used for the prediction
data.outputsarray<string | object>Array of generated outputs (empty when status is not completed). Items are usually URL strings, but may be text strings or structured result objects, depending on the model.
data.urlsobjectObject containing related API endpoints
data.urls.getstringURL to poll for the prediction result
data.statusstringStatus: created, processing, completed, or failed
data.created_atstringISO timestamp of when the request was created
data.errorstringError message (empty if no error occurred)
data.timingsobjectObject containing timing details
data.timings.inferenceintegerInference time in milliseconds
© 2026 WaveSpeedAI. All rights reserved.