Seedance 2.0 Mini
bytedance/seedance/2.0/mini/reference-to-videoSeedance 2.0 Mini by Bytedance - animate still images into dynamic videos with AI. Transform photos into cinematic clips with natural motion, camera movement, and optional audio generation.
- Base price
- $0.90USD / run
- Execution
- async
- Model type
- video
- Input fields
- 9
Try the model
Playground
Input
The text prompt used to generate the video.
PNG, JPEG, WebP, or GIF · 20 MiB maximum each
Reference images to guide video generation. Refer to them in the prompt as @Image1, @Image2, etc. Supported formats: JPEG, PNG, WebP. Max 30 MB per image. Up to 9 images. Total files across all modalities must not exceed 12.
Reference videos to guide video generation. Refer to them in the prompt as @Video1, @Video2, etc. Supported formats: MP4, MOV. Up to 3 videos, combined duration must be between 2 and 15 seconds, total size under 50 MB. Each video must be between ~480p (640x640) and ~720p (834x1112) in resolution.
Video resolution - 480p for faster generation, 720p for balance. Allowed values: 480p, 720p.
Duration of the video in seconds. Supports 4 to 15 seconds, or auto to let the model decide based on the prompt. Allowed values: 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15.
Whether to generate synchronized audio for the video, including sound effects, ambient sounds, and lip-synced speech. The cost of video generation is the same regardless of whether audio is generated or not.
The unique user ID of the end user.
Reference audio to guide video generation. Refer to them in the prompt as @Audio1, @Audio2, etc. Supported formats: MP3, WAV. Up to 3 files, combined duration must not exceed 15 seconds. Max 15 MB per file.If audio is provided, at least one reference image or video is required.
The aspect ratio of the generated image. Allowed values: 21:9, 16:9, 3:2, 4:3, 5:4, 1:1, 4:5, 3:4, 2:3, 9:16.
OutputReady
Your output will appear here
Complete the inputs, then click Run.
Specifications
Pricing
- Base price
- $0.90 / run
- Billing formula
- (usage.total_seconds ?? ((params.duration ?? 'auto') == 'auto' ? 5 : params.duration)) * ((params.resolution ?? '720p') == '480p' ? 0.045 : (params.resolution ?? '720p') == '720p' ? 0.09 : (0 / 0)) + (params.has_input_videos ? usage.input_video_seconds : 0) * ((params.resolution ?? '720p') == '480p' ? 0.045 : (params.resolution ?? '720p') == '720p' ? 0.09 : (0 / 0))
Context & modalities
- Input
- Schema-defined
- Output
- video
Capabilities
- Chat
- Not supported
- Vision
- Not supported
- Reasoning
- Not supported
- Structured output
- Not supported
- Function calling
- Not supported
- Audio input
- Not supported
Access
- Provider
- Bytedance
- Model ID
- bytedance/seedance/2.0/mini/reference-to-video
- Execution
- async
- API
- Unified Run API
- Endpoint
- /v1/run
API README
WAVESPEED LIST PRICING
| Resolution | Combined input + output price per second |
|---|---|
| 480p | $0.045 |
| 720p | $0.09 |
Default catalog baseline: 5 input-video seconds + 5 output seconds at 720p = $0.90 per run. The actual price uses the requested output duration plus the server-measured trusted input-video duration, both charged at the selected resolution's per-second rate. Source: WaveSpeed list pricing.
Start building
Send your first request
OpenAI-compatible endpoint with unified authentication and usage tracking.
# The quoted heredoc keeps Unicode and shell metacharacters unchanged.
result=$(curl --fail-with-body --silent \
-X POST "https://api.sandbase.ai/v1/run" \
-H "Authorization: Bearer $SANDBASE_API_KEY" \
-H "Content-Type: application/json" \
--data-binary @- <<'SANDBASE_JSON'
{
"model": "bytedance/seedance/2.0/mini/reference-to-video",
"images": [
"https://v3b.fal.media/files/b/0a8eba37/Cqg-4Uwzyz4DELfceT1CF_a17e588773ec45b1a9e6f100a787b80b.jpg"
],
"prompt": "An octopus finds a football in the ocean and excitedly calls its octopus friends to come and play. Cut scene to an octopus football game under the sea.",
"duration": "auto",
"resolution": "720p",
"generate_audio": true
}
SANDBASE_JSON
)
run_id=$(printf '%s' "$result" | jq -r .id)
for attempt in $(seq 1 120); do
status=$(printf '%s' "$result" | jq -r .status)
case "$status" in completed|failed|timeout) break ;; esac
sleep 2
result=$(curl --fail-with-body --silent \
-H "Authorization: Bearer $SANDBASE_API_KEY" \
"https://api.sandbase.ai/v1/run/$run_id")
done
status=$(printf '%s' "$result" | jq -r .status)
[ "$status" = completed ] || { echo "Generation ended: $status" >&2; exit 1; }
printf '%s\n' "$result"Choose your model
Compare models
| Model | Context | Input / 1M | Output / 1M | Released |
|---|---|---|---|---|
Seedance 2.0 MiniThis model Bytedance | — | — | — | Jun 24, 2026 |
Bytedance | — | — | — | Jul 1, 2026 |
Bytedance | — | — | — | Jul 1, 2026 |
Bytedance | — | — | — | Jul 1, 2026 |
Bytedance | — | — | — | Jun 24, 2026 |
Bytedance | — | — | — | Jun 24, 2026 |
