Skip to main content
bytedance avatar

Seedance V1.5 Text to Video API

bytedance/seedance-v1.5/text-to-video

Generate high-quality videos with synchronized audio directly from text prompts using Seedance 1.5.

Priced by resolution

Model Input

Input

The text prompt used to generate the video

The aspect ratio of the generated video

Whether to fix the camera position

Duration of the video in seconds

Whether to generate audio for the video

Video resolution - 480p for faster generation, 720p for balance, 1080p for higher quality

Random seed to control video generation. Use -1 for random.

You need to be logged in to run this model and view results.
Log in

Model Output

Output

Fill in the input form and click submit to see the output
Logs (1 lines)

Model Example Requests

Examples

Example output 1Example output 2

Model Pricing

Pricing

Model pricing varies by the target resolution of your output video.

480p
$0.029167
per second of output video
or around 34 seconds for $1
720p
$0.062208
per second of output video
or around 16 seconds for $1
1080p
$0.139968
per second of output video
or around 7 seconds for $1

Seedance V1.5 Text to Video API

Seedance V1.5 Text to Video is a text-to-video AI model by bytedance. On ModelRunner it runs through a REST API or via MCP from any AI assistant, at $0.062208 per second of video.

POST https://queue.modelrunner.run/bytedance/seedance-v1.5/text-to-video

cURL

# Submit a request to the queue. Input fields go at the top level of the
# body. The optional reserved "metadata" object holds your own flat string
# tags — stored on the request, never sent to the model; filter later with
# GET https://queue.modelrunner.run/requests?metadata=<url-encoded JSON>.
curl -X POST https://queue.modelrunner.run/bytedance/seedance-v1.5/text-to-video \
  -H "Authorization: Key $MRUN_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "prompt": "your prompt here",
    "metadata": {
      "project": "my-project"
    }
  }'
# → { "request_id": "...", "status_url": "...", "response_url": "..." }

# Poll status_url until "COMPLETED", then fetch the result
curl "https://queue.modelrunner.run/bytedance/seedance-v1.5/text-to-video/requests/$REQUEST_ID/status" \
  -H "Authorization: Key $MRUN_API_KEY"
curl "https://queue.modelrunner.run/bytedance/seedance-v1.5/text-to-video/requests/$REQUEST_ID" \
  -H "Authorization: Key $MRUN_API_KEY"

JavaScript

import { modelrunner } from "@modelrunner/client";

const result = await modelrunner.subscribe("bytedance/seedance-v1.5/text-to-video", {
  input: {
    "prompt": "your prompt here"
  },
});
console.log(result);

Python

import os
import requests

headers = {"Authorization": f"Key {os.environ['MRUN_API_KEY']}"}

submitted = requests.post(
    "https://queue.modelrunner.run/bytedance/seedance-v1.5/text-to-video",
    headers=headers,
    json={
      "prompt": "your prompt here"
    },
).json()

# Poll submitted["status_url"] until "COMPLETED", then:
result = requests.get(submitted["response_url"], headers=headers).json()

Input parameters

NameTypeRequiredDescription
promptstringyesThe text prompt used to generate the video
aspect_ratioenumnoThe aspect ratio of the generated video Default: "16:9".
camera_fixedbooleannoWhether to fix the camera position Default: false.
durationenumnoDuration of the video in seconds Default: "5".
generate_audiobooleannoWhether to generate audio for the video Default: true.
resolutionenumnoVideo resolution - 480p for faster generation, 720p for balance, 1080p for higher quality Default: "720p".
seedintegernoRandom seed to control video generation. Use -1 for random.

Machine-readable: OpenAPI schema · llms.txt

Use Seedance V1.5 Text to Video from Claude & Cursor (MCP)

Point Claude Code, Claude Desktop, Cursor, or any MCP client at the ModelRunner MCP server and Seedance V1.5 Text to Video becomes a tool your assistant can call directly — it authorizes via OAuth (no API key in config) and runs this model with the run_model tool using the endpoint bytedance/seedance-v1.5/text-to-video.

MCP client config (Claude Desktop, Cursor)

{
  "mcpServers": {
    "modelrunner": {
      "command": "npx",
      "args": ["-y", "mcp-remote", "https://mcp.modelrunner.run/mcp"]
    }
  }
}

Claude Code

claude mcp add --transport http modelrunner https://mcp.modelrunner.run/mcp

Then ask your assistant, for example: “Run bytedance/seedance-v1.5/text-to-video on ModelRunner to generate video”. MCP setup guide.

Model Details

Model Details

Seedance 1.5 Text-to-Video is a powerful generative model designed to create dynamic, high-quality videos directly from written descriptions. A key feature of this model is its native ability to generate synchronized audio alongside the video, providing a complete audiovisual experience from a single text prompt. Whether you are using the app interface to experiment or downloading the final renders, this model makes it incredibly simple to produce compelling multimedia content.

Features - Integrated Audio Generation — automatically generates matching soundscapes and dialogue to enhance the realism of the scene. - Camera Stability Control — offers the ability to fix the camera position for locked-off, stable shots. - Flexible Output — supports various resolutions and aspect ratios to fit different display formats. - Fast Generation — optimized for quick rendering of multi-second clips.

What it’s good at - Creating cinematic scenes, dramatic character moments, and vivid environments. - Generating complete audiovisual prototypes for storytelling, marketing, and social media. - Producing high-quality video concepts with perfectly matched sound effects.

Tips - Write highly descriptive prompts including action, environment, lighting, and specific sound cues (e.g., "footsteps on marble", "jury shifting"). - Use the `generate_audio` toggle to easily switch between complete audiovisual outputs and silent videos. - Enable `camera_fixed` when you need a static, steady shot without unwanted panning or dynamic camera movements.

## Safety & Content Moderation

The model includes a safety moderation feature to prevent the generation of inappropriate content. - **`enable_safety_checker`**: Controls the built-in safety filter. It is enabled by default (`true`) to ensure safe outputs. This setting can only be configured via the API and cannot be adjusted from the UI.

```javascript // Example configuring the safety checker via API const result = await modelrunner.subscribe("bytedance/seedance-v1.5/text-to-video", { input: { prompt: "A peaceful forest with birds chirping in the morning.", enable_safety_checker: true, } }); ```

To run via ModelRunner JavaScript client: ```javascript import { modelrunner } from "@modelrunner/client";

const result = await modelrunner.subscribe("bytedance/seedance-v1.5/text-to-video", { input: { prompt: "Defense attorney declaring 'Ladies and gentlemen, reasonable doubt isn't just a phrase, it's the foundation of justice itself', footsteps on marble, jury shifting, courtroom drama.", camera_fixed: false, generate_audio: true, aspect_ratio: "16:9", resolution: "720p", duration: "5" }, }); console.log(result.data); ```