AIFreeAPI Logo

GPT Image 2: cómo resolver invalid size y obtener una imagen de 1024×576

A
5 min readTutorial

El error no está en el formato 16:9: 1024×576 suma menos píxeles de los permitidos. Esta es la corrección de la solicitud y el paso final para conservar el encuadre.

Ilustración del paso de un tamaño rechazado por GPT Image 2 a una imagen válida y un archivo final reducido

Una imagen de 1024×576 es 16:9, pero ese tamaño no cumple los requisitos de generación de gpt-image-2 en la API directa de OpenAI. Sus 589 824 píxeles quedan por debajo del mínimo de 655 360. Es posible que ambos lados sean múltiplos de 16 y que, aun así, la solicitud devuelva invalid size.

Si necesitas entregar un archivo de exactamente 1024×576, la solución es generar en 1280×720 y reducir después al 80 %. Se mantiene la relación de aspecto, no se recorta la escena y el archivo final tendrá las dimensiones solicitadas. El límite de generación no impide redimensionar la imagen una vez descargada.

Las reglas siguientes corresponden a la documentación de OpenAI consultada el 8 de septiembre de 2026. Los tamaños se han comprobado mediante cálculo; no representan una prueba de llamadas a la API.

Por qué falla un tamaño que sí es 16:9

La documentación de tamaños de GPT Image 2 establece varias condiciones simultáneas para el valor de size:

  • El ancho y el alto deben ser positivos y múltiplos de 16.
  • Ningún lado puede superar los 3840 píxeles.
  • El lado largo no puede medir más de tres veces el corto.
  • El área total debe estar entre 655 360 y 8 294 400 píxeles, ambos incluidos.

En 1024×576, el ancho equivale a 64 bloques de 16 y el alto a 36. La relación entre ambos lados es aproximadamente 1,78, por debajo del máximo de 3. Lo que falla es la multiplicación:

text
1024 × 576 = 589 824 píxeles 655 360 − 589 824 = 65 536 píxeles por debajo del mínimo

Añadir «16:9» al texto de la petición no corrige esa cifra. La descripción de la imagen y el parámetro que fija su tamaño cumplen funciones distintas: aunque el encuadre pedido sea horizontal, el servidor sigue recibiendo un valor numérico inválido.

Comparación visual de dos lienzos horizontales con la misma proporción y diferente área total
Comparación visual de dos lienzos horizontales con la misma proporción y diferente área total

Tampoco basta con elegir cualquier resolución habitual de vídeo. 1920×1080 no cumple estas reglas, porque 1080 no es múltiplo de 16. La etiqueta «Full HD» no garantiza que un generador acepte las dimensiones.

Qué tamaño enviar en su lugar

Para obtener un resultado horizontal que puedas reducir a 1024×576 sin deformarlo, utiliza otro tamaño 16:9 que cumpla todas las condiciones.

Dimensiones solicitadasPíxeles totalesRelaciónResultado según las reglas documentadas
1024×576589 82416:9No válido: área insuficiente
1024×640655 3608:5Válido, pero cambia la proporción
1280×720921 60016:9Válido; menor tamaño 16:9 exacto permitido
1536×8641 327 10416:9Válido
1920×10802 073 60016:9No válido: el alto no es múltiplo de 16
2048×11522 359 29616:9Válido

¿Por qué el mínimo exacto es 1280×720 y no un tamaño intermedio? Si ambos lados son múltiplos de 16 y su proporción es exactamente 16:9, las dimensiones posibles tienen la forma 256k × 144k, con un número entero positivo para k. El valor 4 da 1024×576 y se queda corto; el siguiente, 5, da 1280×720 y ya cumple el mínimo. No hay otro tamaño 16:9 exacto entre ambos que satisfaga la divisibilidad exigida.

Para una entrega de 1024×576, 1280×720 es un punto de partida suficiente en cuanto a dimensiones. Elegir 1536×864 o 2048×1152 permite conservar un original mayor, pero estas cuentas por sí solas no demuestran cuál será más barato, más rápido o visualmente mejor.

Corregir la petición y guardar el archivo exacto

En la API directa, size es una cadena con ancho y alto separados por una x minúscula, como "1280x720". El signo tipográfico × que usamos para leer las dimensiones no debe copiarse dentro del parámetro.

Esta petición ilustra el cambio para el endpoint de generación de OpenAI. Requiere una clave válida y su ejecución realiza una llamada facturable:

bash
curl --fail-with-body https://api.openai.com/v1/images/generations \ -H "Authorization: Bearer $OPENAI_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "gpt-image-2", "prompt": "Una bicicleta junto a una cafetería al amanecer, encuadre horizontal", "size": "1280x720", "output_format": "png" }' \ -o respuesta.json

La guía de generación de imágenes describe la devolución de la imagen como datos codificados en base64. Después de una respuesta correcta, puedes extraerla y redimensionarla con Python y Pillow. El siguiente paso procesa archivos locales y no envía otra petición al modelo:

bash
python -m pip install Pillow
python
import base64 import io import json from pathlib import Path from PIL import Image respuesta = json.loads(Path("respuesta.json").read_text()) if "error" in respuesta: raise RuntimeError(respuesta["error"]) contenido = base64.b64decode(respuesta["data"][0]["b64_json"]) Path("original.png").write_bytes(contenido) with Image.open(io.BytesIO(contenido)) as imagen: ancho, alto = imagen.size if ancho * 9 != alto * 16: raise ValueError( f"El original mide {ancho}x{alto}; no es 16:9 exacto. " "Revisa la respuesta antes de decidir un recorte." ) final = imagen.resize((1024, 576), Image.Resampling.LANCZOS) final.save("imagen-1024x576.png") with Image.open("imagen-1024x576.png") as comprobacion: assert comprobacion.size == (1024, 576) print("Archivo final:", comprobacion.size)

La comprobación de la proporción evita estirar inadvertidamente una respuesta con otras dimensiones. El remuestreo reduce el número de píxeles, pero conserva el encuadre cuando el original es 16:9. Guarda el original si vas a necesitar nuevas versiones; reducirlo y volverlo a ampliar no recupera el detalle descartado.

Para preparar la autenticación o revisar el flujo completo de generación, consulta la guía de la API de GPT Image 2.

Si 1280×720 también devuelve un error

Que un tamaño cumpla la documentación de OpenAI no garantiza que una aplicación o un proveedor intermedio lo admita. Antes de volver a generar, compara estos datos de la solicitud que realmente sale del cliente:

DatoQué revisar
URL de destinoSi llamas a api.openai.com o a un servicio con su propia API
Modelo enviadoQue sea gpt-image-2, sin asumir que otro modelo tiene los mismos límites
Cuerpo JSONQue size llegue como "1280x720", sin espacios, signo × ni una sustitución automática
Respuesta de errorQué parámetro identifica y si enumera tamaños admitidos

Si tu SDK rechaza el valor antes de enviar la petición, revisa sus tipos o su lista de tamaños permitidos. Puede estar validando un conjunto de opciones que no coincide con la documentación del modelo. Si el rechazo llega del servidor, conserva el estado HTTP y el cuerpo del error para contrastarlos con las reglas del endpoint utilizado. Oculta la clave de API y otros datos privados al compartir el diagnóstico.

Un ejemplo de contrato distinto es Venice: su endpoint /image/generate documenta para GPT Image 2 campos como aspect_ratio y resolution. Allí una relación "16:9" y un nivel de resolución tienen un significado propio. No traslades esos campos a la API directa de OpenAI, ni presupongas que otro proveedor acepta sus mismos parámetros.

Si el cliente solo ofrece tamaños predefinidos, consulta si permite dimensiones personalizadas o utiliza una integración que exponga el parámetro documentado. Cambiar únicamente el texto descriptivo no modifica una validación local ni el JSON que se envía.

¿Y si ya tengo una imagen de 1024×640?

Una escena de cafetería y bicicleta ilustra la diferencia entre reducir proporcionalmente y recortar los bordes
Una escena de cafetería y bicicleta ilustra la diferencia entre reducir proporcionalmente y recortar los bordes

Ese tamaño alcanza justo el mínimo de píxeles, pero tiene proporción 8:5. Hay dos formas diferentes de convertirlo a 1024×576:

  • Recortar 64 píxeles de altura. Un recorte centrado elimina 32 por arriba y 32 por abajo. Conserva las proporciones de los objetos, aunque puedes perder contenido en los bordes.
  • Cambiar directamente sus dimensiones. Reduce la altura sin cambiar el ancho y deforma los objetos. No es la opción adecuada si quieres mantener la escena intacta.

Si todavía no has generado la imagen, pedir 1280×720 evita esa decisión: después solo tienes que reducirla proporcionalmente. Si ya tienes un original 8:5 que quieres conservar completo, también puedes colocarlo dentro de un lienzo 16:9 con márgenes laterales; el resultado tendrá el tamaño correcto, pero ya no llenará todo el encuadre con la imagen original.