ApiframeApiframe Docs
Video GenerationSeedance

Seedance 2.0

ByteDance Seedance 2.0 with multimodal references, native audio, web search, and adaptive aspect ratio.

Use in Apiframe Studio

POST /v2/videos/generatemodel: "seedance-2"

Seedance 2.0 is a major upgrade over the 1.x family. It supports multimodal reference inputs (images, videos, audio), native synchronized audio generation, web search grounding, and an adaptive aspect ratio mode.

See Video Generation overview for common request fields, response format, and error codes.

Model-specific parameters

ParameterTypeDefaultDescription
seedanceParams.durationinteger8Video duration in seconds, any integer from 4 to 15
seedanceParams.resolutionstring"720p"Output resolution: "480p", "720p", or "1080p"
seedanceParams.aspect_ratiostring"16:9"Aspect ratio: "21:9", "16:9", "4:3", "1:1", "3:4", "9:16", or "adaptive"
seedanceParams.start_imagestringURL or asset://{assetId} for the first frame
seedanceParams.end_imagestringURL or asset://{assetId} for the last frame
seedanceParams.reference_image_urlsstring[]Up to 9 reference image URLs or asset URIs
seedanceParams.reference_video_urlsstring[]Up to 3 reference video URLs or asset URIs
seedanceParams.reference_audio_urlsstring[]Up to 3 reference audio URLs or asset URIs
seedanceParams.generate_audiobooleantrueEnables synchronized audio generation. Audio is included in the base price.
seedanceParams.return_last_framebooleanfalseReturns the last frame of the generated video
seedanceParams.web_searchbooleanfalseEnables web search grounding for the prompt
seedanceParams.seedintegerOptional random seed for reproducible generations
seedanceParams.camera_fixedbooleanfalseLocks the camera for more static motion

Asset references

Reference fields (start_image, end_image, reference_image_urls, reference_video_urls, reference_audio_urls) accept both direct URLs and asset URIs in the format asset://{assetId}. Use the Assets API to pre-upload media and obtain asset IDs.

Credit cost

Pricing is per second of output. The total credit cost is credits-per-second × duration. Reference images and audio do not affect cost; only reference_video_urls does (it shifts pricing to the *-refvid rate because reference video changes the upstream generation mode).

VariantCredits / sec
480p2
720p4
1080p10
480p-refvid4
720p-refvid8
1080p-refvid20

Examples: a 5-second 720p clip costs 4 × 5 = 20 credits; a 5-second 1080p clip costs 10 × 5 = 50 credits; a 12-second 720p-refvid clip costs 8 × 12 = 96 credits.

Code examples

curl -X POST https://api.apiframe.ai/v2/videos/generate \
  -H "X-API-Key: afk_your_api_key_here" \
  -H "Content-Type: application/json" \
  -d '{
    "prompt": "A golden retriever puppy running through a meadow of wildflowers on a sunny day",
    "model": "seedance-2",
    "seedanceParams": {
      "duration": 8,
      "resolution": "720p",
      "aspect_ratio": "16:9",
      "generate_audio": true
    }
  }'
import requests

response = requests.post(
    "https://api.apiframe.ai/v2/videos/generate",
    headers={
        "X-API-Key": "afk_your_api_key_here",
        "Content-Type": "application/json",
    },
    json={
        "prompt": "A golden retriever puppy running through a meadow of wildflowers on a sunny day",
        "model": "seedance-2",
        "seedanceParams": {
            "duration": 8,
            "resolution": "720p",
            "aspect_ratio": "16:9",
            "generate_audio": True,
        },
    },
)
print(response.json())
const response = await fetch("https://api.apiframe.ai/v2/videos/generate", {
  method: "POST",
  headers: {
    "X-API-Key": "afk_your_api_key_here",
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    prompt: "A golden retriever puppy running through a meadow of wildflowers on a sunny day",
    model: "seedance-2",
    seedanceParams: {
      duration: 8,
      resolution: "720p",
      aspect_ratio: "16:9",
      generate_audio: true,
    },
  }),
});
console.log(await response.json());

Try it

POST/v2/videos/generateTry it

On this page