Seedance 2.5 Image to Video
bytedance/seedance/2.5/image-to-videoByteDance's next-generation image-to-video model, animating a single still into a native clip up to 30 seconds at 720p with continuous, coherent motion, native audio, and director-level camera control.
- Base price
- $1.12 / run
- Execution
- async
- Model type
- video
- Input fields
- 6
Try the model
Playground
PNG, JPEG, WebP, or GIF · 20 MiB maximum
PNG, JPEG, WebP, or GIF · 20 MiB maximum
Your output will appear here
Complete the inputs, then click Run.
Specifications
Pricing
- Base price
- $1.12 / run
- Billing formula
- (usage.total_seconds ?? ((params.duration ?? 5) == 'auto' ? 5 : (params.duration ?? 5))) * ((params.resolution ?? '720p') == '480p' ? 0.099703264095 : (params.resolution ?? '720p') == '720p' ? 0.224332344214 : (params.resolution ?? '720p') == '1080p' ? 0.555222551929 : (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.5/image-to-video
- Execution
- async
- API
- Unified Run API
- Endpoint
- /v1/run
API README
Seedance 2.5 Image to Video
ByteDance's next-generation image-to-video model — transforms a still image into a native clip up to 30 seconds with continuous, coherent motion, native audio, and director-level camera control.
- Need text-to-video? Try Seedance 2.5 Text to Video.
- Need reference-guided generation? Try Seedance 2.5 Reference to Video.
Highlights
Native 30-second animation — Extend a single frame into a long, continuous take without drift or stitching.
Native audio generation — Automatically creates synchronized sound effects, ambient audio, and lip-synced speech. Toggle with generate_audio parameter.
Start + end frame control — Provide both a starting image and an optional end image to precisely control video transitions and motion direction.
Flexible duration — Generate 4 to 30 second clips in a single request.
Pricing
Rates use Volcengine's non-promotional list price converted at 1 USD = 6.74 CNY.
| Resolution | Output price per second |
|---|---|
| 480p | $0.10 |
| 720p | $0.22 |
| 1080p | $0.56 |
Default: 5 output seconds at 720p = $1.12. Input images do not add a video-input charge. Audio generation is included at no extra cost.
When to Use
| ✅ Good fit | ❌ Consider alternatives |
|---|---|
| Product photo animations | Real-time video streaming |
| Social media content from product shots | Long-form video (>30s) |
| Cinematic transitions between keyframes | Pixel-perfect frame control |
| Marketing material with motion | Simple GIF-style loops |
| Story-driven clips with audio | Text-only generation (use T2V) |
Input Requirements
- Image provided as publicly accessible URL
- Supported formats: PNG, JPEG, WebP
- Max image size: 30 MB
- Optional end image for controlled transitions
Technical Specs
| Spec | Value |
|---|---|
| Input | Text prompt + image URL (+ optional end image) |
| Output | MP4 video with optional audio |
| Resolution | 480p / 720p / 1080p |
| Duration | 4–30 seconds |
| Execution | Async (submit → poll for result) |
| Typical latency | 2–10 minutes |
Related
- Seedance 2.5 Text to Video — Generate video from text prompts
- Seedance 2.5 Reference to Video — Multi-reference guided generation
Start building
Send your first request
OpenAI-compatible endpoint with unified authentication and usage tracking.
# Preserve Unicode and shell metacharacters in the request body.
result=$(printf '%s' 'ewogICJtb2RlbCI6ICJieXRlZGFuY2Uvc2VlZGFuY2UvMi41L2ltYWdlLXRvLXZpZGVvIiwKICAiaW1hZ2UiOiAiaHR0cHM6Ly9wOS1hcmNvc2l0ZS5ieXRlaW1nLmNvbS90b3MtY24taS1nb283d3BhMHdjL2Y4ZmMxMDA4ZjIzYTQ5MDhiN2M4OTdlOGI3ZWI4N2RmfnRwbHYtZ29vN3dwYTB3Yy1pbWFnZS5pbWFnZSIsCiAgInByb21wdCI6ICJDcmVhdGUgYSAzNjAtZGVncmVlIG9yYml0aW5nIGNhbWVyYSBzaG90IGJhc2VkIG9uIHRoaXMgcGhvdG8uIiwKICAiZHVyYXRpb24iOiA1LAogICJyZXNvbHV0aW9uIjogIjcyMHAiLAogICJnZW5lcmF0ZV9hdWRpbyI6IHRydWUKfQ==' \
| base64 --decode \
| 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 @-)
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.5 Image to VideoThis model Bytedance | — | — | — | Jul 1, 2026 |
Bytedance | — | — | — | Jul 1, 2026 |
Bytedance | — | — | — | Jul 1, 2026 |
Bytedance | — | — | — | Jun 16, 2025 |
Bytedance | — | — | — | Jun 16, 2025 |
Bytedance | — | — | — | Dec 23, 2025 |
