Images API - Image Editing¶
Edit images using inpainting with AWS Bedrock image models through an OpenAI-compatible interface.
Why Choose Image Editing?¶
-
Precise Control
Edit specific regions of images while preserving the rest. -
Creative Freedom
Add, remove, or modify elements in existing images with AI assistance. -
Flexible Masking
Use transparency or explicit masks to define edit regions. -
Scalable Infrastructure
Edit images at scale with AWS Bedrock infrastructure.
Quick Start: Available Endpoint¶
| Endpoint | Method | What It Does | Powered By |
|---|---|---|---|
/v1/images/edits |
POST | Edit images using prompts and masks | AWS Bedrock Image Models |
Feature Compatibility¶
| Feature | Status | Notes |
|---|---|---|
| Editing | ||
Image-to-image (/edits) |
Edit images with prompts and masks | |
| Parameters | ||
image |
PNG image(s) to edit (required, supports multiple via image[]) |
|
prompt |
Text description of desired changes | |
mask |
Optional mask defining edit regions | |
n (number of images) |
Generate multiple variations per request (1-10) | |
size (WIDTHxHEIGHT) |
Output dimensions (default: 1024x1024, format validated) | |
model |
Required parameter | |
response_format |
url or b64_json (default: url) |
|
output_format |
png, jpeg, or webp (model-specific) |
|
output_compression |
Compression level 1-100% (default: 100) | |
quality |
Quality setting (default: auto, model-specific values) |
|
stream |
Generate images in streaming mode with partial results | |
partial_images |
Number of partial images in stream (0-3, model-specific) | |
background |
Always auto, transparent backgrounds unsupported |
|
input_fidelity |
Ignored, always low |
|
| Output | ||
| URL response format | Temporary URLs to edited images (requires AWS_S3_BUCKET) | |
| Base64 JSON format | Inline base64-encoded images | |
| PNG format | Lossless image output | |
| JPEG format | Lossy compression (model-specific) | |
| WEBP format | Modern format with compression (model-specific) | |
| Streaming response | Server-sent events with partial and final images | |
| Usage tracking | ||
| Input text tokens | Estimated from prompt | |
| Input image tokens | Count of input images (image + mask) | |
| Output image tokens | Image count (billing unit) | |
| Other | ||
user |
Logged but not used for abuse monitoring | |
| Extra parameters via form data | Provider-specific parameters passed through |
Legend:
- Supported — Fully compatible with OpenAI API
- Available on Select Models — Check your model's capabilities
- Partial — Supported with limitations
- Unsupported — Not available in this implementation
Model Support
Inpainting (mask-based editing) is supported by Amazon Nova Canvas, Amazon Titan Image Generator, and Stability AI inpaint models.
Image-to-image (transformation without masks) is supported by Stability AI text-to-image models (SD3.5, Stable Image Core, Stable Image Ultra).
Upscale (resolution enhancement) is supported by Stability AI upscale models (creative, conservative, fast).
Style Transfer (applying reference image style) is supported by Stability AI style transfer models.
Search-based editing (find & replace/recolor objects) is supported by Stability AI search models.
Background removal is supported by Amazon Titan Image Generator v2, Amazon Nova Canvas, and Stability AI remove background model.
Configuration Required
You must configure the AWS_S3_BUCKET environment variable with a bucket to use the URL response format.
Supported Models¶
Amazon Models¶
| Model | Supported Task Types | Mask Support | Notes |
|---|---|---|---|
| amazon.nova-canvas-v1:0 | TEXT_IMAGE, INPAINTING, OUTPAINTING, BACKGROUND_REMOVAL, VIRTUAL_TRY_ON |
✅ Required for inpainting/outpainting ✅ Used as reference for virtual try-on |
Supports multiple editing modes including advanced virtual try-on with 3 mask types |
| amazon.titan-image-generator-v1 | INPAINTING, OUTPAINTING |
✅ Required for inpainting/outpainting | Supports text-based mask prompts as alternative to mask images |
| amazon.titan-image-generator-v2:0 | INPAINTING, OUTPAINTING, BACKGROUND_REMOVAL |
✅ Required for inpainting/outpainting ❌ Not used for background removal |
Enhanced features including background removal without mask |
Amazon Nova Canvas Default Behavior
amazon.nova-canvas-v1:0 automatically selects the task type based on the presence of a mask when no taskType is explicitly provided:
- No mask provided → Uses
TEXT_IMAGEby default - Mask provided → Uses
INPAINTINGby default
Stability AI Models¶
Image-to-Image Models¶
| Model | Prompt Usage | Mask Usage | Extra Parameters Required | Notes |
|---|---|---|---|---|
| stability.sd3-5-large-v1:0 | Guides transformation | Not used | None | Transform images with prompt |
Upscale Models¶
| Model | Prompt Usage | Mask Usage | Extra Parameters Required | Notes |
|---|---|---|---|---|
| stability.stable-creative-upscale-v1:0 | Guides upscaling | Not used | None | Prompt-guided upscaling with creativity |
| stability.stable-conservative-upscale-v1:0 | Guides upscaling | Not used | None | Detail-preserving upscaling |
| stability.stable-fast-upscale-v1:0 | Not used | Not used | None | Fast 4x upscaling without prompt |
Edit Models¶
| Model | Prompt Usage | Mask Usage | Extra Parameters Required | Notes |
|---|---|---|---|---|
| stability.stable-image-inpaint-v1:0 | Guides inpainting | Optional (marks edit region) | None | Fill masked regions |
| stability.stable-outpaint-v1:0 | Guides outpainting | Not used | None | Extend image beyond borders |
| stability.stable-image-search-recolor-v1:0 | Describes new color | Not used | select_prompt |
Recolor objects by search prompt |
| stability.stable-image-search-replace-v1:0 | Describes replacement | Not used | search_prompt |
Replace objects by search prompt |
| stability.stable-image-erase-object-v1:0 | Not used | Required (marks object) | None | Remove objects with mask |
| stability.stable-image-remove-background-v1:0 | Not used | Not used | None | Automatic background removal |
Control Models¶
| Model | Prompt Usage | Mask Usage | Extra Parameters Required | Notes |
|---|---|---|---|---|
| stability.stable-image-control-sketch-v1:0 | Guides generation | Not used | None | Generate from sketch |
| stability.stable-image-control-structure-v1:0 | Guides generation | Not used | None | Structure-preserving generation |
Style Models¶
| Model | Prompt Usage | Mask Usage | Extra Parameters Required | Notes |
|---|---|---|---|---|
| stability.stable-image-style-guide-v1:0 | Guides style | Not used | None | Extract and apply style |
| stability.stable-style-transfer-v1:0 | Guides style transfer | Required (repurposed as style_image) |
None | Transfer style between images |
Output Formats
All models support standard OpenAI output formats (png, jpeg, webp) via the output_format parameter. Format availability may vary by model - unsupported formats will automatically fall back to PNG.
Extra Parameters Required
Some models require parameters beyond the standard OpenAI API:
stability.stable-image-search-recolor-v1:0: Requiresselect_promptform fieldstability.stable-image-search-replace-v1:0: Requiressearch_promptform field
Models that don't use prompt: stability.stable-fast-upscale-v1:0, stability.stable-image-erase-object-v1:0, stability.stable-image-remove-background-v1:0 - provide empty string or omit the prompt parameter.
All other Stability models use only standard OpenAI parameters (image, prompt, and optionally mask).
How Image Editing Works¶
Image-to-Image (Stability AI Models)¶
Stability AI models support image-to-image transformation without masks. The source image is transformed according to the prompt:
# Transform a photo into an oil painting style
curl -X POST "$BASE/v1/images/edits" \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-H "Content-Type: multipart/form-data" \
-F image=@photo.png \
-F prompt="Transform into an oil painting style" \
-F model="stability.sd3-5-large-v1:0"
Mask Not Supported
Stability AI image-to-image models do not support mask-based editing. Providing a mask parameter will result in an error.
Upscale (Stability AI)¶
Upscale models increase image resolution while preserving quality:
# Fast upscaling (4x) - no prompt parameter needed
curl -X POST "$BASE/v1/images/edits" \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-H "Content-Type: multipart/form-data" \
-F image=@low_res.png \
-F model="stability.stable-fast-upscale-v1:0"
Upscale Characteristics
- Fast Upscale: Conservative 4x upscaling that preserves original details
- No prompt parameter needed or used
- Best for enlarging photos and preserving original content
Style Transfer (Stability AI)¶
Apply visual characteristics from one image to another. The mask parameter is used to pass the style reference image:
# Apply style from reference image to target image
# image: content image, mask: style reference image
curl -X POST "$BASE/v1/images/edits" \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-H "Content-Type: multipart/form-data" \
-F image=@content.png \
-F mask=@style_reference.png \
-F prompt="Apply artistic style while preserving content" \
-F model="stability.stable-style-transfer-v1:0"
Style Transfer Parameter Mapping
image(required): Target image to apply style tomask(required): Maps tostyle_image- the reference style imageprompt: Guides the style application process
Inpainting with Masks (Amazon Models)¶
With Transparent Areas (Automatic Mask)¶
If your source image has transparent regions (alpha channel), those areas will automatically be used as the edit mask:
# Edit using a PNG image with transparent areas
# The transparent regions will be automatically detected as the mask
curl -X POST "$BASE/v1/images/edits" \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-H "Content-Type: multipart/form-data" \
-F image=@image_with_transparency.png \
-F prompt="A blue circle in the center" \
-F model="amazon.nova-canvas-v1:0"
Image format: PNG with alpha channel where transparent pixels indicate regions to edit.
With Explicit Mask¶
For more control, provide an explicit mask image where transparent areas indicate regions to edit:
# Edit with explicit mask
# image: source image, mask: PNG where transparent areas mark edit regions
curl -X POST "$BASE/v1/images/edits" \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-H "Content-Type: multipart/form-data" \
-F image=@source.png \
-F mask=@edit_mask.png \
-F prompt="A beautiful flower" \
-F model="amazon.nova-canvas-v1:0"
Mask format: PNG with alpha channel where transparent pixels indicate regions to edit, opaque pixels are preserved.
Try It Now¶
Image-to-Image with Stability AI¶
# Transform image with default strength (0.5)
curl -X POST "$BASE/v1/images/edits" \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-H "Content-Type: multipart/form-data" \
-F image=@photo.png \
-F prompt="Transform into a watercolor painting" \
-F model="stability.sd3-5-large-v1:0"
Upscale with Stability AI¶
# Fast upscaling (4x resolution increase) - no prompt needed
curl -X POST "$BASE/v1/images/edits" \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-H "Content-Type: multipart/form-data" \
-F image=@low_res.png \
-F model="stability.stable-fast-upscale-v1:0"
Style Transfer with Stability AI¶
# Apply style from reference image (mask parameter is style image)
curl -X POST "$BASE/v1/images/edits" \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-H "Content-Type: multipart/form-data" \
-F image=@content.png \
-F mask=@style_reference.png \
-F prompt="Apply artistic style" \
-F model="stability.stable-style-transfer-v1:0"
Search & Replace with Stability AI¶
# Replace objects by search prompt (requires search_prompt form field)
curl -X POST "$BASE/v1/images/edits" \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-H "Content-Type: multipart/form-data" \
-F image=@input.png \
-F prompt="a red car" \
-F model="stability.stable-image-search-replace-v1:0" \
-F search_prompt="blue car"
Search & Recolor with Stability AI¶
# Recolor objects by search prompt (requires select_prompt form field)
curl -X POST "$BASE/v1/images/edits" \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-H "Content-Type: multipart/form-data" \
-F image=@input.png \
-F prompt="bright red color" \
-F model="stability.stable-image-search-recolor-v1:0" \
-F select_prompt="car"
Erase Object with Stability AI¶
# Erase object with mask - no prompt needed
curl -X POST "$BASE/v1/images/edits" \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-H "Content-Type: multipart/form-data" \
-F image=@input.png \
-F mask=@object_mask.png \
-F model="stability.stable-image-erase-object-v1:0"
Remove Background with Stability AI¶
# Remove background automatically - no prompt needed
curl -X POST "$BASE/v1/images/edits" \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-H "Content-Type: multipart/form-data" \
-F image=@input.png \
-F model="stability.stable-image-remove-background-v1:0"
Inpainting with Amazon Models¶
curl -X POST "$BASE/v1/images/edits" \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-F image=@image.png \
-F prompt="A blue ocean with sailboats" \
-F model="amazon.nova-canvas-v1:0"
Edit with Explicit Mask¶
curl -X POST "$BASE/v1/images/edits" \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-F image=@source.png \
-F mask=@mask.png \
-F prompt="A red sports car" \
-F model="amazon.nova-canvas-v1:0"
Base64 Response Format¶
curl -X POST "$BASE/v1/images/edits" \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-F image=@image.png \
-F prompt="A sunny day with blue sky" \
-F model="amazon.nova-canvas-v1:0"
Multiple Variations¶
curl -X POST "$BASE/v1/images/edits" \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-F image=@image.png \
-F prompt="A fantasy castle" \
-F n=3 \
-F model="amazon.nova-canvas-v1:0"
Multiple Input Images (Composition)¶
OpenAI Compatible Syntax
Use the image[] array parameter to provide multiple input images. The API will compose them according to your prompt.
# Compose multiple images into a single output (like creating a gift basket)
curl -X POST "$BASE/v1/images/edits" \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-F "image[]=@body-lotion.png" \
-F "image[]=@bath-bomb.png" \
-F "image[]=@incense-kit.png" \
-F "image[]=@soap.png" \
-F prompt="Create a lovely gift basket with these four items in it" \
-F model="amazon.nova-canvas-v1:0"
Model Support for Multiple Images
Not all models support multiple input images. Currently, models that do not support multiple images will only use the first image and raise an error if more than one is provided. Check model documentation for multi-image composition support.
Additional Examples¶
Inpainting with Control Models¶
# Control Sketch - generate from sketch
curl -X POST "$BASE/v1/images/edits" \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-H "Content-Type: multipart/form-data" \
-F image=@sketch.png \
-F prompt="A realistic portrait" \
-F model="stability.stable-image-control-sketch-v1:0"
# Control Structure - preserve structure
curl -X POST "$BASE/v1/images/edits" \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-H "Content-Type: multipart/form-data" \
-F image=@structure.png \
-F prompt="A modern building" \
-F model="stability.stable-image-control-structure-v1:0"
Inpainting with Mask¶
# Stability AI Inpainting - mask marks edit region
curl -X POST "$BASE/v1/images/edits" \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-H "Content-Type: multipart/form-data" \
-F image=@photo.png \
-F mask=@edit_mask.png \
-F prompt="A beautiful sunset" \
-F model="stability.stable-image-inpaint-v1:0"
# Outpainting - extend image beyond borders
curl -X POST "$BASE/v1/images/edits" \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-H "Content-Type: multipart/form-data" \
-F image=@photo.png \
-F prompt="Extend with a forest landscape" \
-F model="stability.stable-outpaint-v1:0"
Style Guide¶
# Extract and apply style from reference
curl -X POST "$BASE/v1/images/edits" \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-H "Content-Type: multipart/form-data" \
-F image=@content.png \
-F prompt="Apply impressionist style" \
-F model="stability.stable-image-style-guide-v1:0"
Advanced Features¶
Provider-Specific Parameters¶
Amazon Nova Canvas¶
Basic Usage (Standard OpenAI Parameters):
# Inpainting with mask
curl -X POST "$BASE/v1/images/edits" \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-H "Content-Type: multipart/form-data" \
-F image=@source.png \
-F mask=@mask.png \
-F prompt="A sunset over mountains" \
-F model="amazon.nova-canvas-v1:0"
Parameter Mapping:
| OpenAI Parameter | Maps to | Notes |
|---|---|---|
prompt |
Depends on taskType |
See taskType-specific mapping below |
image / image[] |
Depends on taskType |
See taskType-specific mapping below (first image used) |
mask |
Depends on taskType |
See taskType-specific mapping below |
size |
imageGenerationConfig.width/height |
Output dimensions (320-4096) |
quality |
imageGenerationConfig.quality |
"high" → "premium" |
n |
imageGenerationConfig.numberOfImages |
1-5 images |
TaskType-Specific Parameter Mapping:
| taskType | prompt maps to |
image maps to |
mask maps to |
|---|---|---|---|
INPAINTING (default) |
inPaintingParams.text |
inPaintingParams.image |
inPaintingParams.maskImage |
OUTPAINTING |
outPaintingParams.text |
outPaintingParams.image |
outPaintingParams.maskImage |
BACKGROUND_REMOVAL |
Not used | backgroundRemovalParams.image |
Not used |
VIRTUAL_TRY_ON (PROMPT) |
promptBasedMask.maskPrompt |
virtualTryOnParams.sourceImage |
virtualTryOnParams.referenceImage |
VIRTUAL_TRY_ON (GARMENT) |
garmentBasedMask.garmentClass |
virtualTryOnParams.sourceImage |
virtualTryOnParams.referenceImage |
VIRTUAL_TRY_ON (IMAGE) |
imageBasedMask.maskImage (Base64 encoded image or data URI) |
virtualTryOnParams.sourceImage |
virtualTryOnParams.referenceImage |
Advanced Task Types (with form fields):
Default taskType is "INPAINTING".
Available task types:
"INPAINTING"- Fill masked regions"OUTPAINTING"- Extend image beyond borders"BACKGROUND_REMOVAL"- Remove background"VIRTUAL_TRY_ON"- Virtual fashion try-on
# Outpainting
curl -X POST "$BASE/v1/images/edits" \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-H "Content-Type: multipart/form-data" \
-F image=@photo.png \
-F prompt="Extend with a garden" \
-F model="amazon.nova-canvas-v1:0" \
-F taskType="OUTPAINTING"
# Background Removal (no prompt needed)
curl -X POST "$BASE/v1/images/edits" \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-H "Content-Type: multipart/form-data" \
-F image=@photo.png \
-F model="amazon.nova-canvas-v1:0" \
-F taskType="BACKGROUND_REMOVAL"
# Virtual Try-On - Prompt-Based (default)
# image: person photo, mask: garment image, prompt: area description
curl -X POST "$BASE/v1/images/edits" \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-H "Content-Type: multipart/form-data" \
-F image=@person.png \
-F mask=@garment.png \
-F prompt="upper body area" \
-F model="amazon.nova-canvas-v1:0" \
-F taskType="VIRTUAL_TRY_ON"
# Virtual Try-On - Garment-Based
# image: person photo, mask: garment image, prompt: garment class
curl -X POST "$BASE/v1/images/edits" \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-H "Content-Type: multipart/form-data" \
-F image=@person.png \
-F mask=@garment.png \
-F prompt="UPPER_BODY" \
-F model="amazon.nova-canvas-v1:0" \
-F taskType="VIRTUAL_TRY_ON" \
-F "virtualTryOnParams[maskType]=GARMENT"
# Virtual Try-On - Image-Based Mask
# image: person photo, mask: garment image, prompt: base64 mask image
curl -X POST "$BASE/v1/images/edits" \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-H "Content-Type: multipart/form-data" \
-F image=@person.png \
-F mask=@garment.png \
-F prompt="BASE64_MASK_IMAGE" \
-F model="amazon.nova-canvas-v1:0" \
-F taskType="VIRTUAL_TRY_ON" \
-F "virtualTryOnParams[maskType]=IMAGE"
Full Parameter Reference
For all available parameters and task types, see Amazon Nova Canvas documentation
Amazon Titan Image Generator¶
Basic Usage (Standard OpenAI Parameters):
# Inpainting with mask
curl -X POST "$BASE/v1/images/edits" \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-H "Content-Type: multipart/form-data" \
-F image=@source.png \
-F mask=@mask.png \
-F prompt="A beautiful garden with flowers" \
-F model="amazon.titan-image-generator-v2:0"
Parameter Mapping:
| OpenAI Parameter | Maps to | Notes |
|---|---|---|
prompt |
Depends on taskType |
See taskType-specific mapping below |
image / image[] |
Depends on taskType |
See taskType-specific mapping below (first image used) |
mask |
Depends on taskType |
See taskType-specific mapping below |
size |
imageGenerationConfig.width/height |
Fixed sizes (512-2048) |
quality |
imageGenerationConfig.quality |
"high" → "premium" |
n |
imageGenerationConfig.numberOfImages |
1-5 images |
TaskType-Specific Parameter Mapping:
| taskType | prompt maps to |
image maps to |
mask maps to |
|---|---|---|---|
INPAINTING (default) |
inPaintingParams.text |
inPaintingParams.image |
inPaintingParams.maskImage |
OUTPAINTING |
outPaintingParams.text |
outPaintingParams.image |
outPaintingParams.maskImage |
BACKGROUND_REMOVAL |
Not used | backgroundRemovalParams.image |
Not used |
Advanced Task Types (with form fields):
Default taskType is "INPAINTING".
Available task types:
"INPAINTING"- Fill masked regions"OUTPAINTING"- Extend image beyond borders"BACKGROUND_REMOVAL"(v2 only) - Remove background
# Outpainting
curl -X POST "$BASE/v1/images/edits" \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-H "Content-Type: multipart/form-data" \
-F image=@photo.png \
-F prompt="Extend with a forest" \
-F model="amazon.titan-image-generator-v2:0" \
-F taskType="OUTPAINTING"
# Background Removal (v2 only, no prompt needed)
curl -X POST "$BASE/v1/images/edits" \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-H "Content-Type: multipart/form-data" \
-F image=@photo.png \
-F model="amazon.titan-image-generator-v2:0" \
-F taskType="BACKGROUND_REMOVAL"
Full Parameter Reference
For all available parameters and task types, see Amazon Titan Image Generator documentation
Stability AI Models¶
Basic Usage (Standard OpenAI Parameters):
Most Stability AI models work with standard OpenAI parameters:
# Image-to-image transformation
curl -X POST "$BASE/v1/images/edits" \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-H "Content-Type: multipart/form-data" \
-F image=@photo.png \
-F prompt="A dramatic cinematic scene" \
-F model="stability.sd3-5-large-v1:0"
Parameter Mapping:
All Stability AI models use standard OpenAI parameters directly:
| OpenAI Parameter | Stability Parameter | Notes |
|---|---|---|
image / image[] |
image |
Base64-encoded input image (first image used if multiple) |
prompt |
prompt |
Text description (may be unused for some models) |
mask |
mask |
Base64-encoded mask (model-specific) |
n |
Multiple requests | Generates N images via multiple API calls |
size |
Model-specific | Some models support width/height |
Model-Specific Parameters:
| Model(s) | Required Form Fields | OpenAI mask Maps To |
Notes |
|---|---|---|---|
stable-image-search-recolor-v1:0 |
select_prompt (string) |
Not used | Identifies object to recolor |
stable-image-search-replace-v1:0 |
search_prompt (string) |
Not used | Identifies object to find and replace |
stable-style-transfer-v1:0 |
None (uses mask param) |
style_image |
Mask parameter repurposed as style image |
stable-image-erase-object-v1:0 |
None | mask (required) |
Prompt not used |
stable-image-remove-background-v1:0 |
None | Not used | Prompt not used |
stable-fast-upscale-v1:0 |
None | Not used | Prompt not used |
Examples:
# Search & Replace - requires search_prompt form field
curl -X POST "$BASE/v1/images/edits" \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-H "Content-Type: multipart/form-data" \
-F image=@input.png \
-F prompt="a red car" \
-F model="stability.stable-image-search-replace-v1:0" \
-F search_prompt="blue car"
# Search & Recolor - requires select_prompt form field
curl -X POST "$BASE/v1/images/edits" \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-H "Content-Type: multipart/form-data" \
-F image=@input.png \
-F prompt="bright red color" \
-F model="stability.stable-image-search-recolor-v1:0" \
-F select_prompt="car"
# Style Transfer - mask parameter is style image
curl -X POST "$BASE/v1/images/edits" \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-H "Content-Type: multipart/form-data" \
-F image=@content.png \
-F mask=@style.png \
-F prompt="Apply artistic style" \
-F model="stability.stable-style-transfer-v1:0"
# Erase Object - no prompt needed, mask required
curl -X POST "$BASE/v1/images/edits" \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-H "Content-Type: multipart/form-data" \
-F image=@input.png \
-F mask=@object_mask.png \
-F model="stability.stable-image-erase-object-v1:0"
# Remove Background - no prompt needed
curl -X POST "$BASE/v1/images/edits" \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-H "Content-Type: multipart/form-data" \
-F image=@input.png \
-F model="stability.stable-image-remove-background-v1:0"
# Fast Upscale - no prompt needed
curl -X POST "$BASE/v1/images/edits" \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-H "Content-Type: multipart/form-data" \
-F image=@low_res.png \
-F model="stability.stable-fast-upscale-v1:0"
Full Parameter Reference
For all Stability AI parameters, see Stability AI documentation
Usage Tracking¶
The API tracks token usage for billing and monitoring:
- Text tokens: Estimated from your prompt using tiktoken
- Image tokens: Count of input images (image files + mask file if provided)
- Output tokens: Number of images generated (
nparameter)