Skip to content

Runway Seedance 2

Runway Seedance 2 Integration

This page documents how to integrate Seedance 2 through Media Studio's Runway API adapter. It describes the Runway-backed surface only.

Endpoint Mapping

Runway exposes seedance2 and seedance2_fast through three video endpoint families. Choose the endpoint by the primary input type.

Capability Runway endpoint Media Studio endpoint Primary input
Text to video POST /v1/text_to_video /api/v1/runway/video/generation/generate-video-from-text prompt
Image to video POST /v1/image_to_video /api/v1/runway/video/generation/generate-video-from-image image_url
Video to video POST /v1/video_to_video /api/v1/runway/video/generation/generate-video-from-video video_uri

Full Workflow

Seedance generation is asynchronous. A complete client flow is:

  1. Upload local image, video, or audio assets when the user does not already have HTTPS URLs.
  2. Pass the returned runway:// URI into the Seedance generation endpoint that matches the primary input type.
  3. Read task_id from the generation response.
  4. Poll the Runway status endpoint until the task reaches SUCCEEDED or FAILED.
  5. Use the generated output URL from the successful status response. Runway output URLs are signed and expire.

1. Upload an asset

curl -X POST "$MEDIA_STUDIO_URL/api/v1/runway/upload-asset" \
  -H "X-API-Key: Bearer $API_ACCESS_TOKEN" \
  -F "file=@./product-reference.jpg"

Example response:

{
  "uri": "runway://...",
  "expires_in_hours": 24,
  "message": "Ephemeral Runway asset uploaded. Use uri in Seedance image/video/audio fields."
}

Use the returned uri in references, reference_videos, reference_audio, image_url, or video_uri, depending on the generation endpoint.

2. Create a Seedance task

For image-to-video with a locally uploaded reference image:

curl -X POST "$MEDIA_STUDIO_URL/api/v1/runway/video/generation/generate-video-from-image" \
  -H "X-API-Key: Bearer $API_ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "prompt": "Create a polished product advertisement with smooth cinematic movement.",
    "image_url": [
      {
        "uri": "runway://...",
        "position": "first"
      }
    ],
    "model": "seedance2",
    "aspect_ratio": "16:9",
    "resolution": "480p",
    "duration": 10
  }'

Example response:

{
  "status": "success",
  "result": {
    "task_id": "155d4e3f-3e7b-41d3-a47b-c1fbcf588201",
    "status": "PENDING",
    "provider": "runway"
  }
}

3. Poll for completion

curl -X GET "$MEDIA_STUDIO_URL/api/v1/runway/status/155d4e3f-3e7b-41d3-a47b-c1fbcf588201" \
  -H "X-API-Key: Bearer $API_ACCESS_TOKEN"

Poll until result.status is SUCCEEDED or FAILED.

Example successful response:

{
  "status": "success",
  "result": {
    "task_id": "155d4e3f-3e7b-41d3-a47b-c1fbcf588201",
    "status": "SUCCEEDED",
    "provider": "runway",
    "result": [
      "https://dnznrvs05pmza.cloudfront.net/..."
    ]
  }
}

Supported Seedance Inputs

Input Text to video Image to video Video to video
Prompt Required Required Required
Image reference references, up to 9 image_url, up to 2 prompt images Not used for seedance2
Video reference reference_videos, up to 3 Not used video_uri
Audio reference reference_audio, up to 3; requires an image or video reference Not supported by live Runway validation reference_audio, up to 3
Duration 5-15 seconds 5-15 seconds 5-15 seconds
Resolution seedance2: 480p, 720p, 1080p; seedance2_fast: 480p, 720p seedance2: 480p, 720p, 1080p; seedance2_fast: 480p, 720p seedance2: 480p, 720p, 1080p; seedance2_fast: 480p, 720p

Media Studio live-tested image-to-video with reference_audio using both HTTPS media and uploaded runway:// assets. Runway accepted task creation but later failed the task with Invalid input, so Media Studio rejects that combination locally. Use text-to-video with image/video references or video-to-video when audio guidance is required.

Pricing

Media Studio uses Runway's credit pricing for Seedance usage tracking. Runway credits are priced at $0.01 per credit in the developer portal. Source: https://docs.dev.runwayml.com/guides/pricing/

Model Resolution Runway price Media Studio unit price
seedance2 480p, 720p 36 credits/sec $0.36/sec
seedance2 1080p 40 credits/sec $0.40/sec
seedance2_fast 480p, 720p 29 credits/sec $0.29/sec

Resolution Mapping

Media Studio exposes a friendly resolution field and converts it to Runway's Seedance pixel-based ratio.

Aspect ratio 480p 720p 1080p
21:9 992:432 1470:630 2112:912
16:9 864:496 1280:720 1920:1080
4:3 752:560 1112:834 1440:1080
1:1 640:640 960:960 1080:1080
3:4 560:752 834:1112 1080:1440
9:16 496:864 720:1280 1080:1920

Use 480p for prompt and seed iteration, then reuse the approved prompt and seed at 1080p for final output. Runway documents Seedance duration as 5-15 seconds, so Media Studio validates that range.

Upload Local Assets

Use Media Studio's Runway upload endpoint when a user has a local image, video, or audio file. It proxies Runway's ephemeral upload API and returns a runway:// URI.

curl -X POST "$MEDIA_STUDIO_URL/api/v1/runway/upload-asset" \
  -H "X-API-Key: Bearer $API_ACCESS_TOKEN" \
  -F "file=@./reference-audio.mp3"

Example response:

{
  "uri": "runway://...",
  "expires_in_hours": 24,
  "message": "Ephemeral Runway asset uploaded. Use uri in Seedance image/video/audio fields."
}

Runway ephemeral uploads are valid for 24 hours, support files from 512 bytes to 200 MB, and can be used anywhere Runway accepts a URL or data URI.

Supported upload formats:

Asset type Extensions Content type
Image .jpg, .jpeg image/jpg, image/jpeg
Image .png image/png
Image .webp image/webp
Video .mp4 video/mp4
Video .mov video/quicktime
Video .mkv video/x-matroska
Video .webm video/webm
Video .3gp video/3gpp
Video .ogv video/ogg
Video, supported but discouraged .avi, .flv, .mpg, .mpeg video/x-msvideo, video/x-flv, video/mpeg
Audio .mp3 audio/mpeg, audio/mp3
Audio .wav audio/wav, audio/wave, audio/x-wav
Audio .flac audio/flac, audio/x-flac
Audio .m4a audio/mp4, audio/x-m4a
Audio .aac audio/aac, audio/x-aac

GIF images are not supported. Runway validates media content type, not only file extension.

Examples

Text To Video

{
  "prompt": "Ocean waves crash against black volcanic rocks at sunset with slow cinematic camera movement.",
  "model": "seedance2",
  "aspect_ratio": "16:9",
  "resolution": "480p",
  "duration": 5
}

Reference To Video With Audio

{
  "prompt": "A drummer performs an energetic solo on stage, with visuals cutting in sync to the beat.",
  "model": "seedance2",
  "aspect_ratio": "16:9",
  "resolution": "480p",
  "duration": 10,
  "references": [
    {
      "uri": "https://samplelib.com/jpeg/sample-city-park-400x300.jpg"
    }
  ],
  "reference_audio": [
    {
      "type": "audio",
      "uri": "https://samplelib.com/lib/preview/mp3/sample-9s.mp3"
    }
  ]
}

Image To Video

{
  "prompt": "The camera slowly pushes in as petals fall around the subject.",
  "image_url": [
    {
      "uri": "https://samplelib.com/jpeg/sample-city-park-400x300.jpg",
      "position": "first"
    }
  ],
  "model": "seedance2",
  "aspect_ratio": "16:9",
  "resolution": "480p",
  "duration": 10
}

Image To Video With Start And End Frames

{
  "prompt": "Transition from the first frame to the final product hero frame with smooth premium camera motion.",
  "image_url": [
    {
      "uri": "https://samplelib.com/jpeg/sample-city-park-400x300.jpg",
      "position": "first"
    },
    {
      "uri": "https://samplelib.com/jpeg/sample-birch-400x300.jpg",
      "position": "last"
    }
  ],
  "model": "seedance2",
  "aspect_ratio": "16:9",
  "resolution": "480p",
  "duration": 10
}

Video To Video

{
  "prompt": "Transform the parked cars and surrounding trees into a peaceful winter street scene with fresh snow, bare branches, soft overcast light, and gentle cinematic camera motion.",
  "video_uri": "https://samplelib.com/lib/preview/mp4/sample-5s.mp4",
  "model": "seedance2",
  "aspect_ratio": "16:9",
  "resolution": "480p",
  "duration": 10
}

Video To Video With Audio

{
  "prompt": "Transform the outdoor clip into a rhythmic nighttime street scene where the parked cars, trees, and lighting pulses move subtly in sync with the beat.",
  "video_uri": "https://samplelib.com/lib/preview/mp4/sample-5s.mp4",
  "model": "seedance2",
  "aspect_ratio": "16:9",
  "resolution": "480p",
  "duration": 10,
  "reference_audio": [
    {
      "type": "audio",
      "uri": "https://samplelib.com/lib/preview/mp3/sample-9s.mp3"
    }
  ]
}