Skip to main content
bytedance avatar

Seedance V1.5 Image to Video API

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

Transform static images into dynamic videos with synchronized audio. Supports text-guided animations and start/end frame keying.

Priced by resolution

Model Input

Input

The text prompt used to generate the video

The URL of the image used to generate video

The URL of the image the video ends with. Defaults to None.

The aspect ratio of the generated video

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

Duration of the video in seconds

Whether to fix the camera position

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

Whether to generate audio for the video

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 2Example output 3

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 Image to Video API

Seedance V1.5 Image to Video is a image-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/image-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/image-to-video \
  -H "Authorization: Key $MRUN_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "prompt": "your prompt here",
    "image_url": "https://example.com/input.jpg",
    "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/image-to-video/requests/$REQUEST_ID/status" \
  -H "Authorization: Key $MRUN_API_KEY"
curl "https://queue.modelrunner.run/bytedance/seedance-v1.5/image-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/image-to-video", {
  input: {
    "prompt": "your prompt here",
    "image_url": "https://example.com/input.jpg"
  },
});
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/image-to-video",
    headers=headers,
    json={
      "prompt": "your prompt here",
      "image_url": "https://example.com/input.jpg"
    },
).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
image_urlstring (uri)yesThe URL of the image used to generate video
end_image_urlstring (uri)noThe URL of the image the video ends with. Defaults to None.
aspect_ratioenumnoThe aspect ratio of the generated video Default: "16:9".
resolutionenumnoVideo resolution - 480p for faster generation, 720p for balance, 1080p for higher quality Default: "720p".
durationenumnoDuration of the video in seconds Default: "5".
camera_fixedbooleannoWhether to fix the camera position Default: false.
seedintegernoRandom seed to control video generation. Use -1 for random.
generate_audiobooleannoWhether to generate audio for the video Default: true.

Machine-readable: OpenAPI schema · llms.txt

Use Seedance V1.5 Image 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 Image 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/image-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/image-to-video on ModelRunner to generate video”. MCP setup guide.

Model Details

Model Details

Seedance 1.5 Image-to-Video transforms your static pictures into highly expressive, animated video clips. By interpreting your text prompt alongside a reference image, it generates smooth, realistic motion and seamlessly pairs it with synthesized audio. Whether you are animating a portrait, creating a cinematic scene, or producing short social media clips, this model provides an intuitive way to produce engaging multimedia content. You can run the model directly via our app's UI, tweak the settings to your liking, and effortlessly download the resulting video files locally.

**Features** - **Integrated Audio Generation**: Automatically synthesizes contextual audio, sound effects, or speech that aligns with the visual action described in your text prompt. - **Start and End Keyframes**: Uniquely supports both a starting frame (`image_url`) and an optional ending frame (`end_image_url`), giving you precise control over the video's visual transition and final state. - **Camera Stabilization**: Includes a camera lock feature to prevent automated panning or zooming, keeping the narrative focus entirely on the subject's internal movement.

**What it’s good at** - Bringing static character portraits to life with matching dialogue and realistic facial animations. - Creating smooth, visually stunning transitions between two distinct images using start and end frames. - Generating ready-to-publish short-form video content with instantly integrated sound tracks.

**Tips** - Use high-resolution, clear starting images for the best visual output and accurate subject rendering. - When generating speech, explicitly write the spoken dialogue in quotes within your text prompt (e.g., *A man says "I regret everything"*). - Make sure the environment and lighting implied by your prompt reasonably match the source image.

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

const result = await modelrunner.subscribe("bytedance/seedance-v1.5/image-to-video", { input: { prompt: "A man is crying and he says \"I shouldn't have done it. I regret everything\"", image_url: "https://example.com/crying_man_portrait.png", generate_audio: true, camera_fixed: false, duration: "5", resolution: "720p" }, });

console.log(result.data); ```