Qwen Image 2.1 Turbo
Qwen Image 2.1 Turbo is Alibaba's high-speed, cost-optimized edition of the flagship Qwen Image 2.1 vision model. Engineered on a refined 7B single-stream DiT architecture, it compresses generation down to just 8 denoising steps without sacrificing output fidelity. Qwen Image 2.1 Turbo unifies rapid 2K image rendering, native transparent background (RGBA) generation, and intuitive multi-image reference editing into a single stream.
Qwen Image 2.1 Turbo
Qwen Image 2.1 Turbo is Alibaba's high-speed, cost-effective image generation and editing model built on a unified multimodal diffusion architecture. Optimized for rapid inference, high concurrency, and low latency, it supports text-to-image, image-to-image, instruction-based editing, and native transparent background generation with up to 10 input reference images. It supports arbitrary aspect ratios from 1:8 to 8:1 with native output resolutions up to 2K (total pixel range between 512×512 and 2048×2048).
Base URL
https://api.icreat.ai
Authentication
All API requests must be authenticated with an API Key. You can obtain an API Key from the console.
export ICREAT_API_KEY="your-api-key-here"
HTTP Request Headers
import os
API_KEY = os.environ.get("ICREAT_API_KEY")
headers = {
"Content-Type": "application/json",
"Authorization": "Bearer " + API_KEY,
}
Protect your API Key Never expose your API Key in client-side code or public repositories. Use environment variables or a backend proxy.
Code Examples
Image generation uses a two-step async flow: submit a task to get task_id, then poll via query task result; the response includes status and result ([] while processing; on SUCCEEDED, result holds resources and costUSD is present). The examples below use the same task_id across both steps.
1. Submit Task
Send a generation request to the submit endpoint.
2. Query Task Result (Poll)
Use the task_id from submit to poll progress (repeat until terminal). The response includes status and result: result is [] while processing; on SUCCEEDED, result holds resources and costUSD is included; FAILED means the task failed.
Input Schema
Submit Task — Input
The following parameters are accepted in the submit request body.
Total: 2 Required: 1 Optional: 1
Generation input payload.
Generation parameters.
Query Task Result — Input
Total: 1 Required: 1 Optional: 0
The task ID returned from the submit endpoint.
Output Schema
Submit Task — Output
Total: 1
Async task identifier.
Query Task Result — Output
Total: variable
Current task status. result is usually [] until success; on SUCCEEDED, result holds resources and costUSD is present.
Generated resources. Empty array while processing or on failure; array of objects on success.
Task cost in USD ($0.016 per successful generation). Present only when status is SUCCEEDED.
LLM Prompt
The Markdown below is an LLM-friendly prompt you can paste into AI assistants (e.g. Cursor, ChatGPT) to help them understand this model's API, call flow, and key parameters. Use Copy for AI or copy from the code block below.
# aliyun/qwen-image-2-1-turbo
> Qwen Image 2.1 Turbo is Alibaba's lightweight, high-speed image generation and editing model offering unified text-to-image, multi-reference image editing, and native 2K resolution support.
## Overview
Use the iCreat two-step async task API: submit a generation request, then poll the query task result endpoint; on success read resources from `result` (includes `costUSD`).
## API Info
- **Base URL**:`https://api.icreat.ai`
- **Submit endpoint (POST)**:`/v1/task/submit/aliyun/qwen-image-2-1-turbo`
- **Query result endpoint (POST)**:`/v1/task/result`
- **Model ID**:`aliyun/qwen-image-2-1-turbo`
- **Auth**:`Authorization: Bearer ${ICREAT_API_KEY}`
## Call Flow
1. **Submit**: POST submit path with body per Input Notes; response `{ "task_id": "..." }`
2. **Query result**: POST `/v1/task/result` with `{ "task_id": "..." }`; response includes `status` and `result` (`[]` while processing); on `SUCCEEDED`, `result` holds resources and `costUSD` is present; read `url` or `download_url` when `type` is `Image`
### Input Notes
- Top-level body: `input` (object) + `parameters` (object) as siblings
- `input.messages` (required)
- `input.messages[].role` (required): Message role (`user`).
- `input.messages[].content` (required): Array of `{ "text": "..." }` and/or `{ "image": "..." }` (up to 10 images)
- `input.messages[].content[].text` (optional): Text prompt or editing instruction.
- `input.messages[].content[].image` (optional): Reference image URL for image editing / img2img.
- `parameters.size` (optional): Output image size (e.g., `"1024*1024"`, `"2048*2048"`, `"2688*1536"`), within 512×512 to 2048×2048 total pixel range.
- `parameters.watermark` (optional): Whether to add a watermark (`false` by default).
### Output Notes
- Poll: read `status`; `result` is `[]` while processing
- Success: `result` is `[{ "type": "Image", "url": "...", "download_url": "..." }]` plus `costUSD` ($0.016)
## Notes
- Use the same `task_id` across both steps; `result` is `[]` while processing — keep polling
- `FAILED` is terminal — check request parameters or reference media
- `input` and `parameters` are sibling top-level fields; do not nest them
