APIs de imágenes GPT Image 2 y Gemini
Genera imágenes con GPT Image 2 mediante la API Images compatible con OpenAI o con Nano Banana Pro y Nano Banana 2 mediante la API nativa de Gemini.
Esta página reúne dos contratos independientes de API para generación de imágenes. Comparten la clave API y los Credits de Modelflare, pero sus formatos de solicitud y respuesta no son intercambiables.
- gpt-image-2 usa los contratos compatibles con OpenAI /v1/images/generations y /v1/images/edits.
- gemini-3-pro-image y gemini-3.1-flash-image usan el contrato nativo de Gemini generateContent.
Elige la familia de modelos antes de copiar un ejemplo. No mezcles campos de Gemini y GPT Images.
1. GPT Image 2 — Images API compatible con OpenAI
Genera PNG o edita imágenes de referencia mediante URL pública o carga local con gpt-image-2 y la API Images compatible con OpenAI. Cada solicitud devuelve una imagen y admite calidad media o alta, URL firmada temporal o base64 y SSE opcional.
Elige endpoint y modo
- Usa https://origin.modelflare.dev/v1 para JSON síncrono que pueda tardar varios minutos.
- Usa https://modelflare.dev/v1 con stream=true para solicitudes largas por Cloudflare; se envían heartbeats SSE hasta que la imagen final esté lista.
- No redirijas un POST en curso entre hosts.
Solicitud síncrona
curl https://origin.modelflare.dev/v1/images/generations \
-H "Authorization: Bearer YOUR_MODELFLARE_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"gpt-image-2","prompt":"Una cabaña tranquila junto al lago al amanecer","n":1,"quality":"medium","size":"1024x1024","response_format":"url","output_format":"png"}'
La respuesta URL contiene un enlace privado firmado de Modelflare que caduca en una hora. Usa response_format=b64_json para recibir el PNG validado sin persistir un objeto de salida.
La página en vivo de Modelos y precios muestra precios medium y high para tamaños habituales. La facturación usa la calidad y las dimensiones exactas solicitadas, sin multiplicadores de grupos de enrutamiento normales, y registra el cargo final en los logs de uso.
Editar una imagen de referencia
Envía una o varias URL HTTP(S) de imágenes accesibles públicamente a POST /v1/images/edits. Cada elemento de images contiene exactamente un image_url:
curl https://origin.modelflare.dev/v1/images/edits \
-H "Authorization: Bearer YOUR_MODELFLARE_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"gpt-image-2","prompt":"Cambia el fondo por un estudio fotográfico blanco y limpio","images":[{"image_url":"https://example.com/input.png"}],"size":"2048x2048","response_format":"url"}'
También puedes cargar un archivo PNG, JPEG o WebP local con multipart/form-data:
curl https://origin.modelflare.dev/v1/images/edits \
-H "Authorization: Bearer YOUR_MODELFLARE_API_KEY" \
-F "model=gpt-image-2" \
-F "prompt=Cambia el fondo por un estudio fotográfico blanco y limpio" \
-F "image=@/path/to/input.png" \
-F "size=2048x2048" \
-F "response_format=url"
La solicitud multipart debe contener exactamente un archivo de imagen y no superar 20 MiB en total. La URL de referencia o el archivo cargado se envía al proveedor upstream seleccionado; la URL debe seguir accesible durante la descarga. Modelflare no conserva ninguna referencia como recurso de salida de la API.
Solicitud SSE
curl -N https://modelflare.dev/v1/images/generations \
-H "Authorization: Bearer YOUR_MODELFLARE_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"gpt-image-2","prompt":"Un gato blanco corre por una calle de neón bajo la lluvia","n":1,"quality":"high","size":"1024x1024","response_format":"url","stream":true}'
Los comentarios SSE son solo heartbeats. Finaliza tras image_generation.completed y data: [DONE].
Se admiten model, prompt, n=1, quality=medium|high, un WIDTHxHEIGHT válido, response_format=url|b64_json, output_format=png y stream opcional. /v1/images/edits acepta un array images no vacío con un image_url HTTP(S) público por elemento, o exactamente un PNG, JPEG o WebP válido en el campo multipart image. Las solicitudes de generación rechazan referencias; se rechazan varios archivos, entradas data/base64, máscaras, input_fidelity, variaciones, imágenes parciales y campos desconocidos. Los Credits reservados para solicitudes fallidas se devuelven mediante el reembolso idempotente por Request ID.
Usa una clave API normal. Las claves fijadas a un canal se rechazan y una clave con límites de modelo debe incluir gpt-image-2.
2. Gemini Image — API nativa de Gemini
Usa Nano Banana Pro o Nano Banana 2 con el formato nativo de Gemini. Estos modelos no usan /v1/images/generations.
Endpoint y solicitudes largas
- Síncrono: POST https://modelflare.dev/v1beta/models/{model}:generateContent.
- Recomendado para imágenes: POST https://modelflare.dev/v1beta/models/{model}:streamGenerateContent?alt=sse.
- origin.modelflare.dev no expone /v1beta. Usa el dominio principal y prefiere streaming para trabajos largos.
Solicitud por streaming
Este ejemplo usa Nano Banana 2. Sustituye el modelo de la URL por gemini-3-pro-image para usar Nano Banana Pro.
curl -N "https://modelflare.dev/v1beta/models/gemini-3.1-flash-image:streamGenerateContent?alt=sse" \
-H "x-goog-api-key: YOUR_MODELFLARE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"contents": [{
"role": "user",
"parts": [{"text": "Create a clean blue circle centered on a white background. No text."}]
}],
"generationConfig": {
"responseModalities": ["TEXT", "IMAGE"],
"imageConfig": {"aspectRatio": "1:1", "imageSize": "1K"}
}
}'
Contrato de respuesta
Cada evento SSE data: contiene JSON nativo de Gemini. La imagen final en base64 está en candidates[].content.parts[].inlineData.data y el MIME en inlineData.mimeType. También puede haber texto. Termina al recibir finishReason=STOP o al cerrarse el stream; aquí no se usa image_generation.completed.
Modelos, resoluciones y precios estimados
| Modelo | Resolución | Precio estimado por imagen |
|---|---|---|
| Nano Banana Pro | 1K / 2K | US$0.06720 |
| Nano Banana Pro | 4K | US$0.12000 |
| Nano Banana 2 | 0.5K | US$0.02241 |
| Nano Banana 2 | 1K | US$0.03360 |
| Nano Banana 2 | 2K | US$0.05040 |
| Nano Banana 2 | 4K | US$0.07560 |
Usa K mayúscula en imageSize. Son precios estimados por imagen; el cargo final puede variar ligeramente según la solicitud y queda registrado en los logs de uso.
Usa una clave API normal de Modelflare mediante x-goog-api-key. Debe poder usar el grupo gemini-image e incluir el modelo elegido si tiene límites de modelo.