Alibaba Qwen Image Translate
Playground
Try it on WavespeedAI!Alibaba Qwen Vision Translate offers OCR-based image understanding and multilingual in-image text translation for context-aware results. Ready-to-use REST inference API, best performance, no coldstarts, affordable pricing.
Features
Alibaba Qwen Translate – Image Understanding and Translation
Alibaba Qwen Translate is a multimodal model on Alibaba Cloud’s DashScope that combines high-accuracy OCR with multilingual translation. On WaveSpeedAI, it turns screenshots, documents, menus, and posters into clean, translated text in just a few seconds.
Why it stands out
-
Accurate OCR Extracts printed and many handwritten texts from photos, scans, and UI screenshots.
-
Strong multilingual support Detects and translates across English, Chinese, Japanese, Korean, French, German, Spanish, Russian, Arabic, and more.
-
Terminology and sensitive-word control Lets you define custom terminologies for domain-specific vocabulary and filter sensitive words in the output.
-
Document and layout awareness Handles forms, receipts, signs, and scanned pages with automatic text-region detection.
-
Fast, practical performance Suitable for real-world scenarios like menu translation, travel signage, study materials, and quick data capture.
Limits and performance
- Supported input formats: PNG, JPEG, WEBP
- Output: extracted text plus translation into the selected target language
- Typical processing time: around 3–6 seconds per image
- Segmentation: automatic text-region detection (can be disabled via the skip_image_segment option)
Pricing
| Task type | Cost per image |
|---|---|
| OCR / Translation | $0.01 |
Flat pricing: every processed image is billed at $0.01, regardless of language pair or content length.
How to use
- Upload the image that contains the text you want to extract and translate.
- Set source_lang (for example: auto, en, zh, ja, ko, fr, de, es, ru, ar).
- Choose target_lang for the translation output.
- (Optional) Provide a terminologies list to enforce consistent translations for key terms.
- (Optional) Add sensitives to mask or filter sensitive words.
- (Optional) Enable skip_image_segment if you want to bypass automatic text-region segmentation.
- Run the job and view or download the extracted and translated text from the WaveSpeedAI interface.
Pro tips for best quality
- Upload clear, high-resolution images; avoid heavy compression or motion blur.
- Use
autofor source_lang when the input might contain mixed or unknown languages. - Define terminologies for verticals like finance, medicine, or e-commerce to keep key phrases consistent.
- Use sensitives to redact or mask names, IDs, or other sensitive fields before downstream use.
- Keep segmentation enabled when working with complex layouts (tables, multi-column documents, or posters).
Works well with other WaveSpeedAI models
-
Google Nano Banana Pro – generate or edit high-quality localized visuals after you extract and translate text: Nano Banana Pro
-
ByteDance Seedream v4 – create style-consistent localized posters, banners, and illustration sets based on the translated content: ByteDance Seedream v4
Notes
- Ideal for document digitization, translation of signage and menus, multilingual education content, and accessibility tools.
- For URL-based images, make sure the link is publicly accessible; a valid image will show a preview in the WaveSpeedAI UI before you run the task.
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/alibaba/qwen-image/translate" \
--header "Content-Type: application/json" \
--header "Authorization: Bearer ${WAVESPEED_API_KEY}" \
--data-raw '{
"source_lang": "auto",
"target_lang": "zh",
"sensitives": [],
"terminologies": [],
"skip_image_segment": 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 process for translation | |
| source_lang | string | No | auto | auto, en, zh, ja, ko, fr, de, es, ru, ar | Source language code (auto for auto-detection) |
| target_lang | string | Yes | zh | en, zh, ja, ko, fr, de, es, ru, ar | Target language code for translation |
| domain_hint | string | No | - | - | If you want the translation style to be more in line with the characteristics of a certain field, you can use English to describe the usage scenario, translation style and other field requirements. In order to ensure the translation effect, it is recommended that the length does not exceed 200 English words. |
| sensitives | array | No | [] | - | Array of sensitive words to filter |
| terminologies | array | No | [] | - | Array of terminoogies to use for translation |
| skip_image_segment | boolean | No | false | - | Whether to skip image segmentation |
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 |
Result Request Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| id | string | Yes | - | Task ID |
Result Response Parameters
| Parameter | Type | Description |
|---|---|---|
| code | integer | HTTP status code (e.g., 200 for success) |
| message | string | Status message (e.g., “success”) |
| data | object | The prediction data object containing all details |
| data.id | string | Unique identifier for the prediction, the ID of the prediction to get |
| data.model | string | Model ID used for the prediction |
| data.outputs | object | 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.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 |