curl --request POST \
--url https://api.apimart.ai/v1/images/generations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"model": "qwen-image-3.0",
"prompt": "A cafe poster with the title Autumn Limited, warm tones, refined layout",
"size": "16:9",
"resolution": "1K"
}'
import requests
url = "https://api.apimart.ai/v1/images/generations"
payload = {
"model": "qwen-image-3.0",
"prompt": "A cafe poster with the title Autumn Limited, warm tones, refined layout",
"size": "16:9",
"resolution": "1K",
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json",
}
response = requests.post(url, json=payload, headers=headers)
print(response.json())
const url = "https://api.apimart.ai/v1/images/generations";
const payload = {
model: "qwen-image-3.0",
prompt: "A cafe poster with the title Autumn Limited, warm tones, refined layout",
size: "16:9",
resolution: "1K",
};
const headers = {
Authorization: "Bearer <token>",
"Content-Type": "application/json",
};
fetch(url, {
method: "POST",
headers: headers,
body: JSON.stringify(payload),
})
.then((response) => response.json())
.then((data) => console.log(data))
.catch((error) => console.error("Error:", error));
{
"code": 200,
"data": [
{
"status": "submitted",
"task_id": "task_01JGXYZ1234567890ABCDEF"
}
]
}
{
"error": {
"code": 400,
"message": "Invalid request parameters",
"type": "invalid_request_error"
}
}
{
"error": {
"code": 401,
"message": "Authentication failed, please check your API key",
"type": "authentication_error"
}
}
{
"error": {
"code": 402,
"message": "Insufficient account balance, please top up and try again",
"type": "payment_required"
}
}
{
"error": {
"code": 429,
"message": "Too many requests, please try again later",
"type": "rate_limit_error"
}
}
Qwen Image 3.0
Generación de imágenes Qwen Image 3.0
- Modo de procesamiento asíncrono, devuelve un ID de tarea para consultas posteriores
- Admite texto a imagen e imagen a imagen (1-3 imágenes de referencia para edición)
- Admite resolución 1K / 2K, hasta 6 imágenes por solicitud
- Variantes Standard y Pro (Pro es más potente para diseños densos y texto)
POST
/
v1
/
images
/
generations
curl --request POST \
--url https://api.apimart.ai/v1/images/generations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"model": "qwen-image-3.0",
"prompt": "A cafe poster with the title Autumn Limited, warm tones, refined layout",
"size": "16:9",
"resolution": "1K"
}'
import requests
url = "https://api.apimart.ai/v1/images/generations"
payload = {
"model": "qwen-image-3.0",
"prompt": "A cafe poster with the title Autumn Limited, warm tones, refined layout",
"size": "16:9",
"resolution": "1K",
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json",
}
response = requests.post(url, json=payload, headers=headers)
print(response.json())
const url = "https://api.apimart.ai/v1/images/generations";
const payload = {
model: "qwen-image-3.0",
prompt: "A cafe poster with the title Autumn Limited, warm tones, refined layout",
size: "16:9",
resolution: "1K",
};
const headers = {
Authorization: "Bearer <token>",
"Content-Type": "application/json",
};
fetch(url, {
method: "POST",
headers: headers,
body: JSON.stringify(payload),
})
.then((response) => response.json())
.then((data) => console.log(data))
.catch((error) => console.error("Error:", error));
{
"code": 200,
"data": [
{
"status": "submitted",
"task_id": "task_01JGXYZ1234567890ABCDEF"
}
]
}
{
"error": {
"code": 400,
"message": "Invalid request parameters",
"type": "invalid_request_error"
}
}
{
"error": {
"code": 401,
"message": "Authentication failed, please check your API key",
"type": "authentication_error"
}
}
{
"error": {
"code": 402,
"message": "Insufficient account balance, please top up and try again",
"type": "payment_required"
}
}
{
"error": {
"code": 429,
"message": "Too many requests, please try again later",
"type": "rate_limit_error"
}
}
curl --request POST \
--url https://api.apimart.ai/v1/images/generations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"model": "qwen-image-3.0",
"prompt": "A cafe poster with the title Autumn Limited, warm tones, refined layout",
"size": "16:9",
"resolution": "1K"
}'
import requests
url = "https://api.apimart.ai/v1/images/generations"
payload = {
"model": "qwen-image-3.0",
"prompt": "A cafe poster with the title Autumn Limited, warm tones, refined layout",
"size": "16:9",
"resolution": "1K",
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json",
}
response = requests.post(url, json=payload, headers=headers)
print(response.json())
const url = "https://api.apimart.ai/v1/images/generations";
const payload = {
model: "qwen-image-3.0",
prompt: "A cafe poster with the title Autumn Limited, warm tones, refined layout",
size: "16:9",
resolution: "1K",
};
const headers = {
Authorization: "Bearer <token>",
"Content-Type": "application/json",
};
fetch(url, {
method: "POST",
headers: headers,
body: JSON.stringify(payload),
})
.then((response) => response.json())
.then((data) => console.log(data))
.catch((error) => console.error("Error:", error));
{
"code": 200,
"data": [
{
"status": "submitted",
"task_id": "task_01JGXYZ1234567890ABCDEF"
}
]
}
{
"error": {
"code": 400,
"message": "Invalid request parameters",
"type": "invalid_request_error"
}
}
{
"error": {
"code": 401,
"message": "Authentication failed, please check your API key",
"type": "authentication_error"
}
}
{
"error": {
"code": 402,
"message": "Insufficient account balance, please top up and try again",
"type": "payment_required"
}
}
{
"error": {
"code": 429,
"message": "Too many requests, please try again later",
"type": "rate_limit_error"
}
}
Modelos admitidos
| Modelo | Descripción | Máx. imágenes | Resolución |
|---|---|---|---|
qwen-image-3.0 | Seguimiento claro de instrucciones, renderizado de texto estable; mejor valor para uso general | 6 | 1K / 2K |
qwen-image-3.0-pro | Contenido más rico; ideal para periódicos, storyboards, menús, exámenes, diseños densos | 6 | 1K / 2K |
Prefiera
-pro para texto/diseño denso. Use qwen-image-3.0 para imágenes generales. Prompt máx. ~4.5k tokens. Los nombres de modelo no son intercambiables con la serie 2.0.Autorizaciones
string
requerido
Todos los endpoints requieren autenticación mediante Bearer TokenObtenga su clave de API en la página de gestión de claves de API:
Authorization: Bearer YOUR_API_KEY
Body
string
requerido
Nombre del modelo
qwen-image-3.0- Standardqwen-image-3.0-pro- Pro (texto / diseño denso)
boolean
predeterminado:"false"
Indica si se debe moderar el contenido antes de enviar la tarea de imagen.
true: revisar los prompts y las imágenes de entrada conomni-moderation-latestfalseu omitido: no enviar una solicitud de moderación, sin coste ni latencia de moderación adicionales (predeterminado)
string
requerido
Descripción textual para la generación de imágenes, máx. ~4.5k tokens
string[]
Array de URL de imágenes de referencia (imagen a imagen / edición), 1-3 imágenes
- URL pública
http(s)://odata:image/png;base64,...(el base64 se vuelve a subir primero) - Formatos: JPG / JPEG / PNG / BMP / TIFF / WEBP / GIF
- Por archivo ≤ 10MB; ancho/alto recomendados 384-2048 px
string
predeterminado:"1K"
Nivel de resolución (afecta el nivel de facturación)
1K(predeterminado; se aceptan minúsculas)2K
size (p. ej. 1600x900). Con píxeles en bruto, un área > 2,25M píxeles se factura como 2K.string
predeterminado:"1:1"
Proporción de aspecto, o tamaño en píxeles explícitoProporciones admitidas:
1:1(predeterminado)4:3/3:416:9/9:163:2/2:3
16x9, o píxeles como 1024x1024. Para píxeles personalizados, cada lado (ancho y alto) debe ser 512–2048, relación de aspecto 1:8 ~ 8:1.Si no se define ni size ni resolution, la salida se fija en 1024×1024.integer
predeterminado:"1"
Número de imágenes, 1-6. Los valores superiores a 6 se limitan a 6.
string
Prompt negativo: contenido a evitar
boolean
predeterminado:"false"
Reescritura inteligente del promptDesactivado por defecto para resultados predecibles. Establezca
true para activar la reescritura inteligente.string
Modo de reescritura (solo serie 3.0; requiere
prompt_extend: true)direct- funciona para texto a imagen e imagen a imagenagent- solo texto a imagen, reescritura más agresiva
Tabla de referencia de tamaños
Combineresolution (nivel) + size (proporción):
| Resolución | 1:1 | 4:3 | 3:4 | 16:9 | 9:16 | 3:2 | 2:3 |
|---|---|---|---|---|---|---|---|
| 1K | 1024×1024 | 1152×864 | 864×1152 | 1280×720 | 720×1280 | 1248×832 | 832×1248 |
| 2K | 2048×2048 | 2048×1536 | 1536×2048 | 2048×1152 | 1152×2048 | 2048×1360 | 1360×2048 |
Casos de uso
Texto a imagen (múltiples)
{
"model": "qwen-image-3.0",
"prompt": "Flat illustration of a city skyline at dusk, warm orange tones",
"size": "16:9",
"resolution": "1K",
"n": 4
}
Diseño denso con reescritura
{
"model": "qwen-image-3.0-pro",
"prompt": "A Western restaurant menu with appetizers, mains, and desserts columns, five dishes each with prices, serif font, cream background",
"size": "3:4",
"resolution": "2K",
"prompt_extend": true,
"prompt_extend_mode": "agent"
}
Imagen a imagen (edición)
{
"model": "qwen-image-3.0-pro",
"prompt": "Change the sign text to Open, keep everything else the same",
"image_urls": ["https://example.com/shop.jpg"],
"size": "1:1"
}
Prompt negativo
{
"model": "qwen-image-3.0",
"prompt": "Photorealistic mountain cabin in morning mist",
"negative_prompt": "text, watermark, people, low resolution",
"size": "3:2"
}
Límites
| Elemento | Límite |
|---|---|
| Prompt | ≤ 4.5k tokens |
| Tamaño de salida | Píxeles personalizados: cada lado 512–2048; aspecto 1:8 ~ 8:1 |
| Cantidad de imágenes | 1-6 (exceso limitado) |
| Imágenes de referencia | 1-3 |
| Formatos de referencia | JPG / JPEG / PNG / BMP / TIFF / WEBP / GIF |
| Tamaño de referencia | ≤ 10MB; ancho/alto recomendados 384-2048 px |
Response
integer
Código de estado; 200 en caso de éxito
array
Diferencias respecto a 2.0
| Serie 2.0 | Serie 3.0 | |
|---|---|---|
| Longitud del prompt | Más corta | ~4.5k tokens |
prompt_extend_mode | No admitido | direct / agent |
| Resolución | 1K / 2K | 1K / 2K (Pro 2K cuesta más) |
| Imágenes de referencia | Admitido | 1-3 imágenes |
Notas
- Asíncrono: el envío devuelve un
task_id. Consulte Obtener el estado de la tarea cada 3~5 segundos; timeout del cliente ~3 minutos (2K + multi-imagen es más lento). - Almacenamiento: las imágenes se reflejan en el CDN de la plataforma para acceso a largo plazo.
- Facturación: por imagen entregada × nivel de resolución según el área real en píxeles (> 2,25M píxeles = 2K).
qwen-image-3.0cobra lo mismo por 1K/2K;-pro2K es 2× 1K. Los fallos se reembolsan por completo; las imágenes de referencia son gratuitas. - Errores: tamaño/proporción no válidos,
agenten imagen a imagen, referencias inaccesibles/demasiado grandes → 400; límite de tasa → 429.
Consultar resultadosUse Obtener el estado de la tarea para el progreso y
result.images.