Recraft AI Recraft Creative Upscale

Recraft AI Recraft Creative Upscale

Playground

Try it on WaveSpeedAI!

Recraft Creative Upscale refines textures and fine details, adding depth and polish to complex elements—not increasing resolution. Ready-to-use REST inference API, best performance, no coldstarts, affordable pricing.

Features

Enhance and upscale images with Recraft’s AI-powered creative upscaler. This intelligent model goes beyond simple resolution increase — it reconstructs details, enhances textures, and improves overall image quality while maintaining natural appearance.

Why It Looks Great

  • Creative enhancement: Intelligently reconstructs details, not just enlarges pixels.
  • Texture improvement: Enhances fine details like hair, skin, fabric, and foliage.
  • Natural results: Maintains authentic appearance without artificial over-sharpening.
  • Simple workflow: Just upload an image — no complex parameters needed.
  • High-quality output: Professional-grade upscaling for print and digital use.

Parameters

ParameterRequiredDescription
imageYesThe image to upscale (upload or public URL, also accepts base64).

How to Use

  1. Upload your image — drag and drop or paste a public URL.
  2. Run — click the button to process.
  3. Download — save your enhanced, upscaled image.

Pricing

Flat rate per image.

OutputCost
Per image$0.25

Best Use Cases

  • Portrait Enhancement — Upscale portraits with improved skin texture and hair detail.
  • Photo Restoration — Enhance older or lower-resolution photos.
  • Print Preparation — Increase resolution for large-format printing.
  • Social Media to Print — Convert web-resolution images for physical media.
  • Product Photography — Enhance product images for catalogs and e-commerce.

Pro Tips for Best Results

  • Start with the highest quality source image available for best results.
  • Works well with portraits, landscapes, and product photography.
  • Creative upscaling adds intelligent detail — ideal for images that need enhancement.
  • For simple resolution increase without creative enhancement, consider standard upscalers.
  • Best results come from images with good composition and reasonable original quality.

Notes

  • If using a URL, ensure it is publicly accessible. A preview thumbnail confirms successful loading.
  • Also accepts base64 encoded images for API integration.
  • Processing time may vary based on image size and complexity.
  • Creative upscaling intelligently enhances details beyond simple interpolation.

Authentication

For authentication details, please refer to the Authentication Guide.

API Endpoints

Submit Task & Query Result

set -euo pipefail

export WAVESPEED_API_KEY="your-api-key"

REQUEST_BODY=$(cat <<'JSON'
{
  "image": "https://interactive-examples.mdn.mozilla.net/media/cc0-images/painted-hand-298-332.jpg"
}
JSON
)

# 1. Submit the prediction.
SUBMIT_RESPONSE=$(curl --silent --show-error --fail-with-body \
  -X POST "https://api.wavespeed.ai/api/v3/recraft-ai/recraft-creative-upscale" \
  -H "Authorization: Bearer ${WAVESPEED_API_KEY}" \
  -H "Content-Type: application/json" \
  -d "${REQUEST_BODY}")

TASK=$(printf '%s' "${SUBMIT_RESPONSE}" | jq 'if type == "object" and has("data") then .data else . end')
PREDICTION_ID=$(printf '%s' "${TASK}" | jq -r '.id // empty')
if [ -z "${PREDICTION_ID}" ]; then
  printf 'Submission response did not contain a prediction id
' >&2
  exit 1
fi
RESULT_URL=$(printf '%s' "${TASK}" | jq -r '.urls.get // empty')
if [ -z "${RESULT_URL}" ]; then RESULT_URL="https://api.wavespeed.ai/api/v3/predictions/${PREDICTION_ID}/result"; fi

# 2. Poll until the prediction finishes.
while true; do
  RESPONSE=$(curl --silent --show-error --fail-with-body \
    "${RESULT_URL}" \
    -H "Authorization: Bearer ${WAVESPEED_API_KEY}")
  RESULT=$(printf '%s' "${RESPONSE}" | jq 'if type == "object" and has("data") then .data else . end')
  STATUS=$(printf '%s' "${RESULT}" | jq -r '.status // empty')

  case "${STATUS}" in
    completed) printf '%s\n' "${RESULT}" | jq '.outputs'; break ;;
    failed|cancelled|timeout) printf '%s\n' "${RESULT}" | jq . >&2; exit 1 ;;
    created|processing) sleep 2 ;;
    *) printf 'Unexpected status: %s
' "${STATUS}" >&2; exit 1 ;;
  esac
done

Parameters

Task Submission Parameters

Request Parameters

ParameterTypeRequiredDefaultRangeDescription
imagestringYes-The image to edit, can be a URL or base64 encoded image.
enable_base64_outputbooleanNofalse-If set to `true`, the prediction's `output` strings are returned as **naked base64** (no `data:<mime>;base64,` prefix). When `false` (default), outputs are returned as URLs pointing to our CDN.

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.outputsarrayOutput values, usually URL strings; some models return text strings or structured result objects (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

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
data.modelstringModel ID used for the prediction
data.outputsarray<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.urlsobjectObject containing related API endpoints
data.urls.getstringURL to poll for the prediction result
data.statusstringStatus: created, processing, completed, or failed
data.created_atstringISO timestamp of when the request was created
data.errorstringError message (empty if no error occurred)
data.timingsobjectObject containing timing details
data.timings.inferenceintegerInference time in milliseconds
© 2026 WaveSpeedAI. All rights reserved.