Qwen Image Text To Image
Playground
Try it on WavespeedAI!Qwen-Image is a 20B MMDiT next-gen text-to-image model that generates images from text prompts. Ready-to-use REST inference API, best performance, no coldstarts, affordable pricing.
Features
Qwen-Image (Text-to-Image)
Qwen-Image is a 20B MMDiT-based text-to-image generation model, especially strong at native text rendering in both English and Chinese. It is a powerful creative tool for posters, comics, and visual storytelling, while also excelling at general image generation from photorealism to anime.
Why it looks great
- SOTA text rendering: Rivals GPT-4o in English and best-in-class for Chinese.
- In-pixel text generation: Text is fully integrated into the image (no overlays).
- Bilingual typography: Handles diverse fonts, styles, and complex layouts.
- General image capability: Excels across styles—photorealistic, anime, impressionist, minimalist.
Limits and Performance
- Max resolution per job: up to 1536 × 1536 pixels
- Custom size: manually set width & height
- Output formats: JPEG / PNG / WEBP
- Processing speed: ~5–8 seconds per image (depends on size & queue)
- Input prompt: supports detailed, multi-line descriptions
Price
Only $0.02 per image!!!
How to Use
- Write a prompt describing the image (can include embedded text).
- Adjust size (width & height, up to 1536×1536).
- Set a seed for reproducibility.
- Choose output_format.
- Run the job and download the generated image.
Pro tips for best quality
- For poster design, explicitly describe font style, placement, and mood.
- For bilingual text, specify both Chinese and English in the prompt.
- Use consistent seeds to regenerate similar layouts with slight variations.
- Keep height:width ratio balanced for best typography results.
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/qwen-image/text-to-image" \
--header "Content-Type: application/json" \
--header "Authorization: Bearer ${WAVESPEED_API_KEY}" \
--data-raw '{
"size": "1024*1024",
"seed": -1,
"output_format": "jpeg",
"enable_sync_mode": false,
"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 |
|---|---|---|---|---|---|
| prompt | string | Yes | - | The positive prompt for the generation. | |
| size | string | No | 1024*1024 | 256 ~ 1536 per dimension | The size of the generated media in pixels (width*height). |
| seed | integer | No | -1 | -1 ~ 2147483647 | The random seed to use for the generation. -1 means a random seed will be used. |
| output_format | string | No | jpeg | jpeg, png, webp | The format of the output image. |
| 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. |
| 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 |