Skip to content

ByteDance Seedance (BytePlus / Volcengine)

Seedance is ByteDance's media generation model family, available through the BytePlus ModelArk platform. UGENT integrates Seedance as a dedicated media-only provider covering video and audio generation.

Overview

Seedance is a media-only provider: chat methods return clear errors. The real capabilities are video and audio generation through the BytePlus REST async task API.

CapabilityModelsAPI
Text-to-videodreamina-seedance-2-5-260807POST /contents/generations/tasks
Image-to-videoSameSame (with first_frame role)
Video-to-videoSeedance 2.0+Same (with reference_video role)
Audio-conditioned videoSeedance 2.0+Same (with reference_audio role)
Native video audioSeedance 1.5+generate_audio: true (Dual-Branch)
Text-to-audioseed-audio-1-0Same async task API (/contents/generations/tasks)

Base URL: https://ark.ap-southeast.bytepluses.com/api/v3

China region: https://ark.cn-beijing.volces.com/api/v3

Quick Start

toml
[llm.instances.seedance]
type = "bytedance"
api_key = "$ARK_API_KEY"
base_url = "https://ark.ap-southeast.bytepluses.com/api/v3"
default_model = "dreamina-seedance-2-5-260807"

# Video generation
[llm.instances.seedance.media.generation.video]
enabled = true
model = "dreamina-seedance-2-5-260807"
default_resolution = "1080p"
default_ratio = "16:9"
default_duration = 10
max_poll_duration_secs = 900
poll_schedule = [30, 5, 120, 15, 900, 30]

# Audio generation
[llm.instances.seedance.media.generation.audio]
enabled = true
model = "seed-audio-1-0"
default_format = "mp3"
default_sample_rate = 44100
max_poll_duration_secs = 600
poll_schedule = [30, 5, 120, 15, 600, 30]

Store your BytePlus API key securely:

bash
echo -n "bp-your-byteplus-api-key" | ugent secret add --stdin byteplus_api_key
toml
[llm.instances.seedance]
api_key_ref = "@byteplus_api_key"

API Key Format

BytePlus API keys start with bp-. Generate one from the BytePlus ModelArk console.

Provider Type

Seedance uses the dedicated bytedance provider type. The aliases seedance, byteplus, and volcengine are also accepted.

Seedance 2.5 Video Generation

dreamina-seedance-2-5-260807 is ByteDance's latest video model with major upgrades over the 1.x series:

  • 30-second single-pass generation (up from 5-10 seconds)
  • Native 4K output with 10-bit color depth
  • Up to 50 multimodal reference inputs (images, videos, audio)
  • Region-level editing for targeted local modifications
  • 10+ language lip-synced audio generation
  • Watermark support (optional)

Video Config

toml
[llm.instances.seedance.media.generation.video]
enabled = true
model = "dreamina-seedance-2-5-260807"
default_resolution = "4k"             # 480p | 720p | 1080p | 4k
default_ratio = "16:9"               # 16:9 | 9:16 | 1:1 | 4:3 | 21:9
default_duration = 10                # seconds (5-30 for Seedance 2.5)
watermark = false                    # optional visible watermark
max_poll_duration_secs = 900         # 2.5's 30s clips take longer to generate
poll_schedule = [30, 5, 120, 15, 900, 30]
FieldValuesDescription
default_resolution480p, 720p, 1080p, 4kOutput resolution tier
default_ratio16:9, 9:16, 1:1, 4:3, 21:9Aspect ratio
default_duration5-30Clip length in seconds (2.5 supports up to 30)
watermarktrue / falseOptional visible watermark

Video Modes

ModeInputsNotes
Text-to-videoprompt onlyGenerate from scratch
Image-to-video (single)prompt + image_urlImage becomes first_frame anchor
Image-to-video (keyframes)prompt + image_urls (2) + mode: "keyframes"First = first_frame, second = last_frame
Multimodal referenceprompt + image_urls (3+)All images get reference_image role
Video-to-videoprompt + video_urlsSeedance 2.0+: replicate motion from reference clips
Audio-conditionedprompt + audio_urlsSeedance 2.0+: sync video to reference audio
Native audiogenerate_audio = trueSeedance 1.5+: embedded synced audio (Dual-Branch)

Use the generate_video and check_video tools:

> Generate a 30-second 4K cinematic drone shot of a coastline at sunset
  -> "Task created: task-abc123"

> check video task-abc123
  -> "Done. Saved to ~/.ugent/media/4a/hash.mp4"

Seed Audio 1.0

seed-audio-1-0 is ByteDance's full-scene audio generation model. It generates voice, dialogue, music, sound effects, and ambient sound from a single text prompt.

Capabilities

  • Multi-character dialogue with natural emotions
  • Background music, ambient sound, and sound effects
  • Voice cloning from up to 3 reference audio clips
  • Visual scene context from 1 reference image
  • 20+ languages with natural cross-lingual voice transfer
  • Up to 120 seconds per generation

Audio Config

toml
[llm.instances.seedance.media.generation.audio]
enabled = true
model = "seed-audio-1-0"
default_format = "mp3"                # mp3 | wav | pcm | ogg_opus
default_sample_rate = 44100           # 8000-48000 Hz
max_poll_duration_secs = 600
poll_schedule = [30, 5, 120, 15, 600, 30]
FieldValuesDescription
default_formatmp3, wav, pcm, ogg_opusOutput audio format
default_sample_rate8000-48000Sample rate in Hz

Audio Usage

Audio generation uses the same async task API as video. The generate_audio and check_audio tools are registered when audio generation is enabled:

> Generate a 30-second narration with soft background music
  -> "Task created: task-xyz789"

> check audio task-xyz789
  -> "Done. Saved to ~/.ugent/media/3b/hash.mp3"

Audio generation also supports:

  • Reference audio URLs for voice cloning (up to 3 clips)
  • Reference image URL for visual scene context
  • Speech rate and pitch rate adjustments

Available Models

ModelTypeKey Features
dreamina-seedance-2-5-260807Video30s clips, 4K, 50 references, region editing, lip-synced audio
seedance-1-5-pro-251215VideoStable model, 5-10s clips, native audio (Dual-Branch)
seedance-1-0-pro-250528VideoLegacy model
seed-audio-1-0AudioVoice, music, SFX, voice cloning, 20+ languages, 120s

Token-based Pricing

BytePlus bills Seedance video generation per million tokens, not per second. Text-to-video and image-to-video cost approximately $6.40/1M tokens; video-to-video (with reference clips) costs approximately $3.90/1M. Seedance 2.5 pricing is not yet published — check the Volcengine pricing page for details.

Supported Media Inputs

Input TypeHow It Works
Public URLPassed through as-is (recommended)
Data URIdata:image/png;base64,... — sent inline
Local fileRead, MIME-inferred, encoded to base64 automatically

Complete Configuration Example

toml
[llm.instances.seedance]
type = "bytedance"
api_key_ref = "@byteplus_api_key"
base_url = "https://ark.ap-southeast.bytepluses.com/api/v3"
default_model = "dreamina-seedance-2-5-260807"

# Video generation (Seedance 2.5)
[llm.instances.seedance.media.generation.video]
enabled = true
model = "dreamina-seedance-2-5-260807"
default_resolution = "4k"
default_ratio = "16:9"
default_duration = 10
watermark = false
max_poll_duration_secs = 900
poll_schedule = [30, 5, 120, 15, 900, 30]

# Audio generation (Seed Audio 1.0)
[llm.instances.seedance.media.generation.audio]
enabled = true
model = "seed-audio-1-0"
default_format = "mp3"
default_sample_rate = 44100
max_poll_duration_secs = 600
poll_schedule = [30, 5, 120, 15, 600, 30]

Using Seedance with Other Providers

Since Seedance is media-only, pair it with a text-capable provider:

toml
[llm]
default_instance = "gemini"

[llm.instances.gemini]
type = "google"
api_key_ref = "@google_api_key"
default_model = "gemini-3.5-pro"

[llm.instances.seedance]
type = "bytedance"
api_key_ref = "@byteplus_api_key"
default_model = "dreamina-seedance-2-5-260807"

[llm.instances.seedance.media.generation.video]
enabled = true
model = "dreamina-seedance-2-5-260807"
max_poll_duration_secs = 900

[llm.instances.seedance.media.generation.audio]
enabled = true
model = "seed-audio-1-0"

Text chat uses Gemini; video and audio generation routes to Seedance automatically.

Released under the Private Beta License.