Image Upscaler
Playground
Try it on WavespeedAI!The AI image upscaler is a powerful tool designed to enhance the resolution and quality of image. Our model allows users to choose different levels of enhancement by adjusting the value of creativity.
Features
WaveSpeedAI — AI Image Upscaler
The AI Image Upscaler is a high-performance enhancement model that intelligently increases image resolution while preserving details, sharpness, and natural texture. It uses advanced deep learning upscaling to restore fine features and eliminate blur or compression artifacts.
⚙️ Key Features
- 
Multi-Level Resolution Enhancement Supports upscale outputs to 2K, 4K, and 8K resolution.
 - 
Detail Preservation Retains texture and structure without introducing artifacts or noise.
 - 
Adaptive Creativity Control Adjust the creativity level to balance realism and stylized enhancement.
 - 
Flexible Output Formats Choose between JPEG, PNG, or WEBP for your preferred output.
 - 
Fast & Efficient Optimized inference ensures fast processing even for high-resolution images.
 
💡 Recommended Use Cases
- Professional photography restoration
 - AI artwork enhancement
 - Product image and marketing material optimization
 - Upscaling low-resolution screenshots or videos
 
💰 Pricing
Every run only for $0.01 !!!
📝 Notes
- Please ensure your input image quality is reasonably clear for optimal enhancement.
 - For extremely low-resolution or compressed inputs, try 4K mode for better reconstruction.
 - If you need ultra-high fidelity upscaling, consider upgrading to Ultimate Image Upscaler.
 
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-upscaler" \
--header "Content-Type: application/json" \
--header "Authorization: Bearer ${WAVESPEED_API_KEY}" \
--data-raw '{
    "creativity": 0,
    "target_resolution": "4k",
    "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 URL of the image to generate an image from. | |
| creativity | number | No | - | -2 ~ 2 | Controls how strongly the upscaler will try to improve the image quality. | 
| target_resolution | string | No | 4k | 2k, 4k, 8k | The target resolution of the generated media. | 
| 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 |