Bytedance Seedance 2.0 Fast Video Edit
Playground
Try it on WavespeedAI!Seedance 2.0 Fast (Video-Edit) edits an input video from a natural-language prompt at a faster, cheaper tier. Built on ByteDance Seed’s unified multimodal architecture, it preserves subject identity, composition, and motion while rewriting lighting, style, weather, environment, or specific elements as instructed.
Features
Seedance 2.0 Fast Video-Edit
Seedance 2.0 Fast Video-Edit is the faster, cheaper tier of Seedance 2.0 Video-Edit. It edits an input video from a natural-language prompt — change lighting, weather, style, environment, or specific elements while preserving subject identity, composition, and motion of the original.
Key Features
- Conversational video editing — Describe the change in plain language; the model rewrites the scene while keeping the original motion intact.
- Subject and motion preservation — Faces, objects, and camera movement from the input video stay consistent through the edit.
- Multi-reference support — Optionally guide style, character identity, or audio with reference images and audio clips.
- Native audio synchronization — Generates synchronized audio in a single pass.
- Faster, cheaper — ~19% cheaper than the standard Seedance 2.0 Video-Edit at every resolution.
Parameters
| Parameter | Required | Description |
|---|---|---|
| prompt | Yes | Describe the edit. The prefix Edit the input video. is added automatically. |
| video | Yes | Input video URL. Videos longer than 15 s are trimmed to 15 s. |
| reference_images | No | Optional reference images for style or character guidance. |
| reference_audios | No | Optional reference audio for audio guidance. |
| duration | No | Output length in seconds (4-15). Auto-detected from the input video if not specified. |
| aspect_ratio | No | 16:9, 9:16, 4:3, 3:4, 1:1, 21:9. Adapts to the input if not specified. |
| resolution | No | 480p, 720p (default), or 1080p. |
| enable_web_search | No | Enable web search for real-time context. |
How to Use
- Upload the input video. Anything longer than 15 s is trimmed to the first 15 s automatically.
- Write the edit prompt. Describe the change you want — the prefix
Edit the input video.is added for you. - (Optional) Add references. Reference images can constrain style or identity; reference audio can constrain the soundtrack.
- (Optional) Set a duration. Auto-detected from the input video length if not provided.
- Run. Receive the edited video with synchronized audio.
Pricing
Billed per second across input duration + output duration. Input duration is capped at 15 s.
| Resolution | Per second |
|---|---|
| 480p | $0.065 |
| 720p | $0.13 |
| 1080p | $0.325 |
Examples (input 5 s, output 5 s = 10 billed seconds):
| Resolution | Cost |
|---|---|
| 480p | $0.65 |
| 720p | $1.30 |
| 1080p | $3.25 |
Examples (input 12 s, output 12 s = 24 billed seconds):
| Resolution | Cost |
|---|---|
| 480p | $1.56 |
| 720p | $3.12 |
| 1080p | $7.80 |
Notes
- Inputs longer than 15 s are trimmed to 15 s before editing — billing reflects the trimmed length.
- Auto-detected duration matches the input length (rounded up), clamped to the 4-15 s range.
- Native audio generation is included.
Related Models
- Seedance 2.0 Video-Edit — Standard tier of this model.
- Seedance 2.0 Fast Image-to-Video — Fast image-to-video generation.
- Seedance 2.0 Fast Text-to-Video — Fast text-to-video generation.
Authentication
For authentication details, please refer to the Authentication Guide.
API Endpoints
Submit Task & Query Result
# Submit the task
curl --location --request POST "https://api.wavespeed.ai/api/v3/bytedance/seedance-2.0-fast/video-edit" \
--header "Content-Type: application/json" \
--header "Authorization: Bearer ${WAVESPEED_API_KEY}" \
--data-raw '{
"resolution": "720p",
"enable_web_search": false
}'
# Get the result
curl --location --request GET "https://api.wavespeed.ai/api/v3/predictions/${requestId}/result" \
--header "Authorization: Bearer ${WAVESPEED_API_KEY}"
Parameters
Task Submission Parameters
Request Parameters
| Parameter | Type | Required | Default | Range | Description |
|---|---|---|---|---|---|
| prompt | string | Yes | - | Describe the edit you want applied to the input video. The prefix "Edit the input video." is added automatically. | |
| video | string | Yes | - | URL of the input video to edit. Videos longer than 15s are trimmed to 15s. | |
| reference_images | array | No | - | - | Optional reference image URLs to guide the edit (subject identity, style, etc.). |
| reference_audios | array | No | - | - | Optional reference audio URLs to guide audio generation. |
| aspect_ratio | string | No | - | 16:9, 9:16, 4:3, 3:4, 1:1, 21:9 | Aspect ratio of the output video. Adapts to the input if not specified. |
| resolution | string | No | 720p | 480p, 720p, 1080p | Output video resolution. |
| duration | integer | No | - | 4 ~ 15 | Output video length in seconds (4-15). Auto-detected from the input video if not specified. |
| enable_web_search | boolean | No | false | - | Enable web search for real-time information. |
Response Parameters
| Parameter | Type | Description |
|---|---|---|
| code | integer | HTTP status code (e.g., 200 for success) |
| message | string | Status message (e.g., “success”) |
| data.id | string | Unique identifier for the prediction, Task Id |
| data.model | string | Model ID used for the prediction |
| data.outputs | array | Array of URLs to the generated content (empty when status is not completed) |
| data.urls | object | Object containing related API endpoints |
| data.urls.get | string | URL to retrieve the prediction result |
| data.has_nsfw_contents | array | Array of boolean values indicating NSFW detection for each output |
| data.status | string | Status of the task: created, processing, completed, or failed |
| data.created_at | string | ISO timestamp of when the request was created (e.g., “2023-04-01T12:34:56.789Z”) |
| data.error | string | Error message (empty if no error occurred) |
| data.timings | object | Object containing timing details |
| data.timings.inference | integer | Inference time in milliseconds |
Result Request Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| id | string | Yes | - | Task ID |
Result Response Parameters
| Parameter | Type | Description |
|---|---|---|
| code | integer | HTTP status code (e.g., 200 for success) |
| message | string | Status message (e.g., “success”) |
| data | object | The prediction data object containing all details |
| data.id | string | Unique identifier for the prediction, the ID of the prediction to get |
| data.model | string | Model ID used for the prediction |
| data.outputs | object | Array of URLs to the generated content (empty when status is not completed). |
| data.urls | object | Object containing related API endpoints |
| data.urls.get | string | URL to retrieve the prediction result |
| data.status | string | Status of the task: created, processing, completed, or failed |
| data.created_at | string | ISO timestamp of when the request was created (e.g., “2023-04-01T12:34:56.789Z”) |
| data.error | string | Error message (empty if no error occurred) |
| data.timings | object | Object containing timing details |
| data.timings.inference | integer | Inference time in milliseconds |