Seedream 5.0 Pro yayında | Görsel Üretici'de deneyin →

Seedance 2.0 Mini Text to Video and Image to Video API

bytedance /

Seedance 2.0 Mini is ByteDance's faster, lower-cost video generation model for text to video and image to video. It creates cinematic multi-shot videos with AI camera control, consistent characters across scenes, 720P / 1080P output, 5-12s duration, and flexible aspect ratios. Ready-to-use REST inference API, best performance, no coldstarts, affordable pricing.

video-to-video
Giriş

Boşta

$0.95çalıştırma başına·~10 / $10

Sonraki:

ÖrneklerTümünü görüntüle

Transform the source video into a cozy midnight magical cooking scene while preserving the original chef, kitchen layout, camera movement, and main action. Keep the chef stirring the pot naturally, but add glowing herbs, spices, and small ingredients floating gently above the pot. Add warm candle-like lighting, copper reflections, soft magical particles, and a subtle blue flame flickering from the stove. The floating ingredients should circle slowly and naturally, then drift into the pot as if guided by magic. Keep the scene whimsical, cinematic, cozy, and realistic. Do not change the chef's identity, outfit, face, or main body movement. Change the chief to female.

İlgili Modeller

README

ByteDance Seedance 2.0 Mini Video Edit Turbo

ByteDance Seedance 2.0 Mini Video Edit Turbo edits an existing video with a text prompt using a faster turbo workflow. Upload a source video, describe the edit you want, optionally add reference images or audio, and generate an edited output in 720p or 1080p.

Why Choose This?

  • Turbo video editing
    Edit an input video with a faster turbo workflow.

  • Prompt-based editing
    Describe the edit you want in natural language, including style, subject changes, lighting, mood, or scene direction.

  • Reference-guided editing
    Add reference images to guide subject identity, visual style, or edit direction.

  • Reference audio support
    Add reference audio to guide audio generation for the edited output.

  • Native audio generation
    Generate native audio for the edited output, or preserve the input video's audio when generate_audio is disabled.

  • Flexible aspect ratios
    Choose from 16:9, 9:16, 4:3, 3:4, 1:1, and 21:9, or let the output adapt to the input video.

Parameters

ParameterRequiredDescription
promptYesDescribe the edit you want applied to the input video. The prefix Edit the input video. is added automatically.
videoYesURL of the input video to edit. Videos longer than 15 seconds are trimmed to 15 seconds.
reference_imagesNoOptional reference image URLs to guide the edit, such as subject identity or style.
reference_audiosNoOptional reference audio URLs to guide audio generation.
aspect_ratioNoAspect ratio of the output video: 16:9, 9:16, 4:3, 3:4, 1:1, or 21:9. Adapts to the input if not specified.
resolutionNoTurbo output resolution: 720p or 1080p. Default: 720p.
durationNoOutput video length in seconds. Range: 4–15. Auto-detected from the input video if not specified.
enable_web_searchNoEnable web search for real-time information. Default: false.
generate_audioNoWhether to generate native audio for the edited output. Default: true. When set to false, the input video's audio track is preserved on the output instead.

How to Use

  1. Write your edit prompt — Describe the change you want to apply to the input video.
  2. Upload the source video — Provide the video URL you want to edit.
  3. Add references optional — Upload reference images or reference audio when you need extra visual or audio guidance.
  4. Choose aspect ratio optional — Select an output aspect ratio, or leave it empty to adapt to the input video.
  5. Choose resolution — Select 720p or 1080p.
  6. Set duration optional — Choose an output duration from 4 to 15 seconds, or leave it empty for auto-detection.
  7. Configure audio optional — Keep generate_audio enabled for native audio generation, or disable it to preserve the input video's audio track.
  8. Submit — Generate the edited video.

Example Prompt

Change the video into a cinematic rainy night scene with neon reflections, dramatic lighting, smooth camera motion, realistic color grading, and a polished film look.

Pricing

Price depends on selected resolution, input video duration, and output duration.

Rate per Counted Second

ResolutionCost
720p$0.0475
1080p$0.0525

Example Costs: 5s Input Video + 5s Output Duration

ResolutionCost
720p$0.475
1080p$0.525

Example Costs: 10s Input Video + 10s Output Duration

ResolutionCost
720p$0.95
1080p$1.05

Example Costs: 15s Input Video + 15s Output Duration

ResolutionCost
720p$1.425
1080p$1.575

Best Use Cases

  • Turbo video editing — Apply prompt-based edits to source videos with a faster workflow.
  • Video restyling — Change lighting, mood, color, atmosphere, or visual style.
  • Reference-based edits — Use reference images to guide subject identity or visual direction.
  • Audio-guided editing — Use reference audio to guide generated audio output.
  • Short-form video editing — Create polished edited clips for social media, ads, concepts, and creative production.
  • Creative iteration — Test multiple edit directions from the same source video.

Pro Tips

  • Use a clear source video with visible subjects and stable motion.
  • Keep the prompt focused on the exact edit you want.
  • Add reference images when identity, style, or visual consistency matters.
  • Add reference audio when audio direction matters.
  • Use 720p for lower-cost generation and 1080p for higher-resolution output.
  • Disable generate_audio when you want to preserve the input video's original audio track.

Related Models

Not:Bu web sitesi, üçüncü taraflarca sağlanan yapay zeka modellerini kullanmaktadır.

Seedance 2.0 Mini Video Edit Turbo API — Quick start

Grab a WaveSpeedAI API key, then call POST https://api.wavespeed.ai/api/v3/bytedance/seedance-2.0-mini/video-edit-turbo with your input as JSON. The endpoint returns a prediction id. Start polling the result endpoint around every 2 seconds, increase the interval for long-running tasks, and stop on any terminal status. On completed, read output values from data.outputs. Examples for Seedance 2.0 Mini Video Edit Turbo below.

HTTP example
set -euo pipefail

: "${WAVESPEED_API_KEY:?Set WAVESPEED_API_KEY}"

REQUEST_BODY=$(cat <<'JSON'
{
    "prompt": "A cinematic shot of a city at sunset, soft golden light",
    "video": "https://interactive-examples.mdn.mozilla.net/media/cc0-videos/flower.mp4",
    "aspect_ratio": "16:9",
    "resolution": "720p",
    "enable_web_search": false,
    "generate_audio": true
}
JSON
)

# 1. Submit the prediction.
SUBMIT_RESPONSE=$(curl --silent --show-error --fail-with-body \
  -X POST "https://api.wavespeed.ai/api/v3/bytedance/seedance-2.0-mini/video-edit-turbo" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $WAVESPEED_API_KEY" \
  -d "$REQUEST_BODY")

TASK=$(printf '%s' "$SUBMIT_RESPONSE" | jq 'if has("data") then .data else . end')
PREDICTION_ID=$(printf '%s' "$TASK" | jq -r '.id')
if [ -z "$PREDICTION_ID" ] || [ "$PREDICTION_ID" = "null" ]; then
  printf 'Submission response did not contain a prediction id
' >&2
  exit 1
fi
RESULT_URL=$(printf '%s' "$TASK" | jq -r '.urls.get // empty')
if [ -z "$RESULT_URL" ]; then
  RESULT_URL="https://api.wavespeed.ai/api/v3/predictions/$PREDICTION_ID/result"
fi

# 2. Poll until the prediction finishes.
while true; do
  RESPONSE=$(curl --silent --show-error --fail-with-body "$RESULT_URL" \
    -H "Authorization: Bearer $WAVESPEED_API_KEY")
  RESULT=$(printf '%s' "$RESPONSE" | jq 'if has("data") then .data else . end')
  STATUS=$(printf '%s' "$RESULT" | jq -r '.status')
  case "$STATUS" in
    completed) printf '%s\n' "$RESULT" | jq '.outputs'; break ;;
    failed|cancelled|timeout) printf '%s\n' "$RESULT" | jq . >&2; exit 1 ;;
    created|processing) sleep 2 ;;
    *) printf 'Unexpected status: %s
' "$STATUS" >&2; exit 1 ;;
  esac
done
Node.js example
const submitUrl = "https://api.wavespeed.ai/api/v3/bytedance/seedance-2.0-mini/video-edit-turbo";
const apiKey = process.env.WAVESPEED_API_KEY;
if (!apiKey) throw new Error('Set WAVESPEED_API_KEY');

async function requestJson(url, options = {}) {
  const response = await fetch(url, options);
  if (!response.ok) throw new Error(await response.text());
  return response.json();
}

// 1. Submit the prediction.
const body = await requestJson(submitUrl, {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${apiKey}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
        "prompt": "A cinematic shot of a city at sunset, soft golden light",
        "video": "https://interactive-examples.mdn.mozilla.net/media/cc0-videos/flower.mp4",
        "aspect_ratio": "16:9",
        "resolution": "720p",
        "enable_web_search": false,
        "generate_audio": true
}),
});
const task = body.data ?? body;
if (!task.id) throw new Error("Submission response did not contain a prediction id");
const resultUrl = task.urls?.get ||
  `https://api.wavespeed.ai/api/v3/predictions/${task.id}/result`;

// 2. Poll until the prediction finishes.
while (true) {
  const resultBody = await requestJson(resultUrl, {
    headers: { "Authorization": `Bearer ${apiKey}` },
  });
  const result = resultBody.data ?? resultBody;
  if (result.status === "completed") {
    console.log(result.outputs);
    break;
  }
  if (["failed", "cancelled", "timeout"].includes(result.status)) throw new Error(JSON.stringify(result));
  if (!["created", "processing"].includes(result.status)) throw new Error("Unexpected status: " + result.status);
  await new Promise(resolve => setTimeout(resolve, 2000));
}
Python example
import json
import os
import time
from urllib.request import Request, urlopen

api_key = os.environ["WAVESPEED_API_KEY"]
headers = {"Authorization": f"Bearer {api_key}", "Content-Type": "application/json"}
payload = {
    "prompt": "A cinematic shot of a city at sunset, soft golden light",
    "video": "https://interactive-examples.mdn.mozilla.net/media/cc0-videos/flower.mp4",
    "aspect_ratio": "16:9",
    "resolution": "720p",
    "enable_web_search": False,
    "generate_audio": True
}

def request_json(url, data=None):
    request = Request(url, data=data, headers=headers, method="POST" if data else "GET")
    with urlopen(request) as response:
        return json.load(response)

# 1. Submit the prediction.
body = request_json("https://api.wavespeed.ai/api/v3/bytedance/seedance-2.0-mini/video-edit-turbo", json.dumps(payload).encode())
task = body.get("data", body)
if not task.get("id"):
    raise RuntimeError("Submission response did not contain a prediction id")
result_url = task.get("urls", {}).get("get") or f"https://api.wavespeed.ai/api/v3/predictions/{task['id']}/result"

# 2. Poll until the prediction finishes.
while True:
    result_body = request_json(result_url)
    result = result_body.get("data", result_body)
    status = result.get("status")
    if status == "completed":
        print(result.get("outputs", []))
        break
    if status in {"failed", "cancelled", "timeout"}:
        raise RuntimeError(result)
    if status not in {"created", "processing"}:
        raise RuntimeError(f"Unexpected status: {status}")
    time.sleep(2)

Seedance 2.0 Mini Video Edit Turbo API — Frequently asked questions

What is the Seedance 2.0 Mini Video Edit Turbo API?

Seedance 2.0 Mini Video Edit Turbo is a ByteDance model for video editing, exposed as a REST API on WaveSpeedAI. Seedance 2.0 Mini is ByteDance's faster, lower-cost video generation model for text to video and image to video. It creates cinematic multi-shot videos with AI camera control, consistent characters across scenes, 720P / 1080P output, 5-12s duration, and flexible aspect ratios. Ready-to-use REST inference API, best performance, no coldstarts, affordable pricing. You can call it programmatically or try it from the playground above.

How do I call the Seedance 2.0 Mini Video Edit Turbo API?

POST your input parameters to the model's REST endpoint (shown in the API tab of this playground) with your WaveSpeedAI API key in the Authorization header. Submission returns a prediction ID. Poll the result endpoint starting around every 2 seconds, increase the interval for long-running tasks, and stop on any terminal status. The playground generates production-oriented Python, JavaScript, and cURL examples with timeouts, transient-error handling, and safe GET retries. Full request/response shape is documented at https://wavespeed.ai/docs/docs-api/bytedance/bytedance-seedance-2.0-mini-video-edit-turbo.

How much does Seedance 2.0 Mini Video Edit Turbo cost per run?

Seedance 2.0 Mini Video Edit Turbo starts at $0.95 per run. That figure is the base price — the final charge scales with the parameters you set in the form (output size, length, count, references, or whatever knobs this model exposes), so a higher-quality or larger output costs more than a minimal one. The exact cost for your current input is shown live next to the Generate button before you submit, and the actual per-call charge is recorded on the prediction afterwards.

What inputs does Seedance 2.0 Mini Video Edit Turbo accept?

Key inputs: `prompt`, `video`, `aspect_ratio`, `resolution`, `reference_images`, `enable_web_search`. The full JSON schema (types, defaults, allowed values) is rendered above the Generate button and mirrored in the API reference at https://wavespeed.ai/docs/docs-api/bytedance/bytedance-seedance-2.0-mini-video-edit-turbo.

How long does Seedance 2.0 Mini Video Edit Turbo take to generate?

Median end-to-end generation time on WaveSpeedAI is around 222 seconds per request, based on recent successful runs. Queue time varies with global demand; live status is visible in the prediction record.

Can I use Seedance 2.0 Mini Video Edit Turbo outputs commercially?

Commercial usage rights depend on the model's license, set by its provider (ByteDance). The license summary appears on the model card above; see WaveSpeedAI's Terms of Service for platform-level conditions.

Seedance 2.0 Mini Text to Video and Image to Video API | WaveSpeedAI