Skip to main content
bytedance avatar

Seedance 2.0 Mini Text to Video API

bytedance/seedance-v2-mini/text-to-video

Generate a short video with synchronized audio from a text prompt at 480p or 720p — the cheapest tier of the Seedance 2.0 family, built for drafting and high-volume work.

0.113 per second of output video

Model Input

Input

Describe the scene, the action, the camera move, and the sound you want. English, Chinese, Japanese, Indonesian, Spanish and Portuguese prompts are all understood.

Output resolution of the clip. Higher resolutions cost more per second of video.

Frame shape of the clip. Use adaptive to let the model pick the framing.

Min: 4 - Max: 15

Clip length in seconds.

Additional Settings

Customize your input with more control.

Generate a synchronized soundtrack (dialogue, ambience and sound effects) together with the picture. Set false for a silent clip; the price is the same either way.

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

Model Output

Output

Loading
Generated in 78 seconds
Logs (1 lines)

Model Example Requests

Examples

Example output 1Example output 2

Seedance 2.0 Mini Text to Video API

Seedance 2.0 Mini 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.113 per second of video.

POST https://queue.modelrunner.run/bytedance/seedance-v2-mini/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-v2-mini/text-to-video \
  -H "Authorization: Key $MRUN_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "prompt": "A lone surfer paddles out through grey dawn swell, their silhouette rising and dropping as a larger set builds on the…",
    "duration": 5,
    "resolution": "720p",
    "aspect_ratio": "21:9",
    "generate_audio": true,
    "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-v2-mini/text-to-video/requests/$REQUEST_ID/status" \
  -H "Authorization: Key $MRUN_API_KEY"
curl "https://queue.modelrunner.run/bytedance/seedance-v2-mini/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-v2-mini/text-to-video", {
  input: {
    "prompt": "A lone surfer paddles out through grey dawn swell, their silhouette rising and dropping as a larger set builds on the…",
    "duration": 5,
    "resolution": "720p",
    "aspect_ratio": "21:9",
    "generate_audio": true
  },
});
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-v2-mini/text-to-video",
    headers=headers,
    json={
      "prompt": "A lone surfer paddles out through grey dawn swell, their silhouette rising and dropping as a larger set builds on the…",
      "duration": 5,
      "resolution": "720p",
      "aspect_ratio": "21:9",
      "generate_audio": true
    },
).json()

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

Input parameters

NameTypeRequiredDescription
promptstringyesDescribe the scene, the action, the camera move, and the sound you want. English, Chinese, Japanese, Indonesian, Spanish and Portuguese prompts are all understood.
resolutionenumnoOutput resolution of the clip. Higher resolutions cost more per second of video. Default: "720p".
aspect_ratioenumnoFrame shape of the clip. Use adaptive to let the model pick the framing. Default: "16:9".
durationintegernoClip length in seconds. Default: 5.
generate_audiobooleannoGenerate a synchronized soundtrack (dialogue, ambience and sound effects) together with the picture. Set false for a silent clip; the price is the same either way. Default: true.

Machine-readable: OpenAPI schema · llms.txt

Use Seedance 2.0 Mini Text to Video from Claude & Cursor (MCP)

Point Claude Code, Claude Desktop, Cursor, or any MCP client at the ModelRunner MCP server and Seedance 2.0 Mini 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-v2-mini/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-v2-mini/text-to-video on ModelRunner to generate video”. MCP setup guide.

Model Details

Model Details

Seedance 2.0 Mini is the cheapest way into the Seedance 2.0 video family: a written prompt becomes a short clip with a synchronized soundtrack, so dialogue, ambience, and sound effects are generated together with the picture rather than dubbed on afterwards. Clips run 4 to 15 seconds at 24 fps, at 480p or 720p, in seven frame shapes from 21:9 cinematic to vertical, with prompts understood in English, Chinese, Japanese, Indonesian, Spanish, and Portuguese. It costs about half the flagship tier per second and returns a clip faster — the tier for drafting, storyboarding, and high-volume work.

One price note: Mini's 720p rate sits just above the flagship tier's 480p rate — choose between them on resolution and fidelity, not price. Mini buys 720p at Mini quality; the flagship's 480p buys less resolution at flagship quality.

## Best for - Cheap, high-volume clip generation where cost matters more than fidelity - Drafting and storyboarding shots before committing to a higher tier - Social posts, ad variants, and quick b-roll that still need sound - Trying many prompt variants of one scene in a single sitting

## Choose another model when - You need 1080p, or the family's best motion and prompt adherence — use `bytedance/seedance-v2/text-to-video` - You want a middle tier — better than Mini, still 720p, cheaper than the flagship — use `bytedance/seedance-v2-fast/text-to-video` - You want to animate a photo you already have — use `bytedance/seedance-v2-mini/image-to-video`, which takes your still as the first frame - You need reference-image consistency, pinned first/last frames, or footage restyled — flagship tier only: `bytedance/seedance-v2/reference-to-video`, `bytedance/seedance-v2/first-last-frame`, `bytedance/seedance-v2/video-to-video`

## Tips - Describe the sound as explicitly as the picture ("gulls calling, waves on shingle") — the audio track follows the prompt - Set `generate_audio` to false for a silent clip; the price is unchanged either way - Draft at `480p`, then re-run the keeper at `720p` — resolution is the largest cost driver and duration the second

## Limitations - As the smallest tier, fidelity and prompt adherence sit below the Fast and flagship tiers — the trade for the price - 720p is the ceiling here, and fast motion or crowds smear at 480p - No seed and no camera lock: runs are not reproducible, and camera moves go in the prompt - Long multi-shot prompts drift in character, wardrobe, and lighting; in-frame text is frequently misspelled

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

const result = await modelrunner.subscribe("bytedance/seedance-v2-mini/text-to-video", { input: { prompt: "A market stall at first light, steam rising from a tea urn, the vendor stacking crates as a tram rattles past, city hum and clinking glass", resolution: "720p", aspect_ratio: "9:16", duration: 6, generate_audio: true, }, }); ```