Kling 3.0 — Image-to-Video Elements
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>",
"elements": [
{
"characterImages": [
{}
],
"type": "<string>",
"name": "<string>",
"voice": "<string>"
}
],
"quality": "<string>",
"duration": "<string>",
"aspect_ratio": "<string>"
}
}
'import requests
url = "https://api.muvi.video/v1/jobs/submit"
payload = {
"model": "<string>",
"input": {
"prompt": "<string>",
"image_url": "<string>",
"elements": [
{
"characterImages": [{}],
"type": "<string>",
"name": "<string>",
"voice": "<string>"
}
],
"quality": "<string>",
"duration": "<string>",
"aspect_ratio": "<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>',
elements: [{characterImages: [{}], type: '<string>', name: '<string>', voice: '<string>'}],
quality: '<string>',
duration: '<string>',
aspect_ratio: '<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
}Kling 3.0
Kling 3.0 — Image-to-Video Elements
Generate videos with character reference elements using Kling 3.0 via PixelByte API
POST
/
v1
/
jobs
/
submit
Kling 3.0 — Image-to-Video Elements
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>",
"elements": [
{
"characterImages": [
{}
],
"type": "<string>",
"name": "<string>",
"voice": "<string>"
}
],
"quality": "<string>",
"duration": "<string>",
"aspect_ratio": "<string>"
}
}
'import requests
url = "https://api.muvi.video/v1/jobs/submit"
payload = {
"model": "<string>",
"input": {
"prompt": "<string>",
"image_url": "<string>",
"elements": [
{
"characterImages": [{}],
"type": "<string>",
"name": "<string>",
"voice": "<string>"
}
],
"quality": "<string>",
"duration": "<string>",
"aspect_ratio": "<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>',
elements: [{characterImages: [{}], type: '<string>', name: '<string>', voice: '<string>'}],
quality: '<string>',
duration: '<string>',
aspect_ratio: '<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 from an input image, prompt, and character reference elements with Kling 3.0. Supports multi-character compositions, std/pro quality tiers, and durations from 3 to 15 seconds.
| Property | Value |
|---|---|
| Provider | Kling |
| Model | Kling 3.0 |
| Capability | Image-to-Video Elements |
| Base Cost | 85,000 micro-cents/second ($0.085/sec) |
| Processing Time | ~240 seconds |
Request Body
string
required
Model slug. Use
kling/kling-elements-i2v-v3/image-to-video-elements.object
required
Input parameters for image-to-video elements generation.
Hide properties
Hide properties
string
required
Text description of the video to generate (max 2500 characters).
string
required
URL of the input scene image.
array
required
Array of character reference elements used to compose the video.
string
Generation quality. Default:
std. Options: std, pro.string
Video duration in seconds. Default:
5. Options: 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15.string
Video aspect ratio. Default:
16:9. Options: 16:9, 9:16, 1:1.string
HTTPS URL to receive a webhook notification when the job completes or fails.
Pricing
Base cost: 85,000 micro-cents per second ($0.085/sec)finalCost = baseCost × duration × quality
| Factor | Option | Multiplier |
|---|---|---|
| Duration | 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 | |
| Quality | std | 1x |
pro | 1.5x |
Default cost: 5 seconds, std quality = 85,000 × 5 × 1 = 425,000 micro-cents ($0.425)
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": "kling/kling-elements-i2v-v3/image-to-video-elements",
"input": {
"prompt": "Two friends greet each other and walk into a sunlit cafe",
"image_url": "https://example.com/image.jpg",
"elements": [
{
"characterImages": ["https://example.com/image.jpg"],
"type": "IMAGE",
"name": "Character A"
}
],
"quality": "std",
"duration": "5",
"aspect_ratio": "16:9"
}
}'
import requests
response = requests.post(
"https://api.muvi.video/v1/jobs/submit",
headers={
"Authorization": "Bearer YOUR_API_KEY",
"Content-Type": "application/json"
},
json={
"model": "kling/kling-elements-i2v-v3/image-to-video-elements",
"input": {
"prompt": "Two friends greet each other and walk into a sunlit cafe",
"image_url": "https://example.com/image.jpg",
"elements": [
{
"characterImages": ["https://example.com/image.jpg"],
"type": "IMAGE",
"name": "Character A"
}
],
"quality": "std",
"duration": "5",
"aspect_ratio": "16:9"
}
}
)
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: "kling/kling-elements-i2v-v3/image-to-video-elements",
input: {
prompt: "Two friends greet each other and walk into a sunlit cafe",
image_url: "https://example.com/image.jpg",
elements: [
{
characterImages: ["https://example.com/image.jpg"],
type: "IMAGE",
name: "Character A"
}
],
quality: "std",
duration: "5",
aspect_ratio: "16:9"
}
})
});
const data = await response.json();
console.log(data);
⌘I
