Bytedance Seedance V1 Lite I2V 1080p API Documentation

Bytedance Seedance V1 Lite I2V 1080p API Documentation

Playground

Try it on WaveSpeedAI!

Seedance Lite creates coherent multi-shot image-to-video clips in 1080p with smooth, stable motion and accurate prompt following. Ready-to-use REST inference API, best performance, no coldstarts, affordable pricing.

Features

Seedance V1 Lite Image-to-Video 1080p is Full HD image-to-video generation model that transforms static images into stunning 1080p videos. With optional last-frame control, flexible durations up to 12 seconds, and multiple aspect ratios, create cinematic animations from any image.


Why It Stands Out

  • Full HD 1080p output: Generate high-resolution videos with exceptional clarity.
  • First and last frame control: Optionally specify an ending image for precise animation control.
  • Prompt Enhancer: Built-in AI-powered prompt optimization for better results.
  • Flexible duration: Generate videos from 2 to 12 seconds long.
  • Multiple aspect ratios: Wide range from ultrawide 21:9 to vertical 9:16.
  • Camera control: Option to fix camera position for stable shots.
  • Reproducibility: Use the seed parameter to recreate exact results.

Parameters

ParameterRequiredDescription
promptNoText description of desired motion and style.
imageYesSource image to animate (upload or public URL).
last_imageNoOptional ending frame image for controlled transitions.
durationNoVideo length: 2–12 seconds (default: 5).
aspect_ratioNoOutput aspect ratio (default: matches source).
camera_fixedNoFix camera position for stable shots.
seedNoSet for reproducibility; -1 for random.

Supported Aspect Ratios

Aspect RatioBest For
21:9Cinematic ultrawide content
16:9YouTube, widescreen displays
4:3Classic format, presentations
1:1Instagram posts, social media squares
3:4Portrait photos, Pinterest
9:16TikTok, Instagram Stories, Reels

How to Use

  1. Upload your source image — drag and drop a file or paste a public URL.
  2. Write a prompt (optional) — describe the motion you want. Use the Prompt Enhancer for AI-assisted optimization.
  3. Upload a last image (optional) — specify an ending frame for controlled animation.
  4. Set duration — choose video length from 2 to 12 seconds.
  5. Select aspect ratio — choose the format that fits your platform.
  6. Enable camera_fixed (optional) — check for stable, static camera shots.
  7. Click Run and wait for your video to generate.
  8. Preview and download the result.

Best Use Cases

  • Artwork Animation — Bring paintings, illustrations, and art to life.
  • Social Media Content — Create platform-optimized videos for any channel.
  • Marketing & Advertising — Animate product images and hero shots.
  • Creative Transitions — Use first/last frame control for smooth morphing effects.
  • Music Videos — Generate dynamic visuals from album art.

Pricing

DurationPrice
5 seconds$0.45
10 seconds$0.90

Billing Rules

  • Billed per 5 seconds at $0.45
  • Minimum duration: 2 seconds
  • Maximum duration: 12 seconds

Pro Tips for Best Quality

  • Use high-resolution, well-lit source images for optimal results.
  • Use last_image for controlled transitions between two specific frames.
  • Enable camera_fixed for professional-looking static shots.
  • Choose 21:9 for cinematic content, 9:16 for mobile-first platforms.
  • Start with shorter durations to test concepts, then extend for final versions.

Notes

  • Ensure uploaded image URLs are publicly accessible.
  • Processing time varies based on duration and current queue load.
  • Please ensure your prompts comply with content guidelines.

Authentication

For authentication details, please refer to the Authentication Guide.

API Endpoints

Submit Task & Query Result

set -euo pipefail

export WAVESPEED_API_KEY="your-api-key"

REQUEST_BODY=$(cat <<'JSON'
{
  "image": "https://interactive-examples.mdn.mozilla.net/media/cc0-images/painted-hand-298-332.jpg",
  "duration": 5,
  "aspect_ratio": "21:9",
  "camera_fixed": false,
  "seed": -1
}
JSON
)

# 1. Submit the prediction.
SUBMIT_RESPONSE=$(curl --silent --show-error --fail-with-body \
  -X POST "https://api.wavespeed.ai/api/v3/bytedance/seedance-v1-lite-i2v-1080p" \
  -H "Authorization: Bearer ${WAVESPEED_API_KEY}" \
  -H "Content-Type: application/json" \
  -d "${REQUEST_BODY}")

TASK=$(printf '%s' "${SUBMIT_RESPONSE}" | jq 'if type == "object" and has("data") then .data else . end')
PREDICTION_ID=$(printf '%s' "${TASK}" | jq -r '.id // empty')
if [ -z "${PREDICTION_ID}" ]; 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 type == "object" and has("data") then .data else . end')
  STATUS=$(printf '%s' "${RESULT}" | jq -r '.status // empty')

  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

Parameters

Task Submission Parameters

Request Parameters

ParameterTypeRequiredDefaultRangeDescription
imagestringYes-Input image supports both URL and Base64 format; The image file size cannot exceed 30MB, and the image resolution should not be less than 300*300px.
promptstringNo-The positive prompt for the generation. max length 2000
last_imagestringNo--URL of the ending image.
durationintegerNo52, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12The duration of the generated media in seconds.
aspect_ratiostringNo-21:9, 16:9, 4:3, 1:1, 3:4, 9:16The aspect ratio of the generated media.
camera_fixedbooleanNofalse-Whether to fix the camera position.
seedintegerNo-1-The random seed to use for the generation. -1 means a random seed will be used.

Response Parameters

ParameterTypeDescription
codeintegerHTTP status code (e.g., 200 for success)
messagestringStatus message (e.g., “success”)
data.idstringUnique identifier for the prediction, Task Id
data.modelstringModel ID used for the prediction
data.outputsarrayOutput values, usually URL strings; some models return text strings or structured result objects (empty when status is not completed)
data.urlsobjectObject containing related API endpoints
data.urls.getstringURL to retrieve the prediction result
data.statusstringStatus of the task: created, processing, completed, or failed
data.created_atstringISO timestamp of when the request was created (e.g., “2023-04-01T12:34:56.789Z”)
data.errorstringError message (empty if no error occurred)
data.timingsobjectObject containing timing details
data.timings.inferenceintegerInference time in milliseconds

Result Request Parameters

ParameterTypeRequiredDefaultDescription
idstringYes-Task ID

Result Response Parameters

ParameterTypeDescription
codeintegerHTTP status code (e.g., 200 for success)
messagestringStatus message (e.g., “success”)
dataobjectThe prediction data object containing all details
data.idstringUnique identifier for the prediction
data.modelstringModel ID used for the prediction
data.outputsarray<string | object>Array of generated outputs (empty when status is not completed). Items are usually URL strings, but may be text strings or structured result objects, depending on the model.
data.urlsobjectObject containing related API endpoints
data.urls.getstringURL to poll for the prediction result
data.statusstringStatus: created, processing, completed, or failed
data.created_atstringISO timestamp of when the request was created
data.errorstringError message (empty if no error occurred)
data.timingsobjectObject containing timing details
data.timings.inferenceintegerInference time in milliseconds
© 2026 WaveSpeedAI. All rights reserved.