Image Watermark Remover
Playground
Try it on WavespeedAI!Intelligently detects and removes text and logo watermarks while preserving texture and background for natural, artifact-free images. Ready-to-use REST inference API, best performance, no coldstarts, affordable pricing.
Features
WaveSpeedAI — AI Image Watermark Remover
The AI Image Watermark Remover is a precision inpainting model designed to remove text, logos, or unwanted marks from your photos and artworks. Powered by WaveSpeedAI’s next-generation visual reconstruction engine, it restores the occluded background with natural detail and color continuity.
⚙️ Key Features
-
Smart Watermark Detection
Automatically identifies watermarks, text overlays, or logos across images. -
High-Fidelity Restoration
Reconstructs occluded areas with realistic background textures and tones. -
Multi-Zone Editing Support
Remove multiple regions in a single pass — perfect for batch cleanup. -
Preserve Artistic Integrity
Retains lighting, color, and composition to ensure natural visual balance. -
Flexible Output Formats
Export results in JPEG, PNG, or WEBP format. -
Fast Processing
Optimized for WaveSpeedAI inference clusters, ensuring near-instant cleanup even for high-resolution images.
💡 Recommended Use Cases
- Removing watermarks or timestamps from photos
- Cleaning logos or marks from AI-generated images
- Restoring old artworks or scanned prints
- Preparing marketing or e-commerce visuals for reuse
💰 Pricing
Each run costs $0.012 — pay only for what you use.
📝 Notes
- Avoid uploading images that contain copyrighted logos unless you own the rights.
- Works best when the watermark area is not excessively large or opaque.
- For highly complex overlays, try the Ultimate Image Eraser for enhanced reconstruction quality.
Authentication
For authentication details, please refer to the Authentication Guide.
API Endpoints
Submit Task & Query Result
# Submit the task
curl --location --request POST "https://api.wavespeed.ai/api/v3/wavespeed-ai/image-watermark-remover" \
--header "Content-Type: application/json" \
--header "Authorization: Bearer ${WAVESPEED_API_KEY}" \
--data-raw '{
"output_format": "jpeg",
"enable_base64_output": false,
"enable_sync_mode": false
}'
# Get the result
curl --location --request GET "https://api.wavespeed.ai/api/v3/predictions/${requestId}/result" \
--header "Authorization: Bearer ${WAVESPEED_API_KEY}"
Parameters
Task Submission Parameters
Request Parameters
| Parameter | Type | Required | Default | Range | Description |
|---|---|---|---|---|---|
| image | string | Yes | - | The image to generate an image from. | |
| output_format | string | No | jpeg | jpeg, png, webp | The format of the output image. |
| enable_base64_output | boolean | No | false | - | If enabled, the output will be encoded into a BASE64 string instead of a URL. This property is only available through the API. |
| enable_sync_mode | boolean | No | false | - | If set to true, the function will wait for the result to be generated and uploaded before returning the response. It allows you to get the result directly in the response. This property is only available through the API. |
Response Parameters
| Parameter | Type | Description |
|---|---|---|
| code | integer | HTTP status code (e.g., 200 for success) |
| message | string | Status message (e.g., “success”) |
| data.id | string | Unique identifier for the prediction, Task Id |
| data.model | string | Model ID used for the prediction |
| data.outputs | array | Array of URLs to the generated content (empty when status is not completed) |
| data.urls | object | Object containing related API endpoints |
| data.urls.get | string | URL to retrieve the prediction result |
| data.has_nsfw_contents | array | Array of boolean values indicating NSFW detection for each output |
| data.status | string | Status of the task: created, processing, completed, or failed |
| data.created_at | string | ISO timestamp of when the request was created (e.g., “2023-04-01T12:34:56.789Z”) |
| 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 |