Edit an image
Edits an image using a text prompt and optional mask. Request must be sent as multipart/form-data
with at least model, prompt (unless type is background_removal), and image (or image[]).
Bearer token authentication. Use your MPilot virtual-key JWT or admin JWT.
Virtual keys (prefixed with sk-bf-) can also be passed here.
In: header
Model identifier in format provider/model
Text prompt describing the edit. Required unless type is background_removal.
Image file to edit. Use field name image for a single file or image[] for multiple files.
binaryOptional mask image for inpainting (transparent areas indicate regions to edit)
binaryType of edit operation
"inpainting" | "outpainting" | "background_removal"Number of images to generate
1 <= value <= 10Size of the output image
"256x256" | "512x512" | "1024x1024" | "1536x1024" | "1024x1536" | "auto"Format of the response
"url""url" | "b64_json"When true, stream the response via Server-Sent Events
falseBackground type for the image
"transparent" | "opaque" | "auto"How closely to follow the original image
"low" | "high"Number of partial images to generate when streaming
0 <= value <= 3Quality of the output image
"auto" | "high" | "medium" | "low" | "standard"Output image format
"png" | "webp" | "jpeg"Number of inference steps
Seed for reproducible editing
Compression level (0-100%)
0 <= value <= 100What to avoid in the edit
User identifier for tracking
Fallback models to try if primary model fails
Response Body
curl -X POST "https://loading/{AI_GATEWAY_URL}/v1/images/edits" \ -F model="string" \ -F image="string"{
"id": "string",
"created": 0,
"model": "string",
"data": [
{
"url": "http://example.com",
"b64_json": "string",
"revised_prompt": "string",
"index": 0
}
],
"background": "string",
"output_format": "png",
"quality": "string",
"size": "256x256",
"usage": {
"input_tokens": 0,
"input_tokens_details": {
"image_tokens": 0,
"text_tokens": 0
},
"total_tokens": 0,
"output_tokens": 0,
"output_tokens_details": {
"image_tokens": 0,
"text_tokens": 0
}
},
"extra_fields": {
"request_type": "string",
"provider": "openai",
"model_requested": "string",
"model_deployment": "string",
"latency": 0,
"chunk_index": 0,
"raw_request": {},
"raw_response": {},
"cache_debug": {
"cache_hit": true,
"cache_id": "string",
"hit_type": "string",
"requested_provider": "string",
"requested_model": "string",
"provider_used": "string",
"model_used": "string",
"input_tokens": 0,
"threshold": 0,
"similarity": 0
}
}
}{
"event_id": "string",
"type": "string",
"is_bifrost_error": true,
"status_code": 0,
"error": {
"type": "string",
"code": "string",
"message": "string",
"param": "string",
"event_id": "string"
},
"extra_fields": {
"provider": "openai",
"model_requested": "string",
"request_type": "string"
}
}{
"event_id": "string",
"type": "string",
"is_bifrost_error": true,
"status_code": 0,
"error": {
"type": "string",
"code": "string",
"message": "string",
"param": "string",
"event_id": "string"
},
"extra_fields": {
"provider": "openai",
"model_requested": "string",
"request_type": "string"
}
}