Image Captioner
Playground
Try it on WavespeedAI!High-accuracy Image Captioner for generating detailed, human-like descriptions from images. Ideal for content understanding, accessibility, dataset labeling, SEO, and multimodal AI workflows. Ready-to-use REST inference API, best performance, no coldstarts, affordable pricing.
Features
Image Captioner API
Overview
The WaveSpeedAI Image Captioner converts images into rich, human-like textual descriptions. Designed for applications requiring vision understanding, accessibility, content moderation, dataset labeling, and SEO enhancement.
Compatible with all image formats and deployable in high-throughput production pipelines.
Key Features
- Generates accurate and natural image descriptions
- Supports detailed object recognition and scene understanding
- Ideal for labeling, accessibility (alt-text), and visual search
- Works in automated workflows and REST API pipelines
Why Use It?
The Image Captioner improves any workflow requiring:
- Content understanding from images
- Automatic alt-text generation for accessibility
- Dataset or training data labeling
- Multimodal pre-processing for LLMs or agents
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-captioner" \
--header "Content-Type: application/json" \
--header "Authorization: Bearer ${WAVESPEED_API_KEY}" \
--data-raw '{
"detail_level": "medium",
"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 | No | - | Image to caption | |
| detail_level | string | No | medium | low, medium, high | Level of detail for the caption. |
| focus | string | No | - | - | Specific area or subject to focus on in the caption (optional). |
| 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 |