Object Removal
Playground
Try it on WaveSpeedAI!WaveSpeedAI Object Removal removes mask-selected objects from input images and returns clean edited images with unwanted elements removed, making it useful for photo cleanup, product images, e-commerce assets, creative editing, and image restoration workflows. Ready-to-use REST inference API, best performance, no coldstarts, affordable pricing.
Features
Object Removal removes mask-selected objects from an input image and returns a clean edited image. Upload an image and a matching mask to specify exactly which area should be removed.
Why Choose This?
-
Mask-guided object removal
Use a mask to precisely define the area that should be removed. -
Controlled image editing
Preserve the unmasked parts of the image while removing the selected object. -
Simple two-input workflow
Provide the source image and a matching mask to generate the edited result. -
Standard image output
The edited image is returned as a URL in the standard WaveSpeed prediction response.
Parameters
| Parameter | Required | Description |
|---|---|---|
| image | Yes | Input image containing the object to remove. |
| mask | Yes | Mask image with the same dimensions as image. White pixels indicate the areas to remove. |
How to Use
- Upload image — Provide the image you want to edit.
- Upload mask — Provide a mask with the same dimensions as the input image. Mark the removal area in white.
- Submit — Generate the edited image.
- Review output — Retrieve the result from the returned image URL.
Pricing
| Unit | Price |
|---|---|
| Per image | $0.03 |
Best Use Cases
- Product cleanup — Remove unwanted objects, props, or distractions from product images.
- Creative editing — Create a cleaner base image for further editing or compositing.
- Marketing assets — Remove visual distractions from campaign images, banners, and promotional visuals.
- Photo cleanup — Remove selected objects from everyday photos while preserving the surrounding context.
- Design workflows — Prepare cleaner source images for layouts, mockups, and visual production.
Pro Tips
- Make sure
imageandmaskhave identical dimensions. - Use white pixels in the mask to mark the exact areas to remove.
- Keep the mask focused on the object or region that should be removed.
- Avoid masking too much surrounding context unless it also needs to be removed.
- Use a clear source image for more stable results.
- Ensure the input image and mask URLs are publicly accessible.
Notes
- After generating the mask, save the mask image locally first, then upload it as the
maskinput.
## Authentication
For authentication details, please refer to the [Authentication Guide](/api-authentication).
## API Endpoints
### Submit Task & Query Result
<ApiTabs submitUrl={model.submitUrl} resultUrl={model.resultUrl} payload={model.defaultValues} />
## Parameters
### Task Submission Parameters
#### Request Parameters
<RequestParams params={model.params} />
#### Response Parameters
<SubmitResponse />
#### Result Request Parameters
| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| id | string | Yes | - | Task ID |
#### Result Response Parameters
| Parameter | Type | Description |
|-----------|------|-------------|
| code | integer | HTTP status code (e.g., 200 for success) |
| message | string | Status message (e.g., "success") |
| data | object | The prediction data object containing all details |
| data.id | string | Unique identifier for the prediction |
| data.model | string | Model ID used for the prediction |
| data.outputs | array<string \| object> | Array of generated outputs (empty when status is not completed). Items are usually URL strings, but may be text strings or structured result objects, depending on the model. |
| data.urls | object | Object containing related API endpoints |
| data.urls.get | string | URL to poll for the prediction result |
| data.status | string | Status: `created`, `processing`, `completed`, or `failed` |
| data.created_at | string | ISO timestamp of when the request was created |
| data.error | string | Error message (empty if no error occurred) |
| data.timings | object | Object containing timing details |
| data.timings.inference | integer | Inference time in milliseconds |