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:
text1024 × 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.

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 solicitadas | Píxeles totales | Relación | Resultado según las reglas documentadas |
|---|---|---|---|
| 1024×576 | 589 824 | 16:9 | No válido: área insuficiente |
| 1024×640 | 655 360 | 8:5 | Válido, pero cambia la proporción |
| 1280×720 | 921 600 | 16:9 | Válido; menor tamaño 16:9 exacto permitido |
| 1536×864 | 1 327 104 | 16:9 | Válido |
| 1920×1080 | 2 073 600 | 16:9 | No válido: el alto no es múltiplo de 16 |
| 2048×1152 | 2 359 296 | 16:9 | Vá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:
bashcurl --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:
bashpython -m pip install Pillow
pythonimport 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:
| Dato | Qué revisar |
|---|---|
| URL de destino | Si llamas a api.openai.com o a un servicio con su propia API |
| Modelo enviado | Que sea gpt-image-2, sin asumir que otro modelo tiene los mismos límites |
| Cuerpo JSON | Que size llegue como "1280x720", sin espacios, signo × ni una sustitución automática |
| Respuesta de error | Qué 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?

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.



