File size: 3,270 Bytes
0749636 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 | ---
language:
- en
license: other
pipeline_tag: text-to-video
tags:
- seedance
- text-to-video
- image-to-video
inference: false
---
# Seedance API
**Model Page:** [Seedance API](https://apiframe.ai/models/seedance-2.5)
Community model card for calling Seedance through a REST API.
This repo documents the `seedance-2.5` model as exposed by Apiframe: ByteDance Seedance 2.5, text-to-video and image-to-video, 4–30s single-pass clips, native synced audio, up to 30 reference images / 10 reference videos / 10 reference audio tracks. Related ids on the same endpoint: `seedance-2`, `seedance-2-fast`, `seedance-2-mini`.
This repository does not host weights. Seedance is a closed model. Inference runs remotely.
<video src="https://apiframe.ai/models-examples/seedance-2.5-keeper-spiral-staircase-dusk.mp4" width="280" muted controls></video>
## Model description
| | |
|---|---|
| Architecture | Seedance 2.5 |
| Task | text-to-video; image-to-video |
| Output | 1 video (`videoUrl`) |
| Duration | 4–30 seconds |
| Aspect ratios | `21:9`, `16:9`, `4:3`, `1:1`, `3:4`, `9:16` |
| Resolutions | `480p`, `720p` |
| Typical latency | ~300s |
## How to use
```bash
pip install requests
```
```python
import os
import time
import requests
API = "https://api.apiframe.ai/v2"
headers = {
"X-API-Key": os.environ["APIFRAME_API_KEY"],
"Content-Type": "application/json",
}
job = requests.post(
f"{API}/videos/generate",
headers=headers,
json={
"model": "seedance-2.5",
"prompt": "A golden retriever puppy running through a meadow of wildflowers on a sunny day",
"seedanceParams": {
"duration": 8,
"resolution": "720p",
"aspect_ratio": "16:9",
"generate_audio": True,
},
},
).json()
while True:
result = requests.get(f"{API}/jobs/{job['jobId']}", headers=headers).json()
if result["status"] in ("COMPLETED", "FAILED"):
break
time.sleep(2)
print(result.get("result"))
```
`result["videoUrl"]` is the CDN URL. Pass `webhookUrl` on the generate call if you do not want to poll.
Start/end frames and reference media are mutually exclusive. Do not send `start_image` together with `reference_image_urls`, `reference_video_urls`, or `reference_audio_urls`.
### Image-to-video
```python
import os
import requests
headers = {
"X-API-Key": os.environ["APIFRAME_API_KEY"],
"Content-Type": "application/json",
}
requests.post(
"https://api.apiframe.ai/v2/videos/generate",
headers=headers,
json={
"model": "seedance-2.5",
"prompt": "slow dolly in, lantern light on wet stone, rain outside",
"seedanceParams": {
"start_image": "https://example.com/frame.jpg",
"duration": 8,
"resolution": "720p",
"aspect_ratio": "16:9",
},
},
)
```
Swap `model` for `seedance-2` (up to 4K, 15s), `seedance-2-fast`, or `seedance-2-mini`.
## Limitations
- Closed model. No weights, fine-tuning, or local inference.
- Requires an Apiframe API key (`X-API-Key`).
- Commercial use follows ByteDance's terms.
- Generated media is retained on the CDN for 90 days.
## License
Outputs are subject to ByteDance's terms. This card is documentation only.
|