Skip to content

Seedance

Seedance is an advanced video generation model series supporting text-to-video and image-to-video generation, with multi-modal reference inputs available in the latest 2.0 models.

POST https://llm.siraya.ai/v1/videos/generations

Supported Models

Model ID Description
ByteDance-Seedance-1.0-pro Base version
ByteDance-Seedance-1.0-pro-fast Base fast version
ByteDance-Seedance-1.5-pro Advanced version
SIRAYA-Seedance-2.0 Latest version, supports multi-modal references
SIRAYA-Seedance-2.0-fast Latest fast version, supports multi-modal references
Authorization string Required
Your API Key (e.g., `Bearer `).

Body

model string Required
The model ID (e.g., `ByteDance-Seedance-1.5-pro`, `SIRAYA-Seedance-2.0`).
prompt string Required
A text description for the video content.
seconds integer
The duration of the video in seconds. Supported values: `4` to `15`.
resolution string
Video resolution: `480p`, `720p`, `1080p`, `4k`.
aspect_ratio string
Aspect ratio of the video: `16:9`, `9:16`, or `1:1`.
image_url string
Input image URL for image-to-video generation.
seed integer
Random seed for reproducibility. The same seed produces the same video.
generate_audio boolean
Whether to generate an audio track for the video.
frame_images array
First-frame and/or last-frame image control. Each item has a `frame_type` (`first_frame` or `last_frame`) and an `image_url`. Cannot be used together with `input_references`.
input_references array
Multi-modal reference materials (image, video, audio) to influence style or content. **Only supported by `SIRAYA-Seedance-2.0` and `SIRAYA-Seedance-2.0-fast`.** Cannot be used together with `frame_images`.
extra_body map
Specific parameters.
async boolean Default: false
When false, the request waits for generation to finish and returns the completed video URL. When true, it returns immediately with a video id you poll for status. See Asynchronous generation.
callbackUrl string
Only used when async is true. A URL the router will POST to once generation completes (or fails), so you don't have to poll.
curl https://llm.siraya.ai/v1/videos/generations \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer <API_KEY>" \
  -d '{
    "model": "ByteDance-Seedance-1.5-pro",
    "prompt": "A shiba inu running on the beach",
    "resolution": "720p",
    "aspect_ratio": "16:9",
    "seconds": 5
  }'
import requests

url = "https://llm.siraya.ai/v1/videos/generations"
headers = {
    "Content-Type": "application/json",
    "Authorization": "Bearer <API_KEY>"
}
data = {
    "model": "ByteDance-Seedance-1.5-pro",
    "prompt": "A shiba inu running on the beach",
    "resolution": "720p",
    "aspect_ratio": "16:9",
    "seconds": 5
}

response = requests.post(url, headers=headers, json=data)
print(response.json())

Example Response

{
    "data": [
        {
            "url": "https://resources.siraya.ai/video/generated%2Fsiraya_123.mp4",
            "revised_prompt": ""
        }
    ],
    "created": 1760347750
}

Mode Exclusivity

The following three modes are mutually exclusive — only one can be used per request:

Mode Parameter Use Case
First-frame control frame_images (first_frame) Pin the exact first frame
First + last frame control frame_images (first_frame + last_frame) Pin both start and end frames
Multi-modal reference input_references Use reference materials for style/content (Seedance 2.0 only)

Note: If you need both reference materials and first-frame control, use input_references and describe the desired first frame in your prompt. The model will follow the description but cannot guarantee pixel-level accuracy. Use frame_images when exact frame consistency is required.

frame_images

Specifies the starting and/or ending frame images for the video. The AI generates content between the provided frames.

"frame_images": [
  {
    "frame_type": "first_frame",
    "image_url": "https://your-domain.com/start.jpg"
  }
]
Field Description
frame_type first_frame (start frame) or last_frame (end frame)
image_url Publicly accessible URL of the image

input_references (Seedance 2.0 only)

Pass image, video, or audio files as generation references via input_references. Only supported by SIRAYA-Seedance-2.0 and SIRAYA-Seedance-2.0-fast.

Reference material with a human face

If the reference image or video contains a human face (not a celebrity or public figure), you can't pass a public URL — it must first be uploaded as a trusted asset and referenced as asset://{assetId}. See Using Assets with Seedance 2.0 for the full workflow, including motion-reference and character-consistency use cases.

"input_references": [
  {
    "type": "image",
    "url": "https://your-domain.com/character.jpg",
    "role": "reference_image"
  }
]
Field Description
type image, video, or audio
url Publicly accessible URL of the reference material
role reference_image, reference_video, or reference_audio