Recraft Ai Recraft Crisp Upscale
Playground
Try it on WavespeedAI!Recraft Crisp Upscale enhances textures, fine details, and facial features to add depth beyond simple resolution boosts. Ready-to-use REST inference API, best performance, no coldstarts, affordable pricing.
Features
Recraft Crisp Upscale – Image Restoration and Super-Resolution
Recraft Crisp Upscale is an AI-powered enhancer from Recraft that turns low-resolution, noisy, or aged photos into sharper, cleaner, high-resolution images. It is especially strong on portraits and fine details, making it ideal for photo restoration, profile pictures, product images, and social media visuals.
Why it stands out
-
Crisp detail recovery Sharpens edges, textures, and facial features so eyes, hair, and fabric folds look clean and well-defined.
-
Noise and artifact reduction Smooths grain, JPEG blocks, and minor motion blur while preserving structure and character identity.
-
Natural, photo-friendly look Enhances clarity without plastic skin or over-sharpening, keeping the original mood and style of the image.
-
Drop-in enhancement step Works as a final polish in your pipeline: restore old scans, then pass the result straight to design tools, websites, or print.
-
Flexible delivery Returns a standard image URL by default, or base64-encoded data when you enable base64 output via API.
Limits and performance
- Input: single image (portrait, product photo, scan, or other)
- Output: enhanced, higher-quality version of the same image (same composition and framing)
- Typical processing time: a few seconds per image, depending on size and queue load
- Best for: portraits and real-world photos; heavily stylised art may benefit but is not the primary target
The model focuses on restoration and super-resolution; it does not change content or composition beyond subtle aesthetic enhancement.
Pricing
Simple per-image billing:
- $0.004 per processed image
Pro tips for best quality
- Use the highest-quality version of your original image; less compression and higher resolution give the model more to work with.
- For very old or heavily damaged scans, consider basic dust or scratch removal before running Crisp Upscale.
- Use it as the last step after colour correction or light retouching to maximise overall clarity and perceived resolution.
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/recraft-ai/recraft-crisp-upscale" \
--header "Content-Type: application/json" \
--header "Authorization: Bearer ${WAVESPEED_API_KEY}" \
--data-raw '{
"enable_base64_output": 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 edit, can be a URL or base64 encoded 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. |
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 |