Wan 2.7 — Image 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>",
"image_url": "<string>",
"end_frame_url": "<string>",
"input_video_url": "<string>",
"audio_url": "<string>",
"negative_prompt": "<string>",
"enable_prompt_expansion": true,
"seed": 123,
"duration": "<string>",
"resolution": "<string>"
}
}
'import requests
url = "https://api.muvi.video/v1/jobs/submit"
payload = {
"model": "<string>",
"input": {
"prompt": "<string>",
"image_url": "<string>",
"end_frame_url": "<string>",
"input_video_url": "<string>",
"audio_url": "<string>",
"negative_prompt": "<string>",
"enable_prompt_expansion": True,
"seed": 123,
"duration": "<string>",
"resolution": "<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>',
image_url: '<string>',
end_frame_url: '<string>',
input_video_url: '<string>',
audio_url: '<string>',
negative_prompt: '<string>',
enable_prompt_expansion: true,
seed: 123,
duration: '<string>',
resolution: '<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
}Wan 2.7
Wan 2.7 — Image to Video
Generate image to video outputs using Alibaba+‘s Wan 2.7 model via PixelByte API
POST
/
v1
/
jobs
/
submit
Wan 2.7 — Image 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>",
"image_url": "<string>",
"end_frame_url": "<string>",
"input_video_url": "<string>",
"audio_url": "<string>",
"negative_prompt": "<string>",
"enable_prompt_expansion": true,
"seed": 123,
"duration": "<string>",
"resolution": "<string>"
}
}
'import requests
url = "https://api.muvi.video/v1/jobs/submit"
payload = {
"model": "<string>",
"input": {
"prompt": "<string>",
"image_url": "<string>",
"end_frame_url": "<string>",
"input_video_url": "<string>",
"audio_url": "<string>",
"negative_prompt": "<string>",
"enable_prompt_expansion": True,
"seed": 123,
"duration": "<string>",
"resolution": "<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>',
image_url: '<string>',
end_frame_url: '<string>',
input_video_url: '<string>',
audio_url: '<string>',
negative_prompt: '<string>',
enable_prompt_expansion: true,
seed: 123,
duration: '<string>',
resolution: '<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 image to video outputs with Alibaba+‘s Wan 2.7 model. Submitted as an asynchronous job and delivered via webhook or polling.
| Property | Value |
|---|---|
| Provider | Alibaba+ |
| Model | Wan 2.7 |
| Capability | Image to Video |
| Base Cost | 150,000 micro-cents/second ($0.15/sec) |
| Processing Time | ~200 seconds |
Request Body
string
required
Model slug. Use
alibaba-plus/wan-2.7/image-to-video for image to video generation.object
required
Input parameters for image to video generation.
Hide properties
Hide properties
string
required
Text description of the video to generate (max 5000 characters).
string
required
First frame image.
string
Optional last frame image.
string
Optional input clip for continuation mode.
string
Optional audio guide.
string
Text describing elements you want to avoid in the output (max 500 characters).
boolean
Automatically expand the prompt for richer outputs. Default:
true.integer
Random seed for reproducible generation.
string
Video duration in seconds. Default:
"5". Options: 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15.string
Output resolution. Default:
"1080p". Options: 720p, 1080p.string
HTTPS URL to receive a webhook notification when the job completes or fails.
Pricing
Base cost: 150,000 micro-cents per second ($0.15/sec)finalCost = baseCost × resolution × duration
| Factor | Option | Multiplier |
|---|---|---|
| Resolution | 1080p | 1.5x |
720p | 1x | |
| Duration | 2 | 2x |
3 | 3x | |
4 | 4x | |
5 | 5x | |
6 | 6x | |
7 | 7x | |
8 | 8x | |
9 | 9x | |
10 | 10x | |
11 | 11x | |
12 | 12x | |
13 | 13x | |
14 | 14x | |
15 | 15x |
Default cost: 1080p resolution, 5 duration = 150,000 × 1.5 × 5 = 1,125,000 micro-cents ($1.125)
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": "alibaba-plus/wan-2.7/image-to-video",
"input": {
"prompt": "A serene lake at sunrise with mist rolling over the water",
"image_url": "https://example.com/image.jpg",
"duration": "5",
"resolution": "1080p"
}
}'
import requests
response = requests.post(
"https://api.muvi.video/v1/jobs/submit",
headers={
"Authorization": "Bearer YOUR_API_KEY",
"Content-Type": "application/json"
},
json={
"model": "alibaba-plus/wan-2.7/image-to-video",
"input": {
"prompt": "A serene lake at sunrise with mist rolling over the water",
"image_url": "https://example.com/image.jpg",
"duration": "5",
"resolution": "1080p"
}
}
)
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: "alibaba-plus/wan-2.7/image-to-video",
input: {
prompt: "A serene lake at sunrise with mist rolling over the water",
image_url: "https://example.com/image.jpg",
duration: "5",
resolution: "1080p"
}
})
});
const data = await response.json();
console.log(data);
⌘I
