Image editing
Image editing allows you to modify an existing image using a text prompt. The extension supports image editing through providers that expose an OpenAI-compatible /images/edits endpoint.
Supported providers
| Provider | Editing support |
|---|---|
| OpenAI | Yes |
| Gemini | Yes |
| Cloud Temple | Yes |
| Azure OpenAI | No |
| Grok (X-AI) | No |
| Luma | No |
| Hive | No |
Plugin configuration
Add the Cloud APIM - Image edition backend plugin to your route:
{
"enabled": true,
"plugin": "cp:otoroshi_plugins.com.cloud.apim.otoroshi.extensions.aigateway.plugins.OpenAICompatImagesEdit",
"config": {
"refs": ["image-model-entity-id"],
"max_size_upload": 104857600
}
}
| Parameter | Type | Default | Description |
|---|---|---|---|
refs | array | [] | List of Image Model entity IDs (must support editing) |
max_size_upload | number | 104857600 (100MB) | Maximum upload file size in bytes |
API
The editing endpoint accepts multipart form data:
curl --request POST \
--url http://myroute.oto.tools:8080/v1/images/edits \
--header 'content-type: multipart/form-data' \
-F "image=@photo.png" \
-F "prompt=add a red hat to the person" \
-F "model=gpt-image-1" \
-F "n=1" \
-F "size=1024x1024"
Parameters
| Parameter | Type | Description |
|---|---|---|
image | file | The image to edit (uploaded as multipart file) |
prompt | string | A text description of the desired edit |
model | string | Model name (can include provider prefix) |
n | integer | Number of images to generate |
size | string | Image dimensions (e.g., 1024x1024) |
quality | string | Image quality (standard, hd) |
background | string | Background setting |
response_format | string | url or b64_json |
Response
{
"created": 1762441013,
"data": [
{
"url": "https://...",
"b64_json": null,
"revised_prompt": null
}
]
}
Entity configuration
To enable editing on a provider, set edition.enabled to true in the entity options:
{
"provider": "openai",
"config": {
"connection": {
"base_url": "https://api.openai.com/v1",
"token": "sk-xxx",
"timeout": 180000
},
"options": {
"generation": {
"enabled": true,
"model": "gpt-image-1"
},
"edition": {
"enabled": true,
"model": "gpt-image-1",
"n": 1,
"quality": "hd",
"size": "1024x1024"
}
}
}
}