API de GPT con imágenes: análisis visual y ajustes de detalle
La API de GPT convierte cada imagen en tokens, y el campo detail decide cuántos. Este artículo muestra el formato de la solicitud, los valores low, high, original y auto, el cálculo de tokens para modelos basados en teselas y en parches, y una prueba paso a paso en PicassoIA.
Un solo campo del cuerpo de la solicitud decide si una foto cuesta 85 tokens o 3000. Ese campo es detail, va dentro del objeto de la imagen junto a la URL, y la mayoría de los tutoriales o lo omiten o citan cifras que dejaron de ser ciertas hace dos generaciones de modelos. Si envías capturas de pantalla, recibos, fotos de productos o gráficos a un modelo GPT, este ajuste determina tu factura, la latencia y cuánta parte de la imagen puede leer realmente el modelo.
Este artículo recorre el formato de la solicitud, los cuatro valores de detail, la aritmética de tokens para modelos basados en teselas y para modelos basados en parches, los casos en los que low sale contraproducente y los límites que conviene conocer antes de publicar tu aplicación. Las cifras proceden de las páginas de entrada de imágenes de la documentación de la API de OpenAI tal como están hoy, y cada ejemplo muestra su cálculo, para que puedas comprobarlo con el bloque usage de tus propias respuestas. Esas páginas cambian a menudo, y ese es un motivo más para registrar los recuentos de tokens en lugar de fiarte de una tabla, incluidas las de abajo.
Cómo se convierte una foto en tokens
Un modelo GPT nunca lee tu JPEG como archivo. La API redimensiona la imagen, la divide en bloques pequeños y convierte cada bloque en tokens que se sitúan en la ventana de contexto junto a tu texto. Esos tokens se facturan a la tarifa de entrada normal del modelo, así que una imagen más grande o más nítida supone una factura mayor y más latencia. Además, compiten con tu prompt y con la respuesta por la misma ventana de contexto, algo que importa cuando una solicitud incluye varias imágenes.
La forma de la solicitud
Las imágenes viajan dentro del mensaje del usuario como partes de contenido. La Responses API usa partes input_text y input_image, mientras que Chat Completions usa text y image_url. En ambas, detail va en la parte de la imagen. Este es un lector de recibos en GPT 5.4:
from openai import OpenAI
client = OpenAI()
response = client.responses.create(
model="gpt-5.4",
input=[
{
"role": "user",
"content": [
{"type": "input_text", "text": "List every line item and the total."},
{
"type": "input_image",
"image_url": "https://example.com/receipt.jpg",
"detail": "original",
},
],
}
],
)
print(response.output_text)
print(response.usage.input_tokens)
La misma llamada en Chat Completions con GPT-4o anida la URL un nivel más abajo:
Después de cada llamada, lee usage.input_tokens en Responses o usage.prompt_tokens en Chat Completions. Es el único número que zanja una discusión sobre el costo.
Tres formas de enviar píxeles
URL pública. La opción más sencilla, pero los servidores de OpenAI deben poder descargarla con rapidez.
URL de datos en base64. Una cadena data:image/jpeg;base64,... en línea funciona para archivos privados y añade alrededor de un tercio al tamaño de la carga.
ID de archivo. Sube el archivo una vez a través de la Files API con la finalidad vision, después referencia el ID con un campo file_id en la parte de la imagen y reutilízalo en varias solicitudes.
Los formatos aceptados son PNG, JPEG, WEBP y GIF no animado.
Los cuatro valores de detail
El campo detail acepta low, high, original y auto. Si lo omites, obtienes auto, que es el dimensionado por defecto del propio modelo. Los nombres sugieren una escalera sencilla, pero lo que hace cada peldaño depende del modelo que llames.
Valor
Para qué dice la documentación que sirve
Ojo con
low
Lectura general de la imagen
No siempre más barato que high en los modelos nuevos
En los modelos más antiguos basados en teselas, low es una tarifa fija: 85 tokens en GPT-4o y GPT 4.1, sea cual sea el tamaño del archivo. El modelo recibe una versión de 512 por 512 píxeles, suficiente para decir "un perro en la playa" y no lo bastante para leer una señal de calle. Úsalo para clasificación, pies de foto aproximados, pasadas de moderación y decisiones de enrutamiento, donde solo importa la idea general.
High y auto: el valor predeterminado del día a día
En los modelos de teselas, high primero ajusta la imagen dentro de un cuadrado de 2048 por 2048 píxeles, luego escala el lado más corto a 768 píxeles y después cuenta las teselas de 512 píxeles. En la familia GPT 5.x trabaja con parches de 32 píxeles, con un lado mayor de 2048 píxeles y un presupuesto de 2500 parches en GPT 5.4 y sus hermanos más pequeños. Es más que suficiente para fotos, fotos de productos y capturas de pantalla corrientes. Empieza a perjudicar con documentos densos y texto de interfaz diminuto, donde unos pocos píxeles perdidos convierten un 6 en un 8.
Original: cuando los píxeles importan
original eleva el techo a 10 000 parches y a un lado mayor de 6000 píxeles en GPT 5.4 y sus hermanos. OpenAI lo orienta a imágenes grandes, densas, sensibles a la posición o de uso del equipo, y al trabajo sensible a coordenadas, como el OCR o la detección de objetos pequeños. Imagina una captura de pantalla en 4K en la que el modelo debe devolver la posición de un botón, o un plano en el que una línea fina tiene significado. Pagas por esa nitidez: hasta 12 000 tokens de imagen por foto con el multiplicador de 1,2.
La regla práctica es ganárselo. Empieza una tarea con high, recoge los fallos y pasa a original solo los tipos de imagen que fallan. Si un campo se leía mal con high y se lee bien con original, los tokens extra han servido de algo. Si ambos ajustes fallan de la misma manera, el problema está en el prompt o en la imagen original, y más píxeles no lo arreglarán.
Cálculo de tokens, paso a paso
Modelos basados en teselas
La facturación por teselas es una tarifa base más una tarifa por cada tesela de 512 píxeles. GPT-4o y GPT 4.1 cobran 85 de base y 170 por tesela. GPT 5.1 cobra 70 y 140. GPT 4o Mini cobra 2833 y 5667, así que pasar el trabajo con imágenes al modelo mini infla el recuento de tokens en lugar de reducirlo. Compara el costo total, no la tarifa por token.
Los modelos nuevos cuentan parches de 32 por 32 píxeles: ceil(width / 32) x ceil(height / 32). Cuando el total supera el presupuesto, la imagen se reduce hasta que cabe, y el recuento final de tokens es el número de parches por un multiplicador del modelo, redondeado hacia arriba. El multiplicador es 1,2 para GPT 5.2, GPT 5.4 y la familia GPT 5.6 (Sol, Terra y Luna), y 1,62 para GPT 4.1 mini.
Imagen
Detail
Parches
Tokens con el multiplicador de 1,2
1920 x 1080
low, high o original
60 x 34 = 2040
2448
4000 x 3000
high
Limitado a 2500
Hasta 3000
4000 x 3000
low
Unos 3072 tras el límite de 2048 píxeles
Unos 3700
4000 x 3000
original
Limitado a 10 000
Hasta 12 000
Las filas de 4000 x 3000 son mi cálculo a partir de los presupuestos publicados, así que tómalas como estimaciones y confírmalas con usage. La fila de 1080p es exacta, porque la imagen ya cabe en todos los presupuestos.
La escala marca la diferencia. Diez mil fotos de productos a 2448 tokens cada una suman 24,48 millones de tokens de entrada antes de una sola palabra de prompt. El mismo conjunto a 85 tokens cada una en GPT-4olow suma 850 000, unas 29 veces menos, una diferencia que nunca notarías solo mirando el código.
Cuándo low cuesta más que high
La documentación incluye una advertencia que sorprende a mucha gente: low no siempre usa menos tokens que high. En GPT 5.4 y sus hermanos más pequeños, low permite un presupuesto de 6144 parches, mientras que high se queda en 2500, así que una foto grande puede costar más con low. En GPT 5.2 y GPT 4.1 mini, todos los niveles comparten una sola regla de dimensionado, un lado mayor de 2048 píxeles y un presupuesto de 6144 parches, así que low, high y auto devuelven recuentos idénticos, y original no está disponible.
De ello se derivan dos consecuencias. Nunca des por hecho que el ajuste barato es barato, y espera que el significado de tus valores detail existentes cambie al cambiar de modelo. Una prueba corta lo aclara todo:
Elige tres imágenes representativas: una pequeña, una captura de pantalla en 1080p y una foto de 12 megapíxeles.
Envía cada una con todos los valores de detail que admita el modelo.
Registra los tokens de entrada junto a la calidad de la respuesta.
Quédate con el ajuste más bajo que siga respondiendo correctamente.
💡 Si low y high devuelven el mismo recuento de tokens en un modelo, el campo no hace nada ahí. Elimínalo de tu código en lugar de mantener un parámetro que sugiere un ahorro que no estás obteniendo.
Límites que dan problemas en producción
Límites de carga y formato
La documentación actual permite hasta 512 MB de carga total y hasta 1500 imágenes por solicitud. Las guías antiguas citan 50 MB y 500 imágenes, así que una biblioteca que aplique esas cifras puede estar desactualizada. Una solicitud de 512 MB es un problema de latencia mucho antes que un problema de límites, porque base64 aumenta los bytes en un tercio y cada imagen sigue facturando tokens.
Dónde la visión sigue fallando
OpenAI enumera los puntos débiles con claridad, y coinciden con lo que aparece en producción:
Imágenes médicas especializadas, como las tomografías computarizadas, no son adecuadas.
Alfabetos no latinos, como el japonés o el coreano, pueden rendir peor.
Gráficos con estilos o colores de línea variables, donde hay que distinguir líneas continuas, discontinuas y de puntos, provocan errores.
La localización espacial precisa, como leer posiciones de ajedrez, no es fiable.
Los recuentos de objetos llegan como aproximaciones.
Los CAPTCHA están bloqueados.
Los nombres de archivo y los metadatos nunca se leen.
La letra pequeña es la víctima habitual en el trabajo diario. Cuando la parte que importa es pequeña, envía solo esa parte.
💡 Recorta antes de enviar. Un recorte de 600 x 400 de la línea del total de un recibo cuesta unos 300 tokens en GPT 5.4 (19 x 13 = 247 parches, por 1,2). La página completa de 4000 x 3000 con original puede llegar a 12 000, y el recorte suele leerse mejor.
Errores que malgastan tokens
La mayor parte del gasto de más procede de unos cuantos hábitos:
Subir archivos de cámara sin procesar. Una foto original de 12 megapíxeles se reduce igualmente al límite del modelo al llegar. Redimensiónala primero al lado mayor que permita tu nivel de detail (2048 píxeles para la mayoría de los ajustes, 6000 con original en GPT 5.4 y sus hermanos), exporta un JPEG, y la solicitud se sube más rápido sin perder nada.
Unir un collage en una sola imagen. Seis capturas pegadas en un mismo lienzo se reducen juntas, así que cada una pierde resolución. Envía seis partes de imagen separadas y nómbralas en el texto: "La imagen 1 es la factura, la imagen 2 es el albarán." Cada parte se factura por separado.
Pedirlo todo a la vez. Un prompt que pide un pie de foto, una lista de colores, una revisión de defectos y una pasada de OCR invita a respuestas superficiales. Una pregunta concreta por llamada, o una lista claramente numerada, devuelve una salida más limpia.
No registrar el uso nunca. Sin los recuentos de tokens de entrada por solicitud, un cambio de modelo o un nuevo tamaño de imagen pueden duplicar tu factura y nada te avisará.
Elige un ajuste según la tarea
Tarea
Empieza con
Por qué
Moderación, enrutamiento, pies de foto aproximados
low en modelos de teselas, auto en modelos de parches
La idea general basta
Fotos de productos, descripciones de escenas
high o auto
Buen detalle a un costo moderado
Recibos y facturas
high recortado, o original en GPT 5.4 y posteriores
La letra pequeña necesita píxeles
Gráficos y paneles
original, o un lector especializado
Las líneas finas tienen significado
Capturas de pantalla para agentes de interfaz
original
Las coordenadas deben ser exactas
Recibos y documentos
El texto es donde el redimensionado perjudica antes. Recorta la región, enderézala y pide una forma JSON fija para que un dígito incorrecto sea fácil de detectar. Indica al modelo que responda unreadable para cualquier campo que no pueda leer, porque un modelo al que se le permite adivinar adivinará, y un total incorrecto con confianza es peor que uno en blanco. Si un escaneo está borroso, repáralo antes de subirlo con una herramienta de restauración de imágenes con IA, porque ningún ajuste de detail puede inventar píxeles que nunca se capturaron.
Gráficos y capturas densas
Los gráficos mezclan trazos finos, etiquetas pequeñas y colores parecidos, justo el caso que OpenAI señala. Envíalos con original cuando el modelo lo admita. Pide primero los números subyacentes en forma de tabla y después la interpretación, así puedes contrastar los valores con la imagen antes de fiarte de cualquier tendencia que describa el modelo. Para tablas y gráficos que extraes a diario, un especialista como Granite Vision 4.1 4B merece una prueba comparativa lado a lado.
Fotos de productos a escala
Para el trabajo de catálogo, ejecuta la prueba de las tres imágenes de antes con tus fotos reales y después fija el ajuste y el prompt para todo el lote. Pide los mismos atributos en el mismo orden cada vez, como color, material y defectos visibles, y la salida se carga con facilidad en una base de datos. Fotografía también los artículos de la misma forma: un fondo, una distancia y una luz constantes te permiten usar un ajuste más barato, porque el modelo ya no tiene que lidiar con el ruido. Una foto de producto tomada sobre una mesa lisa con luz uniforme suele leerse bien con high, mientras que la misma taza en una cocina abarrotada puede no leerse bien.
Cómo usar GPT 5.4 en PicassoIA
No necesitas código para ver lo que lee un modelo. GPT 5.4 en PicassoIA acepta imágenes junto a un prompt de texto, y su formulario expone las mismas palancas que ajustas en la API: un prompt de sistema, la verbosidad, el esfuerzo de razonamiento y un límite de tokens de completado. Eso lo convierte en un lugar rápido para resolver las preguntas que van antes que los ajustes. ¿Qué redacción de prompt funciona? ¿Lee este modelo este tipo de imagen? ¿Basta un modelo más barato? Una advertencia: el formulario tiene un campo de entrada de imagen pero ningún interruptor de detail, así que trata los resultados como una prueba de la elección de prompt y modelo, no como una medición de low frente a high.
Añade tu imagen de prueba. Sirve un recibo, una captura de un panel o una foto de producto.
Escribe un prompt concreto: "Devuelve la fecha y el total en JSON" funciona mejor que "describe esta imagen".
Añade un System Prompt que defina el rol y el formato de salida.
Pon Verbosity en low para tareas de extracción y en high cuando quieras un desglose detallado.
Deja Reasoning Effort en none para una lectura sencilla. Súbelo para preguntas de varios pasos, y sube también Max Completion Tokens con él, porque un esfuerzo alto puede gastar todo el presupuesto en razonamiento y devolverte una respuesta vacía.
Ejecuta la misma imagen en GPT-4o y compara las dos salidas.
Modelos de visión que vale la pena comparar
Image to text es una de las capacidades integradas de la plataforma, y varios modelos de lenguaje aceptan imágenes:
Elige cinco imágenes de tu carga de trabajo real: una muy pequeña, una en 1080p, una foto de 12 megapíxeles, un recibo y un gráfico. Pásalas por GPT 5.4 y GPT-4o en PicassoIA, anota qué respuestas fueron correctas y después lleva el ganador a la API y compara los recuentos de tokens con cada valor de detail. Una hora de pruebas así ahorra más dinero que cualquier ajuste de precios.
¿Necesitas material de prueba? Abre PicassoIA, genera tus propias escenas con los modelos de texto a imagen y conviértelas en un conjunto de pruebas para tus prompts de visión. Puedes ver todo lo disponible en picassoia.com/en/all-models. Empieza con una imagen, haz una pregunta concreta y comprueba exactamente lo que lee el modelo.