Real Esrgan

Real Esrgan

Playground

Try it on WavespeedAI!

Real-ESRGAN delivers high-quality image super-resolution with optional face correction and adjustable upscale factors. Ready-to-use REST inference API, best performance, no coldstarts, affordable pricing.

Features

Real-ESRGAN — wavespeed-ai/real-esrgan

Real-ESRGAN is an image upscaling and enhancement model that improves resolution and perceived detail while keeping the original content intact. Upload a low-resolution or slightly blurry image and the model produces a sharper, higher-quality result suitable for publishing, sharing, or downstream generation workflows. It’s commonly used as a final polish step for portraits, product photos, and AI-generated images.

Key capabilities

  • Image upscaling (super-resolution) from a single input image
  • Enhances perceived sharpness and fine details
  • Reduces common low-res artifacts and compression noise
  • Works well for portraits, objects, and general photography
  • Simple “upload → enhance” workflow

Use cases

  • Upscale AI-generated images before posting or printing
  • Improve clarity of portraits and faces (light enhancement)
  • Enhance product photos for e-commerce listings
  • Reduce compression artifacts in web images
  • Preprocess inputs for other models that benefit from higher-res images

Pricing

OutputPrice
Per upscaled image$0.0024

Inputs

  • image (required): the image to upscale/enhance

Tips

  • Start with already well-exposed images for best results
  • If the source is extremely blurry, expect improvement but not full recovery of lost detail
  • For stylized images, run a small batch and pick the most natural-looking output

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/real-esrgan" \
--header "Content-Type: application/json" \
--header "Authorization: Bearer ${WAVESPEED_API_KEY}" \
--data-raw '{}'

# 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

ParameterTypeRequiredDefaultRangeDescription
imagestringYes-The URL of the image to generate an image from.

Response Parameters

ParameterTypeDescription
codeintegerHTTP status code (e.g., 200 for success)
messagestringStatus message (e.g., “success”)
data.idstringUnique identifier for the prediction, Task Id
data.modelstringModel ID used for the prediction
data.outputsarrayArray of URLs to the generated content (empty when status is not completed)
data.urlsobjectObject containing related API endpoints
data.urls.getstringURL to retrieve the prediction result
data.has_nsfw_contentsarrayArray of boolean values indicating NSFW detection for each output
data.statusstringStatus of the task: created, processing, completed, or failed
data.created_atstringISO timestamp of when the request was created (e.g., “2023-04-01T12:34:56.789Z”)
data.errorstringError message (empty if no error occurred)
data.timingsobjectObject containing timing details
data.timings.inferenceintegerInference time in milliseconds

Result Request Parameters

ParameterTypeRequiredDefaultDescription
idstringYes-Task ID

Result Response Parameters

ParameterTypeDescription
codeintegerHTTP status code (e.g., 200 for success)
messagestringStatus message (e.g., “success”)
dataobjectThe prediction data object containing all details
data.idstringUnique identifier for the prediction, the ID of the prediction to get
data.modelstringModel ID used for the prediction
data.outputsstringArray of URLs to the generated content (empty when status is not completed).
data.urlsobjectObject containing related API endpoints
data.urls.getstringURL to retrieve the prediction result
data.statusstringStatus of the task: created, processing, completed, or failed
data.created_atstringISO timestamp of when the request was created (e.g., “2023-04-01T12:34:56.789Z”)
data.errorstringError message (empty if no error occurred)
data.timingsobjectObject containing timing details
data.timings.inferenceintegerInference time in milliseconds
© 2025 WaveSpeedAI. All rights reserved.