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:
- Upload local image, video, or audio assets when the user does not already have HTTPS URLs.
- Pass the returned
runway://URI into the Seedance generation endpoint that matches the primary input type. - Read
task_idfrom the generation response. - Poll the Runway status endpoint until the task reaches
SUCCEEDEDorFAILED. - 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"
}
]
}