# Qwen Image 2.0 API Referencia completa de la API para los modelos Qwen Image 2.0 impulsados por Alibaba Qwen. ## Variantes de modelo Esta API admite cuatro variantes de modelo: | Modelo | ID | Descripción | |-------|-----|-------------| | **Qwen Image 2** | `qwen-image-2.0` | Generación de texto a imagen | | **Qwen Image 2 Edit** | `qwen-image-2.0-edit` | Edición de imágenes y composición con varias imágenes | | **Qwen Image 2 Pro** | `qwen-image-2.0-pro` | Generación mejorada de texto a imagen con mayor calidad de salida | | **Qwen Image 2 Pro Edit** | `qwen-image-2.0-pro-edit` | Edición mejorada de imágenes y composición con varias imágenes | ## Comparación rápida | Función | Estándar | Pro | |---------|----------|-----| | Texto a imagen | ✅ Sí | ✅ Sí | | Edición de imágenes | ✅ Sí | ✅ Sí | | Relaciones de aspecto | 7 opciones | 7 opciones | | Entrada de imagen (Edit) | ✅ Sí (1-6 imágenes) | ✅ Sí (1-6 imágenes) | | Compatibilidad con varias imágenes | ✅ Sí | ✅ Sí | | Calidad de salida | Estándar | Mejorada | | Función | Texto a imagen | Edit | |---------|---------------|------| | Entrada | Prompt de texto | Imagen(es) + prompt de texto | | Entrada de imagen | ❌ No | ✅ Sí (1-6 imágenes) | | Compatibilidad con varias imágenes | ❌ No | ✅ Sí | | Compatibilidad con seed | ✅ Opcional | ✅ Opcional | ### Relaciones de aspecto compatibles Los modelos Standard y Pro admiten 7 relaciones de aspecto: - `16:9` (default), `9:16`, `1:1`, `4:3`, `3:4`, `3:2`, `2:3` ## Qwen Image 2 (Texto a imagen) ### Punto de conexión ``` POST /api/v1/image/task ``` ### Autenticación ``` Authorization: Bearer YOUR_API_KEY ``` ### Parámetros de solicitud #### Obligatorio | Parámetro | Tipo | Descripción | |-----------|------|-------------| | `model_name` | string | Debe ser `"qwen-image-2.0"` | | `prompt` | string | Prompt de generación de imagen | | `width` | number | Valor de la relación de anchura (p. ej., 16 para 16:9) | | `height` | number | Valor de la relación de altura (p. ej., 9 para 16:9) | **Nota:** La relación width:height debe ser una de: `16:9`, `9:16`, `1:1`, `4:3`, `3:4`, `3:2`, `2:3` #### Opcional | Parámetro | Tipo | Descripción | |-----------|------|-------------| | `seed` | number | Seed aleatoria para resultados reproducibles | ### Solicitud de ejemplo ```javascript const response = await fetch('https://api.flaq.ai/api/v1/image/task', { method: 'POST', headers: { 'Authorization': 'Bearer YOUR_API_KEY', 'Content-Type': 'application/json' }, body: JSON.stringify({ model_name: 'qwen-image-2.0', prompt: 'A serene mountain landscape at sunset', width: 16, height: 9 }) }); const { data } = await response.json(); const taskId = data.task_id; // Poll for results const pollResponse = await fetch( `https://api.flaq.ai/api/v1/image/${taskId}`, { headers: { 'Authorization': 'Bearer YOUR_API_KEY' } } ); const result = await pollResponse.json(); console.log(result.data.task_result.images[0].url); ``` ## Qwen Image 2 Edit (Edición de imágenes) ### Punto de conexión ``` POST /api/v1/image/task ``` ### Parámetros de solicitud #### Obligatorio | Parámetro | Tipo | Descripción | |-----------|------|-------------| | `model_name` | string | Debe ser `"qwen-image-2.0-edit"` | | `prompt` | string | Descripción de las ediciones deseadas | | `width` | number | Valor de la relación de anchura (p. ej., 16 para 16:9) | | `height` | number | Valor de la relación de altura (p. ej., 9 para 16:9) | | `image_url_list` | string[] | Array de URL de imágenes de entrada (1-6 elementos) | **Nota:** La relación width:height debe ser una de: `16:9`, `9:16`, `1:1`, `4:3`, `3:4`, `3:2`, `2:3` #### Opcional | Parámetro | Tipo | Descripción | |-----------|------|-------------| | `seed` | number | Seed aleatoria para resultados reproducibles | ### Ejemplo de edición de una sola imagen ```javascript { model_name: 'qwen-image-2.0-edit', prompt: 'Change the sky to sunset colors', width: 16, height: 9, image_url_list: ['https://example.com/image.jpg'] } ``` ### Ejemplo de composición con varias imágenes Se pueden combinar hasta 6 imágenes en una sola solicitud: ```javascript { model_name: 'qwen-image-2.0-edit', prompt: 'Combine these images into a cohesive landscape', width: 16, height: 9, image_url_list: ['https://example.com/image1.jpg', 'https://example.com/image2.jpg', 'https://example.com/image3.jpg'] } ``` ## Qwen Image 2 Pro (Texto a imagen) Usa los mismos parámetros que Qwen Image 2, con `model_name` establecido en `qwen-image-2.0-pro` para mejorar la calidad de salida. ### Solicitud de ejemplo ```javascript const response = await fetch('https://api.flaq.ai/api/v1/image/task', { method: 'POST', headers: { 'Authorization': 'Bearer YOUR_API_KEY', 'Content-Type': 'application/json' }, body: JSON.stringify({ model_name: 'qwen-image-2.0-pro', prompt: 'A serene mountain landscape at sunset', width: 16, height: 9 }) }); const { data } = await response.json(); const taskId = data.task_id; ``` ## Qwen Image 2 Pro Edit (Edición de imágenes) Usa los mismos parámetros que Qwen Image 2 Edit, con `model_name` establecido en `qwen-image-2.0-pro-edit` para mejorar la calidad de salida. ### Solicitud de ejemplo ```javascript const response = await fetch('https://api.flaq.ai/api/v1/image/task', { method: 'POST', headers: { 'Authorization': 'Bearer YOUR_API_KEY', 'Content-Type': 'application/json' }, body: JSON.stringify({ model_name: 'qwen-image-2.0-pro-edit', prompt: 'Change the sky to sunset colors', width: 16, height: 9, image_url_list: ['https://example.com/image.jpg'] }) }); const { data } = await response.json(); const taskId = data.task_id; ``` ## Formato de respuesta ### Respuesta inicial Todos los modelos devuelven un `task_id` para consultar el estado: ```json { "code": 0, "data": { "task_id": "{task_id}", "task_status": "submitted", "response_url": "https://api.flaq.ai/api/v1/image/{task_id}" }, "message": "success" } ``` ### Respuesta de consulta Consulta `GET /api/v1/image/{taskId}` para comprobar el estado: ```json { "code": 0, "data": { "task_id": "{task_id}", "task_status": "succeed", "task_status_msg": null, "response_url": "https://api.flaq.ai/api/v1/image/{task_id}", "task_result": { "credit": 0.0997, "images": [ { "url": "https://example.com/generated-image.jpeg" } ] } }, "message": "success" } ``` ### Valores de estado - `submitted`: Tarea aceptada - `processing`: Generación en curso - `succeed`: Generación completada correctamente - `failed`: La generación falló ## Manejo de errores ### Errores comunes **Invalid Relación de aspecto** ```json { "code": 400, "message": "Ratio must be one of: 16:9, 9:16, 1:1, 4:3, 3:4, 3:2, 2:3" } ``` **URL de imagen faltante (modo de edición)** ```json { "code": 400, "message": "image_url_list is required for edit models" } ``` **Demasiadas imágenes (modo de edición)** ```json { "code": 400, "message": "image_url_list supports a maximum of 6 images" } ``` **Unauthorized** ```json { "code": 401, "message": "Invalid or missing API key" } ``` ## Buenas prácticas ### Consejos para texto a imagen 1. **Sé específico**: Incluye detalles de sujeto, estilo, iluminación y composición en el prompt 2. **Selección de relación de aspecto**: Elige la relación según tu caso de uso (16:9 para banners web, 9:16 para móvil, 1:1 para redes sociales) 3. **Usa seed para reproducibilidad**: Establece un valor fijo de `seed` cuando necesites resultados coherentes entre solicitudes 4. **Standard vs Pro**: Usa Standard para iteración rápida cuando la calidad de salida sea la prioridad ### Consejos para edición de imágenes 1. **Instrucciones claras**: Sé específico sobre qué cambiar en el prompt 2. **Composición con varias imágenes**: Proporciona hasta 6 imágenes y describe cómo deben combinarse 3. **Guía del prompt**: Describe el resultado deseado en lugar de limitarte a enumerar cambios 4. **Calidad de imagen**: Las imágenes de entrada de mayor calidad suelen producir mejores resultados de edición