Gen 4 Image — Edit Image
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_urls": [
{}
],
"aspect_ratio": "<string>",
"resolution": "<string>",
"style": "<string>",
"diversity": 123
}
}
'import requests
url = "https://api.muvi.video/v1/jobs/submit"
payload = {
"model": "<string>",
"input": {
"prompt": "<string>",
"image_urls": [{}],
"aspect_ratio": "<string>",
"resolution": "<string>",
"style": "<string>",
"diversity": 123
}
}
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_urls: [{}],
aspect_ratio: '<string>',
resolution: '<string>',
style: '<string>',
diversity: 123
}
})
};
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
}Gen 4 Image
Gen 4 Image — Edit Image
Edit and transform images using Runway’s Gen 4 Image model
POST
/
v1
/
jobs
/
submit
Gen 4 Image — Edit Image
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_urls": [
{}
],
"aspect_ratio": "<string>",
"resolution": "<string>",
"style": "<string>",
"diversity": 123
}
}
'import requests
url = "https://api.muvi.video/v1/jobs/submit"
payload = {
"model": "<string>",
"input": {
"prompt": "<string>",
"image_urls": [{}],
"aspect_ratio": "<string>",
"resolution": "<string>",
"style": "<string>",
"diversity": 123
}
}
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_urls: [{}],
aspect_ratio: '<string>',
resolution: '<string>',
style: '<string>',
diversity: 123
}
})
};
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
}Edit and transform existing images using Runway’s Gen 4 Image model. Provide reference images along with a text prompt to guide the editing process.
| Property | Value |
|---|---|
| Provider | Runway |
| Model | Gen 4 Image |
| Capability | Edit Image |
| Category | Image to Image |
| Base Cost | 50,000 micro-cents/request ($0.05) |
| Processing Time | ~30 seconds |
Request Body
string
required
Model slug. Use
runway/gen-4-image/edit-image for image editing.object
required
Input parameters for image editing.
Hide properties
Hide properties
string
required
Text description for editing the image.
array
Reference image URLs for editing. Provide up to 3 image URLs. Max items: 3.
string
Output aspect ratio. Default:
16:9. Options: 16:9, 9:16, 1:1, 2:3, 3:2, 4:3, 3:4, 4:5, 5:4, 21:9.string
Output resolution. Default:
720p. Options: 720p, 1080p.string
Style preset for the edited image. Options:
vivid, vivid-warm, vivid-cool, high-contrast, high-contrast-warm, high-contrast-cool, bw, bw-contrast, muted-pastel, dreamscape, nordic-minimal, light-anime, dark-anime, painted-anime, 3d-cartoon, sketch, low-angle, in-motion, terracotta.integer
Controls output diversity. Range: 1–5. Higher values produce more varied results.
string
HTTPS URL to receive a webhook notification when the job completes or fails.
Pricing
Base cost: 50,000 micro-cents per request ($0.05)finalCost = baseCost × resolution
| Factor | Option | Multiplier |
|---|---|---|
| Resolution | 720p | 1x |
1080p | 1.6x |
Default cost: 720p resolution = 50,000 × 1 = 50,000 micro-cents ($0.05)1080p cost: 50,000 × 1.6 = 80,000 micro-cents ($0.08)
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": "runway/gen-4-image/edit-image",
"input": {
"prompt": "Edit an image by replacing the background",
"image_urls": ["https://example.com/your-image.jpg"],
"aspect_ratio": "16:9",
"resolution": "720p",
"style": "vivid"
}
}'
import requests
response = requests.post(
"https://api.muvi.video/v1/jobs/submit",
headers={
"Authorization": "Bearer YOUR_API_KEY",
"Content-Type": "application/json"
},
json={
"model": "runway/gen-4-image/edit-image",
"input": {
"prompt": "Edit an image by replacing the background",
"image_urls": ["https://example.com/your-image.jpg"],
"aspect_ratio": "16:9",
"resolution": "720p",
"style": "vivid"
}
}
)
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: "runway/gen-4-image/edit-image",
input: {
prompt: "Edit an image by replacing the background",
image_urls: ["https://example.com/your-image.jpg"],
aspect_ratio: "16:9",
resolution: "720p",
style: "vivid"
}
})
});
const data = await response.json();
console.log(data);
⌘I
