Los modelos de lenguaje recientes pueden procesar y analizar imágenes de entrada, una capacidad conocida como visión. Los modelos GPT Image pueden usar texto e imágenes de entrada para crear imágenes nuevas o editar las existentes.
Elige un punto de acceso según quieras analizar imágenes o generarlas:
Para obtener más información sobre las modalidades de entrada y salida compatibles con nuestros modelos, consulta nuestra página de modelos.
Generar o editar imágenes
Con la API Images, elige gpt-image-2.5-sunburst para generar imágenes a partir de texto o editar imágenes existentes. Con la API Responses, elige un modelo de la línea principal compatible con la herramienta de generación de imágenes; la herramienta se encarga de seleccionar el modelo GPT Image.
Generar imágenes con Responses
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20import OpenAI from "openai";const openai = new OpenAI();const response = await openai.responses.create({ model: "gpt-6-astra", input: "Generate an image of gray tabby cat hugging an otter with an orange scarf", tools: [{ type: "image_generation" }],});// Save the image to a fileconst imageData = response.output .filter((output) => output.type === "image_generation_call") .map((output) => output.result);if (imageData.length > 0) { const imageBase64 = imageData[0]; const fs = await import("fs"); fs.writeFileSync("cat_and_otter.png", Buffer.from(imageBase64, "base64"));}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22from openai import OpenAIimport base64client = OpenAI()response = client.responses.create(model="gpt-6-astra",input="Generate an image of gray tabby cat hugging an otter with an orange scarf",tools=[{"type": "image_generation"}],)# Save the image to a fileimage_data = [ output.resultfor output in response.outputif output.type =="image_generation_call"]if image_data: image_base64 = image_data[0]withopen("cat_and_otter.png", "wb") as f: f.write(base64.b64decode(image_base64))
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43package mainimport ( "context" "encoding/base64" "os" "github.com/openai/openai-go/v3" "github.com/openai/openai-go/v3/responses")func main() { client := openai.NewClient() response, err := client.Responses.New(context.Background(), responses.ResponseNewParams{ Model: "gpt-6-astra", Input: responses.ResponseNewParamsInputUnion{ OfString: openai.String("Generate an image of a gray tabby cat hugging an otter with an orange scarf."), }, Tools: []responses.ToolUnionParam{{ OfImageGeneration: &responses.ToolImageGenerationParam{}, }}, }) if err != nil { panic(err) } for _, output := range response.Output { if output.Type != "image_generation_call" { continue } image, err := base64.StdEncoding.DecodeString(output.AsImageGenerationCall().Result) if err != nil { panic(err) } if err := os.WriteFile("cat_and_otter.png", image, 0o600); err != nil { panic(err) } return } panic("response did not include an image generation call")}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23import com.openai.client.OpenAIClient;import com.openai.client.okhttp.OpenAIOkHttpClient;import com.openai.models.responses.ResponseCreateParams;import com.openai.models.responses.Tool;import java.io.IOException;import java.nio.file.Files;import java.nio.file.Path;import java.util.Base64;ResponseCreateParams params = ResponseCreateParams.builder() .model("gpt-6-astra") .input("Generate an image of a gray tabby cat hugging an otter with an orange scarf.") .addTool(Tool.ImageGeneration.builder().build()) .build();String imageResult = client.responses().create(params).output().stream() .flatMap(item -> item.imageGenerationCall().stream()) .flatMap(call -> call.result().stream()) .findFirst() .orElseThrow(() -> new IllegalStateException("No generated image returned"));Files.write(Path.of("cat_and_otter.png"), Base64.getDecoder().decode(imageResult));
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28using OpenAI.Responses;#pragma warning disable OPENAI001string key = Environment.GetEnvironmentVariable("OPENAI_API_KEY")!;ResponsesClient client = new(key);CreateResponseOptions options = new(){ Model = "gpt-6-astra",};options.InputItems.Add( ResponseItem.CreateUserMessageItem( "Generate an image of a gray tabby cat hugging an otter with an orange scarf." ));options.Tools.Add( ResponseTool.CreateImageGenerationTool(model: "gpt-image-2"));ResponseResult response = await client.CreateResponseAsync(options);ImageGenerationCallResponseItem image = response .OutputItems.OfType<ImageGenerationCallResponseItem>() .FirstOrDefault() ?? throw new InvalidOperationException("No generated image was returned.");await File.WriteAllBytesAsync( "cat_and_otter.png", image.ImageResultBytes.ToArray());
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21require "base64"require "openai"client = OpenAI::Client.newresponse = client.responses.create( model: "gpt-6-astra", input: "Generate an image of a gray tabby cat hugging an otter with an orange scarf.", tools: [{ type: :image_generation }])image_call = response.output.find do |item| item.is_a?(OpenAI::Models::Responses::ResponseOutputItem::ImageGenerationCall)endunless image_call.is_a?(OpenAI::Models::Responses::ResponseOutputItem::ImageGenerationCall) raise "No image generation call returned"endFile.binwrite( "cat_and_otter.png", Base64.strict_decode64(image_call.result))
1
2
3
4
5
6
7
8openai responses create \ --model gpt-6-astra \ --raw-output \ --transform 'output.#(type=="image_generation_call").result' <<'YAML' | base64 --decode > cat_and_otter.pngtools: - type: image_generationinput: Generate an image of a gray tabby cat hugging an otter with an orange scarf.YAML
Puedes obtener más información sobre la generación de imágenes en nuestra guía de Generación
de imágenes.
Usar el conocimiento del mundo para generar imágenes
Los modelos GPT Image pueden recurrir al conocimiento del mundo sin una imagen de referencia. Por ejemplo, un prompt que pida una vitrina de piedras semipreciosas puede producir una escena con gemas reconocibles, como amatista, cuarzo rosa y jade.
Analizar imágenes
Usa un modelo con capacidades de visión para describir imágenes, leer texto visible y responder preguntas sobre objetos, formas, colores o texturas. Ten en cuenta las limitaciones del modelo al usar sus respuestas.
Proporcionar imágenes como entrada a un modelo
Proporciona una imagen para su análisis mediante una URL completa de la imagen o una URL de datos codificada en Base64.
Puedes proporcionar varias imágenes como entrada en una sola solicitud incluyéndolas en el arreglo content, pero ten en cuenta que las imágenes se contabilizan como tokens y se facturarán según ese cálculo.
Proporciona una imagen para su análisis de cualquiera de estas formas:
Mediante una URL completa de un archivo de imagen
Mediante una imagen como URL de datos codificada en Base64
Mediante un ID de archivo (creado con la API Files)
Puedes proporcionar varias imágenes como entrada en una sola solicitud incluyéndolas en el arreglo content, pero ten en cuenta que las imágenes se contabilizan como tokens y se facturarán según ese cálculo.
Usa archivos de imagen compatibles que sean lo suficientemente nítidos para que el modelo los analice.
Requisito
Entradas compatibles
Tipos de archivo
PNG (.png), JPEG (.jpeg o .jpg), WEBP (.webp) y GIF no animado (.gif)
Tamaño de la solicitud
Hasta 512 MB de datos en total por solicitud
Cantidad de imágenes
Hasta 1500 imágenes por solicitud
Para las imágenes de entrada basadas en parches, la API admite hasta 30 000 parches por imagen después de aplicar las reglas de redimensionamiento del modelo y el nivel de detail seleccionados. Este límite se aplica a todos los niveles de detalle compatibles y a cada imagen por separado, no al total de parches de la solicitud.
Los presupuestos de redimensionamiento inferiores específicos de cada modelo y nivel de detalle siguen vigentes. Las imágenes que superan el límite de 30 000 parches después del procesamiento se rechazan; no se redimensionan automáticamente para cumplirlo. Reduce las dimensiones de la imagen e inténtalo de nuevo.
Los tokens de imagen y el resto de tu prompt también deben ajustarse a los límites de entrada y contexto del modelo. Una estimación de tokens no garantiza que una solicitud cumpla con todos los límites de entrada. El uso de imágenes debe cumplir con nuestras políticas de uso.
Elige un nivel de detalle de imagen
El parámetro detail controla el preprocesamiento de las imágenes. Los valores compatibles dependen del modelo: low, high, original o auto. Si omites el parámetro, el valor predeterminado es auto tanto en la API Responses como en la API para completar chats. La tabla de redimensionamiento por modelo muestra el comportamiento correspondiente.
Usa las siguientes recomendaciones para elegir un nivel de detalle:
Nivel de detalle
Ideal para
low
Comprensión general de imágenes. El redimensionamiento y el uso de tokens dependen del modelo; low no siempre usa menos tokens que high.
high
Comprensión estándar de imágenes con alta fidelidad cuando no se requieren coordenadas precisas de la imagen original.
original
Imágenes grandes, con muchos detalles, que requieren precisión espacial o destinadas al uso de la computadora, cuando el modelo lo admite.
auto
Usa el comportamiento de redimensionamiento predeterminado del modelo, que se muestra en la tabla de redimensionamiento por modelo.
Para las tareas que requieren detalles visuales finos o coordenadas precisas, como el reconocimiento óptico de caracteres (OCR), la detección de objetos pequeños o el uso de la computadora, usa "detail": "original" cuando esté disponible. El nivel de detalle original puede redimensionar las imágenes para cumplir con el límite de dimensiones en píxeles o el presupuesto de parches para el redimensionamiento del modelo, pero no para cumplir con el límite independiente de rechazo de 30 000 parches. Para las tareas que requieren coordenadas precisas, redimensiona las imágenes para que se ajusten a esos límites antes de enviarlas y convierte las coordenadas devueltas a las de la imagen original. Consulta la guía de Uso de la computadora para obtener información sobre el manejo de coordenadas.
Comportamiento de redimensionamiento por modelo
La siguiente tabla resume el comportamiento de redimensionamiento de los modelos de visión de propósito general. Otros modelos y variantes especializadas pueden usar límites diferentes. Todos los cambios de tamaño conservan la relación de aspecto sin ampliar las imágenes más pequeñas.
Familia de modelos
Niveles de detalle compatibles
Comportamiento de parches y redimensionamiento
gpt-6-astra
low, high, original,
auto
low ajusta la imagen para que no supere los 512 × 512 píxeles. high permite hasta
2500 parches y una dimensión máxima de 65 535 píxeles. Se aplican ambos límites.
original conserva las dimensiones de la imagen, excepto cuando esta
supera los 65 535 píxeles en cualquiera de sus lados, en cuyo caso se reduce para respetar ese
límite. Si la imagen resultante requiere más de
30 000 parches, la API rechaza
la solicitud; la imagen no se redimensiona para ajustarse al límite de parches.
auto usa el mismo comportamiento de redimensionamiento que original.
gpt-5.6-sol, gpt-5.6-terra,
gpt-5.6-luna
low, high, original,
auto
low ajusta la imagen a un máximo de 512 × 512 píxeles. high la ajusta
a un máximo de 2048 × 2048 píxeles y 2500 parches. original
conserva las dimensiones de la imagen, salvo que las imágenes de más de 65 535
píxeles en cualquiera de sus lados se reducen para ajustarse a ese límite. Si la imagen
resultante requiere más de
30 000 parches, la API rechaza
la solicitud; la imagen no se redimensiona para ajustarse al límite de parches.
auto usa el mismo comportamiento de redimensionamiento que original.
gpt-5.5
low, high, original,
auto
low ajusta la imagen a un máximo de 512 × 512 píxeles. high permite hasta
2500 parches y una dimensión máxima de 2048 píxeles. original
permite hasta 10 000 parches y una dimensión máxima de 6000 píxeles. Ambos
límites se aplican. auto usa el mismo comportamiento de redimensionamiento que
original.
gpt-5.4, gpt-5.4-mini, gpt-5.4-nano
low, high, original,
auto
low usa una dimensión máxima de 2048 píxeles y un presupuesto de 6144 parches
, por lo que puede usar más tokens que high.
high permite hasta 2500 parches y una dimensión máxima
de 2048 píxeles. original permite hasta 10 000 parches y una
dimensión máxima de 6000 píxeles. Ambos límites se aplican. auto usa
el mismo comportamiento de redimensionamiento que high.
gpt-5.2, gpt-4.1-mini
low, high, auto
Estos niveles de detalle usan los mismos límites de redimensionamiento: una dimensión máxima de 2048 píxeles
y un presupuesto de 6144 parches. original no es
compatible.
Los modelos de visión convierten las imágenes de entrada en tokens de entrada facturables. La calculadora de costos de imágenes de entrada y las reglas de parches y teselas de esta sección se aplican a las entradas de los modelos de visión, no a la generación ni a la edición con GPT Image. Consulta Entradas de los modelos GPT Image para conocer esos precios, que se calculan por separado.
Los tokens de imagen también cuentan para tus límites de tokens por minuto (TPM). La calculadora estima una imagen con las tarifas estándar de entrada; no incluye el resto de tu prompt ni la salida del modelo.
Algunos modelos tokenizan las imágenes cubriéndolas con parches de 32px x 32px. Muchas combinaciones de modelo y nivel de detalle definen un presupuesto de parches para el redimensionamiento. Primero, la API ajusta la imagen al límite de dimensiones en píxeles del nivel de detalle seleccionado, conservando la relación de aspecto y redondeando a valores enteros de píxeles sin ampliar las imágenes más pequeñas. Luego, el costo en tokens se determina de la siguiente manera:
A. Calcula cuántos parches de 32px x 32px se necesitan para cubrir la imagen después de aplicar el límite de dimensiones en píxeles. Un parche puede extenderse más allá del borde de la imagen.
patch_count = ceil(width/32)×ceil(height/32)
B. Cuando el modelo y el nivel de detalle seleccionados especifiquen un presupuesto de parches para el redimensionamiento, reduce la imagen proporcionalmente si supera ese presupuesto. De lo contrario, omite este paso. Ajusta la escala para mantenerte dentro del presupuesto después de convertir las dimensiones a valores enteros de píxeles y calcular la cobertura de parches. Conserva toda la precisión hasta calcular las dimensiones finales.
C. Si en el paso B se redimensionó la imagen, redondea hacia abajo el ancho y la altura finales a valores enteros de píxeles. Calcula los parches necesarios para cubrir la imagen resultante. Esta es la cantidad de tokens de imagen antes de aplicar el multiplicador del modelo. Cuando se aplica un presupuesto de parches, esta cantidad se mantiene dentro de ese presupuesto.
Si esta cantidad supera los 30 000 parches, la API rechaza la solicitud. Verifica este límite antes de aplicar el multiplicador de tokens.
D. Multiplica la cantidad de parches por el multiplicador del modelo y redondea hacia arriba para obtener los tokens de entrada de imagen facturables. Aplica el precio de entrada del modelo a esos tokens una sola vez; el multiplicador no se aplica a otros tokens del prompt ni se vuelve a aplicar al precio.
Modelo
Multiplicador
gpt-6-astra
1,2
gpt-5.6-sol
1,2
gpt-5.6-terra
1,2
gpt-5.6-luna
1,2
gpt-5.5
1,2
gpt-5.4
1,2
gpt-5.4-mini
1,2
gpt-5.4-nano
1,2
gpt-5.2
1,2
gpt-5-mini*
1,2
gpt-5-nano*
1,5
gpt-4.1-mini
1,62
gpt-4.1-nano* (versión del 2025-04-14)
2,46
o4-mini*
1,72
En el caso de gpt-4.1-mini, esto se aplica a la versión del 2025-04-14.
* Obsoletos y con retiro programado. Consulta el calendario de retiros para conocer las fechas y las alternativas. Estos modelos no están incluidos en la calculadora ni en la tabla anterior de ajuste de tamaño por modelo.
Ejemplos de cálculo de tokens de imagen para gpt-6-astra con detail: high
Esta combinación usa una dimensión máxima de 65 535 píxeles, un límite de 2500 parches y un multiplicador de 1,2×.
Una imagen de 1024 × 1024 necesita 32 × 32 = 1024 parches. No es necesario cambiar su tamaño. La entrada de imagen facturable es de ceil(1024 × 1.2) = 1229 tokens.
Una imagen de 2048 × 2048 necesita inicialmente 64 × 64 = 4096 parches. El límite de parches reduce su tamaño a 1600 × 1600 píxeles, es decir, 50 × 50 = 2500 parches. La estimación es de ceil(2500 × 1.2) = 3000 tokens.
Una imagen de 4096 × 512 conserva su tamaño original: 128 × 16 = 2048 parches y ceil(2048 × 1.2) = 2458 tokens.
El redondeo de punto flotante en la facturación puede hacer que el total final difiera de la estimación en un token.
Tokenización de imágenes basada en mosaicos
Los modelos de esta tabla usan una cantidad base de tokens más los tokens correspondientes a los mosaicos de la imagen:
Modelo
Tokens base
Tokens por mosaico
gpt-5.1
70
140
gpt-5*
70
140
gpt-4o, gpt-4.1
85
170
gpt-4o-mini
2833
5667
o1*, o1-pro*, o3*
75
150
* Obsoletos y con retiro programado. Consulta el calendario de retiros para conocer las fechas y las alternativas. Estos modelos no están incluidos en la calculadora ni en la tabla anterior de ajuste de tamaño por modelo.
Con "detail": "low", una imagen cuesta solo los tokens base del modelo, independientemente de sus dimensiones. Con "detail": "high" o "detail": "auto":
Reduce el tamaño de la imagen para que quepa en un cuadrado de 2048px x 2048px, manteniendo la relación de aspecto. Las imágenes más pequeñas no se amplían.
Si el lado más corto supera los 768px, redúcelo a 768px y redondea la otra dimensión hacia abajo.
Cuenta los cuadrados de 512px necesarios para cubrir la imagen. Cada cuadrado usa la cantidad de tokens por mosaico del modelo.
Suma los tokens base del modelo a los tokens de los mosaicos.
Entradas de los modelos GPT Image
Los modelos GPT Image tienen precios específicos por token de imagen para la generación y la edición. La calculadora de visión no estima sus costos de entrada ni de salida. Para conocer las tarifas vigentes, consulta los precios de generación de imágenes; para conocer los flujos de trabajo de generación y edición, consulta la guía de generación de imágenes.
GPT Image 1
Las siguientes reglas de tokens de entrada se aplican a gpt-image-1. Usa el ajuste de tamaño de imágenes basado en mosaicos, pero reduce el lado más corto a 512px en lugar de 768px. El uso de tokens depende de las dimensiones de la imagen y del parámetro input_fidelity de la Images API.
Cuando la fidelidad de entrada se establece en baja, el costo base es de 65 tokens de imagen y cada mosaico cuesta 129 tokens de imagen.
Al usar una fidelidad de entrada alta, además de los tokens de imagen descritos anteriormente, agregamos una cantidad fija de tokens según la relación de aspecto de la imagen.
Si tu imagen es cuadrada, agregamos 4160 tokens de imagen de entrada adicionales.
Si se aproxima más a un formato vertical u horizontal, agregamos 6240 tokens adicionales.
Los modelos de visión pueden cometer errores. Ten en cuenta estas limitaciones al diseñar tu aplicación:
Imágenes médicas: el modelo no es adecuado para interpretar imágenes médicas especializadas, como tomografías computarizadas, y no debe usarse para dar asesoramiento médico.
Idiomas distintos del inglés: es posible que el modelo no funcione de manera óptima al procesar imágenes con texto en alfabetos no latinos, como el japonés o el coreano.
Texto pequeño: amplía el texto dentro de la imagen para mejorar su legibilidad. Cuando esté disponible, usar "detail": "original" también puede mejorar el desempeño.
Rotación: el modelo puede interpretar incorrectamente el texto y las imágenes que estén girados o de cabeza.
Elementos visuales: el modelo puede tener dificultades para comprender gráficos o texto con distintos colores o estilos, como líneas continuas, discontinuas o punteadas.
Razonamiento espacial: el modelo tiene dificultades con tareas que requieren una localización espacial precisa, como identificar posiciones de ajedrez.
Exactitud: el modelo puede generar descripciones o leyendas incorrectas en ciertas situaciones.
Forma de la imagen: el modelo tiene dificultades con las imágenes panorámicas y de ojo de pez.
Metadatos y ajuste de tamaño: el modelo no procesa los nombres de archivo originales ni los metadatos. El tamaño de las imágenes puede cambiar antes del análisis, incluso con el nivel de detalle original. Consulta Comportamiento de ajuste de tamaño por modelo para conocer los límites que se aplican a cada modelo.
Conteo: el modelo puede dar cantidades aproximadas de los objetos presentes en las imágenes.
CAPTCHAs: por razones de seguridad, nuestro sistema bloquea el envío de CAPTCHAs.