Seedance 2.0 — Omni Reference to Video
curl --request POST \
--url https://api.muvi.video/v1/jobs/submit \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"model": "<string>",
"input": {
"prompt": "<string>",
"aspect_ratio": "<string>",
"omni_images": [
{}
],
"omni_videos": [
{}
],
"omni_audios": [
{}
],
"duration": "<string>",
"resolution": "<string>",
"fps": "<string>"
}
}
'import requests
url = "https://api.muvi.video/v1/jobs/submit"
payload = {
"model": "<string>",
"input": {
"prompt": "<string>",
"aspect_ratio": "<string>",
"omni_images": [{}],
"omni_videos": [{}],
"omni_audios": [{}],
"duration": "<string>",
"resolution": "<string>",
"fps": "<string>"
}
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
model: '<string>',
input: {
prompt: '<string>',
aspect_ratio: '<string>',
omni_images: [{}],
omni_videos: [{}],
omni_audios: [{}],
duration: '<string>',
resolution: '<string>',
fps: '<string>'
}
})
};
fetch('https://api.muvi.video/v1/jobs/submit', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"jobId": "<string>",
"status": "<string>",
"estimatedCompletionTime": "<string>",
"costMicroCents": 123
}Seedance 2.0
Seedance 2.0 — Omni Reference to Video
Generate videos with multiple reference images, videos, and audio tracks using ByteDance’s Seedance 2.0 model
POST
/
v1
/
jobs
/
submit
Seedance 2.0 — Omni Reference to Video
curl --request POST \
--url https://api.muvi.video/v1/jobs/submit \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"model": "<string>",
"input": {
"prompt": "<string>",
"aspect_ratio": "<string>",
"omni_images": [
{}
],
"omni_videos": [
{}
],
"omni_audios": [
{}
],
"duration": "<string>",
"resolution": "<string>",
"fps": "<string>"
}
}
'import requests
url = "https://api.muvi.video/v1/jobs/submit"
payload = {
"model": "<string>",
"input": {
"prompt": "<string>",
"aspect_ratio": "<string>",
"omni_images": [{}],
"omni_videos": [{}],
"omni_audios": [{}],
"duration": "<string>",
"resolution": "<string>",
"fps": "<string>"
}
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
model: '<string>',
input: {
prompt: '<string>',
aspect_ratio: '<string>',
omni_images: [{}],
omni_videos: [{}],
omni_audios: [{}],
duration: '<string>',
resolution: '<string>',
fps: '<string>'
}
})
};
fetch('https://api.muvi.video/v1/jobs/submit', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"jobId": "<string>",
"status": "<string>",
"estimatedCompletionTime": "<string>",
"costMicroCents": 123
}Generate videos using multiple reference media inputs with ByteDance’s Seedance 2.0. Reference uploaded images, videos, and audio tracks directly inside your prompt with
@image1, @video1, and @audio1 placeholders.
| Property | Value |
|---|---|
| Provider | ByteDance |
| Model | Seedance 2.0 |
| Capability | Omni Reference to Video |
| Base Cost | 240,000 micro-cents/second ($0.24/sec) |
| Processing Time | ~300 seconds |
Request Body
string
required
Model slug. Use
bytedance/seedance-2.0/omni-reference for omni reference to video generation.object
required
Input parameters for omni reference to video generation.
Hide properties
Hide properties
string
required
Text description of the desired video. Use
@image1, @video1, @audio1 placeholders to reference uploaded media (max 5000 characters).string
required
Video aspect ratio. Default:
16:9. Options: 16:9, 9:16, 4:3, 3:4, 1:1, 21:9.array
Reference images (max 9). Reference them in the prompt as
@image1..@image9.array
Reference video clips (max 3). Reference them in the prompt as
@video1..@video3.array
Reference audio tracks (max 3). Reference them in the prompt as
@audio1..@audio3.string
Video duration in seconds. Default:
5. Options: 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15.string
Output resolution. Default:
720p. Options: 720p, 1440p.string
Frames per second. Default:
24. Options: 24, 30, 60.string
HTTPS URL to receive a webhook notification when the job completes or fails.
Pricing
Base cost: 240,000 micro-cents per second ($0.24/sec)finalCost = baseCost × duration × resolution × fps
| Factor | Option | Multiplier |
|---|---|---|
| Duration | 4 | 4x |
5 | 5x | |
6 | 6x | |
7 | 7x | |
8 | 8x | |
9 | 9x | |
10 | 10x | |
11 | 11x | |
12 | 12x | |
13 | 13x | |
14 | 14x | |
15 | 15x | |
| Resolution | 720p | 1x |
1440p | 2x | |
| FPS | 24 | 1x |
30 | 1.1x | |
60 | 1.25x |
Default cost: 5 seconds, 720p, 24 fps = 240,000 × 5 × 1 × 1 = 1,200,000 micro-cents ($1.20)
Response
string
Unique identifier for the submitted job.
string
Initial job status. Always
"pending" on successful submission.string
ISO 8601 timestamp of the estimated completion time.
number
The cost of the job in micro-cents.
Code Examples
curl -X POST https://api.muvi.video/v1/jobs/submit \
-H "Authorization: Bearer $PIXELBYTE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "bytedance/seedance-2.0/omni-reference",
"input": {
"prompt": "The character from @image1 walks through the city street shown in @image2",
"aspect_ratio": "16:9",
"omni_images": [
"https://example.com/image.jpg",
"https://example.com/image.jpg"
],
"duration": "5",
"resolution": "720p",
"fps": "24"
}
}'
import requests
response = requests.post(
"https://api.muvi.video/v1/jobs/submit",
headers={
"Authorization": "Bearer YOUR_API_KEY",
"Content-Type": "application/json"
},
json={
"model": "bytedance/seedance-2.0/omni-reference",
"input": {
"prompt": "The character from @image1 walks through the city street shown in @image2",
"aspect_ratio": "16:9",
"omni_images": [
"https://example.com/image.jpg",
"https://example.com/image.jpg"
],
"duration": "5",
"resolution": "720p",
"fps": "24"
}
}
)
data = response.json()
print(data)
const response = await fetch("https://api.muvi.video/v1/jobs/submit", {
method: "POST",
headers: {
"Authorization": "Bearer YOUR_API_KEY",
"Content-Type": "application/json"
},
body: JSON.stringify({
model: "bytedance/seedance-2.0/omni-reference",
input: {
prompt: "The character from @image1 walks through the city street shown in @image2",
aspect_ratio: "16:9",
omni_images: [
"https://example.com/image.jpg",
"https://example.com/image.jpg"
],
duration: "5",
resolution: "720p",
fps: "24"
}
})
});
const data = await response.json();
console.log(data);
⌘I
