Guía rápida de la API Qwen Image 2512: Genera imágenes en minutos (2026)
Hola, soy Dora. Solía pasar mucho tiempo creando imágenes para productos: buscando recursos, redimensionándolos, renombrando archivos, organizando carpetas… cada paso repetido sin fin. Nada era difícil, pero era tedioso. Luego, probé la API de Qwen Image 2512 y descubrí que podía automatizar todo esto con solo algunas líneas de código.
Esto no es un anuncio. Solo estoy compartiendo lo que realmente pasó cuando lo probé — qué funcionó sin problemas, dónde tropecé y cómo lo hice útil de manera confiable.
Atajo de WaveSpeed (Si solo quieres resultados)
Si solo quieres generar imágenes rápidamente, sin configurar todo tú mismo:
- WaveSpeed ya proporciona una API REST de Qwen Image 2512 lista para usar (sin inicios en frío).
- Usa el punto final de WaveSpeed + clave API → listo.
- Si quieres entender el flujo oficial de DashScope (y los problemas comunes), sigue leyendo.
¿Qué puede hacer realmente esta API?
Simplemente: escribes una descripción en texto y obtienes una imagen.
Por ejemplo, si escribes:
“Un escritorio ordenado con un cuaderno y una planta bajo luz suave”
unos segundos después, obtienes una imagen que coincide con tu descripción — y puedes guardarla automáticamente en tu computadora.
Lo que es bueno para:
- Crear paneles de inspiración
- Generar miniaturas rápidamente
- Añadir imágenes de marcador de posición a documentos
- Crear prototipos visuales para productos
Lo que noté:
La primera vez que lo usé, no parecía mucho más rápido que buscar imágenes manualmente. Pero después de dos o tres ejecuciones, me di cuenta de que ya no tenía que preocuparme por “¿qué tamaño debería ser?” o “¿cómo debería nombrar el archivo?”. Lo que me ahorró no fue solo tiempo, sino esfuerzo mental.
Formato de imagen y almacenamiento
- Formato: PNG, generado automáticamente de forma predeterminada
- Dónde se almacena la imagen:
- La API devuelve un enlace (URL) a la imagen
- El enlace apunta a un servidor de Alibaba Cloud
- Importante: el enlace solo es válido durante 24 horas; después, caduca
- Así que necesitas descargarlo en tu computadora rápidamente
Nota: La API no te da el archivo de imagen directamente. Si quieres guardarlo localmente, necesitas añadir un paso de descarga en tu código (explicado después).
Antes de empezar: qué necesitas
Paso 1: Obtén una cuenta y una clave API
- Regístrate para obtener una cuenta de Alibaba Cloud

- Ve a la Consola de Model Studio
- Genera una clave API (como una clave que prueba que eres tú)
- Guarda la clave como una variable de entorno llamada
DASHSCOPE_API_KEY
Variable de entorno:
Piénsalo como un lugar especial en tu computadora donde vive tu clave, así tu código puede encontrarla automáticamente sin copiar y pegar cada vez.
Consejos:
- Para pruebas, puedes almacenarla en un archivo
.env - Para uso real, una herramienta segura de gestión de claves es más segura
- Las regiones de Beijing y Singapur tienen claves diferentes — no las mezcles
Paso 2: Elige una herramienta
Hay tres formas principales, comenzando por la más simple:

-
cURL (la más simple)
- Buena para pruebas rápidas para ver si la API funciona
- No se requiere programación, solo pega el comando
- Recomendado para el primer intento
-
Python (la más común)
- Buena para crear una pequeña herramienta para uso repetido
- Uso el SDK oficial de DashScope para manejar muchos detalles automáticamente
- Ayuda tener algunos conocimientos básicos de Python
-
Node.js (amigable para desarrolladores frontend)
- Si eres desarrollador frontend, esto también funciona
- Los principios son los mismos, aunque no lo cubrí aquí
Prueba el Playground primero:
Si solo quieres probar resultados rápidamente, Wavespeed Playground te permite generar imágenes en el navegador. Perfecto para uso ocasional. Para generación por lotes o automatización, sigue leyendo para aprender a usar la API.
Inicio rápido: pruebas con cURL
Abre tu terminal (Mac) o símbolo del sistema (Windows) y pega esto:
curl --location 'https://dashscope.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation' \
--header 'Content-Type: application/json' \
--header "Authorization: Bearer $DASHSCOPE_API_KEY" \
--data '{
"model": "qwen-image-max",
"input": {
"messages": [
{
"role": "user",
"content": [
{"text": "A tidy desk with a notebook and a plant under soft light"}
]
}
]
},
"parameters": {
"size": "1024*1024"
}
}'
Presiona Enter, espera unos segundos, y verás una respuesta JSON con un enlace a tu imagen.
Problemas en los que caí
- El nombre del modelo debe ser
qwen-image-max, noqwen-image-2512ni nada más. - El formato de tamaño usa un asterisco
1024*1024, no1024x1024. - Para la región de Singapur, cambia la URL a:
https://dashscope-intl.aliyuncs.com/api/v1/...
Si estás construyendo algo tipo producción, el flujo oficial de DashScope es totalmente viable — pero viene con detalles operacionales (regiones, vidas útiles de URL, reintentos). Exactamente por eso me encanta usar WaveSpeed para el trabajo diario: me da Qwen Image 2512 detrás de una API REST lista para usar, así puedo concentrarme en prompts y gestión de salida en lugar de plomería.

Parámetros explicados
Requeridos
-
model
"qwen-image-max"es el nombre oficial para Qwen-Image-2512- También existe
"qwen-image-plus", similar pero más barato
-
input.messages
- Un array con un elemento
textes tu descripción- Máximo 800 caracteres (aproximadamente 400 caracteres chinos)
Opcionales (se usan valores predeterminados si se omiten)
-
parameters.size
1664*928(16:9 paisaje)1472*1104(4:3)1328*1328(1:1 cuadrado, predeterminado)1104*1472(3:4 retrato)928*1664(9:16 retrato)
-
parameters.negative_prompt
- Cosas que no quieres: p. ej.,
"baja resolución, borroso, distorsionado, sobresaturado" - Hasta 500 caracteres
- Cosas que no quieres: p. ej.,
-
parameters.prompt_extend
- El predeterminado es
true - Enriquece automáticamente tu descripción
- Desactívalo si quieres control estricto
- El predeterminado es
-
parameters.watermark
- El predeterminado es
false - Añade marca de agua “Qwen-Image” si es
true
- El predeterminado es
-
parameters.seed
- Rango
0–2147483647 - La misma seed + la misma descripción = la misma imagen
- Útil para pruebas y comparación de resultados
- Rango
Ejemplo de respuesta API
{
"output": {
"choices": [
{
"finish_reason": "stop",
"message": {
"role": "assistant",
"content": [
{
"image": "https://dashscope-result-sz.oss-cn-shenzhen.aliyuncs.com/xxx.png?Expires=xxxx"
}
]
}
}
]
},
"usage": {
"width": 1328,
"image_count": 1,
"height": 1328
},
"request_id": "xxx"
}
Puntos clave
- URL de imagen:
output.choices[0].message.content[0].image - Verifica que
finish_reasonsea"stop"para confirmar el éxito - Los enlaces duran 24 horas — descarga rápidamente
Automatización con Python
Si quieres generación por lotes o una pequeña herramienta:
import os
import time
import requests
from urllib.parse import urlparse, unquote
from pathlib import PurePosixPath
API_KEY = os.getenv("DASHSCOPE_API_KEY")
ENDPOINT = "https://dashscope.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation"
HEADERS = {
"Content-Type": "application/json",
"Authorization": f"Bearer {API_KEY}",
}
def generate_image(prompt: str, size="1328*1328"):
payload = {
"model": "qwen-image-max",
"input": {
"messages": [{"role": "user", "content": [{"text": prompt}]}]
},
"parameters": {"size": size, "prompt_extend": True, "watermark": False}
}
r = requests.post(ENDPOINT, headers=HEADERS, json=payload, timeout=120)
r.raise_for_status()
data = r.json()
choices = data.get("output", {}).get("choices", [])
if not choices:
raise ValueError(f"No image generated:\n{data}")
content = choices[0].get("message", {}).get("content", [])
if not content:
raise ValueError(f"Empty content:\n{data}")
image_url = content[0].get("image")
if not image_url:
raise ValueError(f"No image URL:\n{data}")
img_response = requests.get(image_url)
img_response.raise_for_status()
file_name = PurePosixPath(unquote(urlparse(image_url).path)).parts[-1]
ts = int(time.time())
path = f"qwen_image_{ts}_{file_name}"
with open(path, "wb") as f:
f.write(img_response.content)
return path
if __name__ == "__main__":
output_path = generate_image("A tidy desk with a notebook and a plant under soft light")
print("Image saved at:", output_path)
Lo que aprendí durante las pruebas
- El nombre de modelo incorrecto lo rompe (
qwen-image-plus→qwen-image-max) - Formato de tamaño incorrecto (
1328x1328en lugar de1328*1328) - La estructura de respuesta difiere ligeramente de los documentos; verifica la URL de la imagen
- Olvidar descargar la imagen hace que el enlace caduque después de 24 horas
Usando el SDK oficial
import os
import json
from dashscope import MultiModalConversation
api_key = os.getenv("DASHSCOPE_API_KEY")
messages = [{"role": "user", "content": [{"text": "A tidy desk with a notebook and a plant under soft light"}]}]
response = MultiModalConversation.call(
api_key=api_key,
model="qwen-image-max",
messages=messages,
result_format='message',
stream=False,
watermark=False,
prompt_extend=True,
size='1328*1328'
)
if response.status_code == 200:
print(json.dumps(response, ensure_ascii=False))
image_url = response.output.choices[0].message.content[0]['image']
print(f"Image URL: {image_url}")
else:
print(f"Error: {response.code} - {response.message}")
Referencia rápida de parámetros
| Parámetro | Valor sugerido | Notas |
|---|---|---|
| size | 1328*1328 | Cuadrado, equilibrio de velocidad y calidad |
| prompt_extend | TRUE | Deja que la IA enriquezca tu descripción |
| seed | Número fijo | Usar para probar y comparar resultados |
| negative_prompt | Según sea necesario | p. ej., “borroso, baja calidad, distorsionado” |
Cuándo cambiar la seed
- Seed fija → comparar variaciones de prompts
- Diferentes seeds → generar múltiples imágenes distintas
Errores comunes y soluciones
401 Unauthorized→ clave API incorrecta, región incorrecta o permiso de imagen faltante429 Rate limit→ demasiadas solicitudes; añade retardo o actualiza cuota- Timeout / problemas de red → aumenta el timeout, descarga inmediatamente
Pequeñas mejoras que añadí
- Seed fija para probar prompts → más fácil comparar resultados
- Nombrado consistente de archivos:
{palabra clave}-{tamaño}-{seed}.png - Gestión de archivo de configuración: YAML para evitar codificar parámetros
Para quién funciona esto
Playground
- Generación de imagen ocasional
- Prueba rápida de prompts
- Sin necesidad de automatización
API
- Generación por lotes
- Integración de herramienta o producto
- Uso programado o basado en sistemas
Caminos finales (elige lo que te convenga)
Camino A — Rápido y práctico
- Usa API de Wavespeed Playground para Qwen Image 2512
- Configuración mínima, punto final REST listo para usar
Camino B — Control total
- Usa DashScope directamente si necesitas integración profunda de Alibaba Cloud
Me encantan las herramientas que funcionan silenciosamente en el fondo. Para aprender y entender, el flujo oficial es excelente. Para el trabajo diario y envíos más rápidos, WaveSpeed me ahorra mucha fricción.





