Skip to content

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 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_IMAGE by default
  • Mask provided → Uses INPAINTING by default

Stability AI 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: Requires select_prompt form field
  • stability.stable-image-search-replace-v1:0: Requires search_prompt form 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

Stability AI 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.

Stability AI 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

Stability AI 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 to
  • mask (required): Maps to style_image - the reference style image
  • prompt: 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

Stability AI 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"

Stability AI 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"

Stability AI 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"

Stability AI 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"

Stability AI 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"

Stability AI 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"

Stability AI 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 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 Bedrock 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 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 (n parameter)