Ghibli Filter Image

Ghibli Filter Image

Playground

Try it on WaveSpeedAI!

AI Ghibli Filter transforms a photo into Studio Ghibli anime style. Upload an image and get a Ghibli-style result. Ready-to-use REST inference API, no coldstarts, affordable pricing.

Features

Turn any photo into a Studio Ghibli-style illustration in one click. AI Ghibli Filter reimagines your images with the soft watercolor textures, painterly backgrounds, and warm, dreamy color palettes that define Miyazaki’s iconic visual world — no artistic skill needed whatsoever.

Upload a photo and watch it transform into something that looks like it belongs on a Ghibli movie poster.


Why You’ll Love It

  • Instantly recognizable Ghibli aesthetics Soft brushwork, luminous color grading, and hand-painted textures that feel lifted straight from a classic Ghibli film.

  • Works on any photo Portraits, landscapes, street scenes, pets — the filter brings a magical quality to virtually any subject.

  • One-click simplicity Upload a photo, hit Run, done. No settings, no sliders, no learning curve.

  • Endlessly shareable The results are stunning enough to post, print, or gift without any extra editing.


How to Use

  1. Upload your photo — a clear, well-composed image works best.
  2. Hit Run — AI transforms it into a Ghibli-style illustration in seconds.
  3. Download and share your stylized result.

Pricing

Just $0.05 per image.


Best Use Cases

  • Social media content — Make your photos stand out with a painterly, cinematic look.
  • Gifts and keepsakes — Turn a meaningful photo into a piece of Ghibli-style art for someone special.
  • Profile pictures — Give your avatar a unique, illustrated personality.
  • Fan art & creative projects — Reimagine your world through the lens of your favorite animated universe.

Pro Tips

  • Outdoor scenes with natural light, greenery, and open sky produce the most atmospheric Ghibli results.
  • Clear, well-lit photos with a defined subject transform more cleanly than cluttered or low-contrast images.
  • Portraits with a simple background tend to look especially striking after transformation.
  • Try scenic travel photos — landscapes are where the Ghibli aesthetic truly shines.

Notes

  • Image is the only required field.
  • Ensure image URLs are publicly accessible if using a link rather than a direct upload.
  • Please ensure your content complies with WaveSpeed AI’s usage policies.

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/wavespeed-ai/ghibli-filter/image" \
  -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 URL of the input image.

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.