Generación de imágenes con OpenRouter: modelos, API y precios

OpenRouter pone modelos de imagen de Google, OpenAI, Black Forest Labs, ByteDance y otros detrás de un solo endpoint. Este artículo muestra el formato de las peticiones, los parámetros que cambian la calidad y el costo, la diferencia de precios entre modelos y cuándo encaja mejor una plataforma de imágenes dedicada.

Generación de imágenes con OpenRouter: modelos, API y precios
Cristian Da Conceicao
Fundador de Picasso IA

OpenRouter se ganó fama como una puerta única a cientos de modelos de texto, y ahora hace lo mismo con las imágenes. Una cuenta, una factura y una misma forma de petición te permiten cambiar entre modelos de imagen de Google, OpenAI, Black Forest Labs, ByteDance y otros cambiando una sola cadena. Esa comodidad es real, pero unos cuantos detalles deciden si una función de imágenes se mantiene barata o se vuelve cara sin que te des cuenta.

Este artículo repasa la generación de imágenes con OpenRouter desde la primera petición hasta la factura mensual: los modelos que puedes elegir, la llamada exacta a la API, los parámetros que cambian la calidad y una mirada directa a lo que cuesta una imagen. También muestra dónde encaja una plataforma dedicada como PicassoIA cuando quieres control desde el navegador en lugar de código.

Qué hace la generación de imágenes en OpenRouter

Un endpoint, muchos proveedores

La generación de imágenes en OpenRouter funciona a través de un endpoint específico, POST /api/v1/images. Envías un slug de model y un prompt, y se devuelven datos de imagen en base64. Detrás de esa única puerta hay proveedores distintos, cada uno con su propio modelo, límites y precio. OpenRouter se encarga del enrutamiento, la autenticación y la facturación, así que tu código nunca se comunica directamente con esos proveedores.

El catálogo es amplio. Al escribir esto incluye modelos de imagen de Google, OpenAI, Black Forest Labs, xAI, ByteDance, Microsoft, Recraft, Krea y Sourceful, y la lista cambia a menudo. Filtrar la lista pública de modelos de OpenRouter por salida de imagen muestra qué hay disponible en cada momento.

Para quién encaja mejor

Un único gateway compensa en algunas situaciones:

  • Prototipado: prueba cinco modelos con el mismo prompt sin abrir cinco cuentas.
  • Respaldos: si un proveedor va lento o está caído, envía la misma petición a otro.
  • Facturación unificada: una sola factura en lugar de una por proveedor.
  • Pipelines mixtos: una app que ya envía prompts de texto a través de OpenRouter puede añadir imágenes con el mismo token.

Compensa menos cuando necesitas un editor visual, una galería de resultados anteriores o control directo sobre cada ajuste. Eso es trabajo para el navegador, y volveremos a ello al final.

Pared de objetivos de cámara en una tienda de alquiler, una sola puerta a muchos modelos de imagen

Cómo llamar al endpoint de imágenes

La petición más sencilla que funciona

Necesitas una cuenta de OpenRouter, un token secreto con saldo disponible y un slug de modelo. Guarda el token en una variable de entorno. Este artículo la llama OPENROUTER_TOKEN, pero el nombre lo eliges tú.

curl -X POST "https://openrouter.ai/api/v1/images" \
  -H "Authorization: Bearer $OPENROUTER_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "bytedance-seed/seedream-4.5",
    "prompt": "a red panda astronaut floating in space"
  }'

Eso es toda la petición. El slug sigue el patrón author/model-name y aquí apunta a Seedream 4.5. Todo lo demás es opcional, por eso una primera prueba lleva unos dos minutos.

Desarrolladora escribiendo una petición en un escritorio de pie en un loft luminoso

Los parámetros que cambian el resultado

El endpoint de imágenes acepta una larga lista de campos opcionales. Estos son los que más importan:

ParámetroQué controlaValores de ejemplo
resolutionNivel de tamaño de salida512, 768, 1K, 2K, 4K
aspect_ratioRelación de aspecto1:1, 16:9, 9:16, 4:3, 3:4
sizeAtajo para un nivel de tamaño o píxeles concretosUn nombre de nivel, o un ancho y alto
qualityEsfuerzo de renderauto, low, medium, high
output_formatTipo de archivopng, jpeg, webp, svg
backgroundTransparenciaauto, transparent, opaque
output_compressionTamaño de archivo para webp y jpeg0 a 100
nImágenes por petición1 a 10, cuando el modelo lo admita
seedSalida repetibleCualquier entero, cuando el modelo lo admita
input_referencesImágenes de referencia para trabajar de imagen a imagenUna lista de imágenes
streamVistas previas parciales mediante server-sent eventstrue o false

No todos los modelos admiten todos los campos. Cada modelo tiene una ruta de endpoints que lista los parámetros admitidos, los precios y si el streaming funciona, así que léela antes de depender de un ajuste. El formato de salida svg solo tiene sentido con modelos capaces de generar vectores.

El streaming merece una mención aparte. Con stream activado, el endpoint envía imágenes parciales a medida que se forman, así que una interfaz puede mostrar una vista previa aproximada en cuestión de segundos en lugar de un spinner en blanco. Las vistas previas son gratuitas: solo se cobra la imagen terminada. Si tu app tiene una pantalla de espera, esta es la forma más barata de que parezca más rápida.

💡 Consejo: Cambia una cosa a la vez. Si cambias a la vez el modelo y el prompt, no sabrás cuál de los dos movió el resultado. Fija un seed donde el modelo lo admita y varía un único campo por ejecución.

Manos de un fotógrafo girando el anillo de diafragma de un objetivo de cámara

Cómo leer la respuesta

Las imágenes llegan como texto base64 dentro de un array data. Cada elemento contiene b64_json, los bytes codificados, y media_type, como image/png o image/svg+xml. La respuesta también incluye un objeto usage, y usage.cost indica lo que cobró ese trabajo.

import base64, os, requests

resp = requests.post(
    "https://openrouter.ai/api/v1/images",
    headers={"Authorization": f"Bearer {os.environ['OPENROUTER_TOKEN']}"},
    json={
        "model": "bytedance-seed/seedream-4.5",
        "prompt": "a ceramic mug on a marble counter, soft window light",
        "aspect_ratio": "16:9",
    },
    timeout=120,
)
resp.raise_for_status()
body = resp.json()

image = body["data"][0]
with open("mug.png", "wb") as f:
    f.write(base64.b64decode(image["b64_json"]))

print(image["media_type"], body["usage"]["cost"])

Decodifica los bytes, guárdalos en disco o en almacenamiento de objetos y registra usage.cost junto al prompt que lo generó. Al cabo de una semana, ese registro es una lista de precios más honesta que cualquier página de precios.

Los trabajos de imagen tardan más que las llamadas de texto, así que configura un timeout generoso en el cliente, como hace el ejemplo anterior con 120 segundos. Un valor por defecto de unos pocos segundos cortará resultados perfectamente buenos.

Desarrollador conectando un disco externo a un equipo portátil para guardar las imágenes generadas

Modelos que vale la pena probar

Proveedores del catálogo

Así se reparten los principales proveedores, con las páginas de modelo correspondientes en PicassoIA cuando existen:

  • Google: la familia de imagen Gemini. El slug google/gemini-2.5-flash-image aparece en los ejemplos del propio OpenRouter, y el mismo modelo está en PicassoIA como Gemini 2.5 Flash Image.
  • OpenAI: GPT Image, donde el ajuste de calidad cambia mucho el precio. Consulta GPT Image 2.
  • Black Forest Labs: la línea Flux, por ejemplo Flux 2 Pro.
  • ByteDance: Seedream, incluido Seedream 4.5.
  • Recraft: modelos compatibles con vectores que pueden devolver SVG, como Recraft v4.1.
  • xAI, Microsoft, Krea y Sourceful: Grok Imagine, MAI-Image, los modelos de Krea y Riverflow, que encontrarás sobre todo a través de gateways como OpenRouter.

Para obtener la lista actual desde código, llama a la ruta de modelos. Para revisar los proveedores, parámetros y precios de un modelo, añade su slug y /endpoints:

curl https://openrouter.ai/api/v1/images/models \
  -H "Authorization: Bearer $OPENROUTER_TOKEN"

curl "https://openrouter.ai/api/v1/images/models/bytedance-seed/seedream-4.5/endpoints"

Cómo elegir según el trabajo

Ningún modelo gana en todas las tareas. Esta tabla es un punto de partida para tus propias pruebas, no un ranking:

TrabajoPrimer modelo a probarPor qué merece una prueba
Fotos publicitarias fotorrealistasSeedream 4.5Resultados nítidos de hasta 4K
Carteles y texto dentro de las imágenesGPT Image 2Sigue bien una composición con texto
Borradores rápidosGemini 2.5 Flash ImageEntrega rápida para iterar
Logotipos e iconosRecraft v4.1Resultados limpios de estilo vectorial
Ediciones a partir de texto o fotosFlux 2 ProFunciona con prompts y fotos de referencia

Las fortalezas cambian con cada versión, así que prueba tus propios prompts antes de comprometer un proyecto con un solo modelo. Una prueba justa lleva más o menos una hora:

  1. Escribe diez prompts de trabajo real, no ejemplos de juguete, incluidos dos con texto en la imagen y dos con personas.
  2. Pasa cada prompt por los mismos tres modelos con valores idénticos de aspect_ratio y resolution.
  3. Registra usage.cost y los segundos que tardó cada trabajo.
  4. Puntúa los resultados a ciegas, con los nombres de los modelos ocultos, y luego divide el costo total entre el número de imágenes que publicarías de verdad.

Ese último número, el costo por imagen utilizable, zanja la discusión. Un modelo a $0,02 que necesita cuatro intentos para dar en el blanco cuesta $0,08 por imagen utilizable, el doble que un modelo a $0,04 que lo consigue a la primera.

Tablero de corcho con veinte fotografías en distintos estilos, una por modelo de imagen

Cuánto cuesta realmente una imagen

La diferencia de precios

El propio tutorial de OpenRouter calculó el precio de una imagen con la configuración predeterminada en 20 modelos. El rango iba de $0,006 a $0,134, una diferencia de 22 veces. Los modelos baratos empiezan en torno a un centavo por imagen. Esa diferencia pesa más en tu factura que la longitud del prompt, los reintentos o cualquier truco ingenioso de caché.

En la práctica, esa diferencia divide los modelos en dos grupos. Los modelos de borrador, cercanos a un centavo por imagen, sirven para ideas, miniaturas y pruebas rápidas. Los modelos premium, más cerca del extremo alto del rango, sirven para renders finales e imágenes principales. Muchos equipos usan ambos: borrador barato, render caro.

Tres formas de cobro

No todos los modelos cobran igual:

  1. Por imagen: un precio fijo por cada resultado, sea cual sea el tamaño.
  2. Por megapíxel: el precio sube con la resolución, así que 4K cuesta más que 1K.
  3. Por token: los tokens de entrada y de salida se miden. Según los precios publicados al escribir esto, GPT-5.4 Image 2 cobra $8,00 por millón de tokens de entrada y $15,00 por millón de tokens de salida, con la salida de imagen a $30,00 por millón de tokens.

El cobro por token es el más difícil de prever. La longitud del prompt, las imágenes de referencia y el ajuste de calidad influyen en la cifra final, así que usage.cost es la única cifra en la que vale la pena confiar. Los precios cambian, así que revisa la página del modelo antes de planificar un presupuesto.

Calculadora, recibos y monedas sobre un escritorio de madera

Los trabajos fallidos no cuestan nada

El cobro es todo o nada. Una generación termina y se cobra completa, o falla y no se cobra. Las transmisiones canceladas tampoco se cobran, y las vistas previas parciales que llegan antes de que termine un stream no generan cobros parciales. Eso hace que los reintentos sean más seguros de lo que parecen: pagas una vez por el resultado que conservas. Aun así, gestiona bien los errores. Comprueba el estado HTTP, espera antes de reintentar un trabajo fallido y deja de intentarlo tras unos pocos intentos para que un prompt malo no entre en bucle infinito.

Cálculo de presupuesto para 1.000 imágenes

Toma tres precios de esa diferencia y escálalos:

Precio por imagen1.000 imágenes10.000 imágenes
$0,006$6$60
$0,04$40$400
$0,134$134$1.340

💡 Consejo: Añade tu tasa de reintentos. Si uno de cada tres prompts necesita un segundo intento porque el primer resultado no da en el blanco, suma más o menos un tercio al presupuesto. Los trabajos fallidos no cuestan nada, pero los resultados decepcionantes sí.

Balanza de latón que pesa fotografías contra monedas

3 errores que inflan la factura

Dejar la calidad en automático

Con quality en auto, el proveedor decide cuánto esfuerzo dedicar. En los modelos cuyo precio depende de la calidad, un resultado high puede costar mucho más que uno low. Usa low mientras iteras un prompt y cambia a high solo para el render final.

Guardar base64 dentro de la base de datos

Una imagen 2K codificada en base64 suele ocupar varios megabytes de texto. Guardar esa cadena en una fila de la base de datos ralentiza cada consulta que la toque. Escribe el archivo en almacenamiento de objetos, guarda solo su URL en la base de datos y usa webp o jpeg con output_compression cuando el tamaño del archivo importe más que el detalle sin pérdida.

Ignorar el enrutamiento de proveedores

Varios proveedores pueden servir el mismo modelo, y sus endpoints pueden diferir en precio y en parámetros admitidos. Si nunca defines una preferencia, OpenRouter elige por ti. Fija el orden y decide si los respaldos son aceptables:

{
  "model": "google/gemini-2.5-flash-image",
  "prompt": "A minimalist logo for a coffee roaster",
  "provider": {
    "order": ["google-ai-studio", "google-vertex"],
    "allow_fallbacks": true
  }
}

Desactiva allow_fallbacks cuando necesites resultados y precios idénticos en cada llamada, y déjalo activado cuando importe más la disponibilidad.

Cómo usar Seedream 4.5 en PicassoIA

Si prefieres saltarte el código, el mismo modelo de los ejemplos de OpenRouter está disponible en el navegador. Seedream 4.5 crea imágenes de hasta 4K a partir de un prompt de texto, y no hay nada que instalar.

  1. Abre la página del modelo de Seedream 4.5 e inicia sesión.
  2. Escribe el prompt con cuatro partes: sujeto, escenario, luz y lente. Prueba con: una taza de café de cerámica sobre una encimera de mármol, luz suave de ventana desde la izquierda, lente de 85 mm, profundidad de campo reducida, grano de película Kodak Portra 400.
  3. Elige la relación de aspecto: 16:9 para cabeceras de blog, 1:1 para tarjetas de producto, 9:16 para publicaciones verticales.
  4. Genera y revisa. Cambia un detalle y vuelve a ejecutarlo, igual que cambiarías un campo de la API.
  5. Descarga el ganador, o pasa el mismo prompt por Flux 2 Pro, GPT Image 2 y Nano Banana Pro para compararlos lado a lado.

💡 Consejo: Las ideas vagas dan prompts débiles. Pide a un modelo de lenguaje como Claude Sonnet 5 o Gemini 3.5 Flash que amplíe una idea de una línea hasta convertirla en un prompt fotográfico detallado con luz, lente y textura, y pega el resultado en el modelo de imagen.

La API para desarrolladores de PicassoIA

PicassoIA también ofrece su propia API para desarrolladores, pensada para pipelines y scripts. La URL base es https://api.picassoia.com/v1, y las peticiones se autentican con un token bearer que empieza por pia_sk_. El flujo es asíncrono y resultará familiar si has usado otras APIs de predicción: creas un trabajo, lo consultas de forma periódica y luego obtienes el resultado.

  • POST /v1/models/{owner}/{name}/predictions crea un trabajo.
  • GET /v1/predictions/{id} consulta su estado y devuelve el resultado.
  • POST /v1/predictions/{id}/cancel detiene un trabajo que sigue en marcha.
  • GET /v1/predictions lista tus trabajos recientes.

Para imágenes, la API ofrece PicassoIA Image y PicassoIA Image Editor Pro, además de dos modelos de video. Una cuenta puede ejecutar 5 predicciones a la vez, y los prompts están limitados a 4.000 caracteres. El acceso a la API depende de planes concretos, así que confirma cuál en la página de precios antes de construir sobre él. El catálogo del navegador es mucho más amplio, con más de 200 modelos de texto a imagen para probar antes de elegir uno para un script.

Diseñadora gráfica revisando una gran impresión de un paisaje costero en un estudio iluminado por el sol

Crea tus primeras imágenes hoy

La mejor forma de resolver la cuestión del gateway es probar un prompt de las dos maneras. Envíalo al endpoint de imágenes de OpenRouter, registra usage.cost y luego pega el mismo texto en una página de modelo de PicassoIA y compara el aspecto, la velocidad y el esfuerzo.

Elige un prompt de tu propio trabajo: una foto de producto, una cabecera de blog, un retrato para una landing page. Prueba dos o tres modelos en PicassoIA, cambia un detalle por ejecución y guarda los resultados que de verdad publicarías. En una tarde sabrás qué ruta encaja con tu proyecto, y tendrás imágenes reales que enseñar.

Tres compañeros ordenando fotografías recién impresas alrededor de una mesa

Compartir este artículo

Elige tu idioma