Saltar al contenido principal

GPT-Image-1 API: Una guía paso a paso con ejemplos

Aprende a generar y editar imágenes con la API GPT-Imagen-1, incluyendo la configuración, el uso de parámetros y ejemplos prácticos como enmascarar y combinar varias imágenes.
Actualizado 1 may 2025  · 12 min de lectura

Hace unas semanas, ChatGPT se hizo viral con su nuevo modelo de generación de imágenes. Este modelo es con diferencia el mejor que he visto. Su capacidad para editar imágenes es lo que la distingue. Es increíblemente preciso y facilita enormemente dar vida a la imaginación. Otros modelos también pueden hacerlo, pero no con el mismo grado de precisión.

Generar imágenes en su interfaz es fácil, ya que sólo tenemos que proporcionar una indicación de texto. Sin embargo, como programador, estaba deseando que llegara a la API para poder interactuar con ella mediante programación. Por fin ha llegado ese día, y escribo este blog para enseñarte a utilizarlo con Python.

Si sólo te interesa aprender a utilizarlo dentro de la interfaz del chat, anteriormente escribí esta Guía de generación de imágenes GPT-4o con ocho ejemplos prácticos.

Desarrollar aplicaciones de IA

Aprende a crear aplicaciones de IA utilizando la API OpenAI.
Empieza a hacer Upskilling gratis

Configuración de la API GPT-Imagen-1

El nuevo modelo de imagen GPT está protegido, lo que significa que se requieren verificaciones adicionales para poder utilizarlo. En esta sección describimos cómo configurar la API. Si ya tienes una clave API, puedes saltarte el primer paso.

Paso 1: Generar una clave API

El primer paso es generar una clave API. Podemos crear una iniciando sesión en su plataforma y navegando hasta la página Página de claves API. A continuación, hacemos clic en el botón "Crear nueva clave secreta".

Una vez generada la clave, crea un archivo llamado .env y cópialo con el siguiente formato:

OPENAI_API_KEY=<paste_your_api_key_here>

Paso 2: Verificar nuestra organización

Una gran diferencia con los demás modelos de OpenAI es que, al utilizar la API de imágenes GPT, debemos verificar nuestra organización. El motivo es que GPT-Image-1 puede generar imágenes realistas y detalladas, lo que suscita preocupación por un posible uso indebido, como la creación de deepfakes o contenido inapropiado. Al verificar las organizaciones, OpenAI puede controlar mejor el uso y hacer cumplir sus políticas de seguridad.

Puedes verificar tu organización aunque no tengas una empresa. Sin embargo, ten en cuenta que este proceso requiere proporcionar tu documento de identidad oficial y completar la verificación facial.

Para realizar la verificación, navega a la pestaña pestaña general de la plataforma de la API OpenAI y haz clic en el botón de la sección "Verificaciones".

El proceso lo realiza un tercero y consiste en:

  1. Cargar una imagen de un documento de identificación.
  2. Utiliza la cámara de tu dispositivo móvil para verificar que tu identidad coincide con el documento facilitado.

El proceso tarda sólo un par de minutos en completarse, y luego unos 15 minutos en procesarse.

Configuración de Python

Para este tutorial, instalaremos los siguientes paquetes de Python:

  • openai: El paquete oficial de OpenAI que nos permite interactuar con su API.
  • dotenv: Un paquete Python que facilita la carga segura de la clave API desde el archivo .env que creamos anteriormente.

Podemos instalarlos utilizando el comando

pip install openai dotenv

Generar nuestra primera imagen con GPT-Image-1

Veamos cómo podemos generar una imagen con gpt-image-1. Empieza creando un nuevo archivo Python, por ejemplo, generate_image.py, en la misma carpeta que el archivo .env.

A continuación, importa los paquetes necesarios:

# Import the packages
from openai import OpenAI
from dotenv import load_dotenv
import os
import base64
import time

Ten en cuenta que os y base64 son paquetes integrados de Python y no es necesario instalarlos.

A continuación, cargamos la clave API e inicializamos el cliente OpenAI:

# Load the API key
load_dotenv()
api_key = os.getenv("OPENAI_API_KEY")
# Initialize the OpenAI client
client = OpenAI(api_key=api_key)

A continuación, pedimos al usuario que introduzca un texto mediante la función integrada input() y enviamos una solicitud de generación de imagen a la API:

# Ask the user to input a prompt in the terminal
print("What do you want to generate?")
prompt = input("> ")
print("Generating image...")
# Send the prompt to the API
img = client.images.generate(
  model="gpt-image-1",
  prompt=prompt,
  background="auto",
  n=1,
  quality="high",
  size="1024x1024",
  output_format="png",
  moderation="auto",
)

Por último, guardamos la imagen generada en un archivo:

# Save the image into a file
image_bytes = base64.b64decode(img.data[0].b64_json)
with open(f"output_{int(time.time())}.png", "wb") as f:
  f.write(image_bytes)

Puedes encontrar el guión completo aquí. Para ejecutar este script, utiliza el comando

python generate_image.py

Aquí tienes un ejemplo con el resultado:

Ejemplo de ejecución de gpt-image-1 mediante API

GPT-Imagen 1-parámetros

En esta sección, describimos los parámetros más relevantes del modelo gpt-image-1:

  • prompt: La instrucción textual que describe qué imagen queremos que genere el modelo.
  • background: El tipo de fondo de la imagen. Debe ser uno de los siguientes: "transparent", "opaque", o "auto". El valor por defecto es "auto", en el que el modelo decidirá en función del contenido cuál es el mejor tipo de fondo. Ten en cuenta que las imágenes JPEG no admiten fondos transparentes.
  • n: El número de imágenes a generar. Debe ser un número del 1 al 10.
  • quality: La calidad de la imagen generada. Debe ser uno de los siguientes: "high", "medium", o "low", siendo por defecto "high".
  • size: El tamaño de la imagen en píxeles. Debe ser uno de los siguientes: "1024x1024" (cuadrado), "1536x1024" (apaisado), "1024x1536" (retrato).
  • output_format: El formato de la imagen. Debe ser uno de los siguientes: "png", "jpeg", o "webp". El valor por defecto es "png".
  • moderation: El nivel de moderación del contenido. Debe ser "low" para un filtro menos restrictivo o "auto", que es el valor por defecto.

Hemos cubierto los parámetros más importantes disponibles para el modelo gpt-image-1. Para más detalles y una lista completa de parámetros, consulta la documentación oficial de la API.

Efectos del parámetro de calidad

Aquí tienes una comparación de imágenes generadas utilizando el mismo indicador con diferentes calidades:

Efecto de la calidad en imágenes fotorrealistas utilizando gpt-image-1

Vemos que el primer gato (con la calidad más baja) tiene algunos artefactos alrededor de los ojos, y que la imagen se vuelve significativamente más realista a medida que aumenta la calidad.

Aquí tienes otro ejemplo con una salida estilo dibujos animados:

Efecto de la calidad en los dibujos en la generación de gpt-imagen-1

En este caso, también observamos que cuanto mayor es la calidad, más pulida es la imagen. En mi opinión, sin embargo, esto es menos relevante para los contenidos que no pretenden ser realistas.

Recuerda que cuanto mayor sea la calidad, mayor será el coste y el tiempo de cálculo, así que es buena idea encontrar un buen equilibrio, dependiendo del caso de uso. Te recomendaría probar los parámetros de bajo a alto para ver el valor mínimo que da resultados aceptables para cada caso de uso.

Parámetro de fondo

En mis experimentos, comprobé que el modelo ignoraba mayoritariamente este parámetro. Aquí tienes ejemplos paralelos en los que he variado los parámetros de background y las instrucciones de transparencia del aviso:

Ejemplos de transparencia de fondo en gpt-image-1

En el primer ejemplo, se ignoró el parámetro de transparencia. En la segunda, añadí las instrucciones de transparencia en el aviso, y funcionó un poco mejor. En la última, pedí un fondo opaco, pero especifiqué que quería una pegatina en el aviso y obtuve un fondo transparente.

Sigo recomendando utilizar el parámetro para que coincida con lo que quieres, pero asegúrate de especificar también el resultado deseado en la consulta para reforzarlo.

Editar imágenes con GPT-Imagen-1

Como mencioné en la introducción, la parte más emocionante de GPT-Imagen-1 es su capacidad para editar imágenes. Empecemos por aprender a pedirle que edite una imagen y luego exploremos algunos casos de uso.

Para editar imágenes, se puede reutilizar la mayor parte del código. Lo único que cambia es que en lugar de utilizar la función client.images.generate(), utilizamos la función client.images.edit().

He aquí un ejemplo:

img = client.images.edit(
  model="gpt-image-1",
  image=[
    open("my-image.jpg", "rb"),
  ],
  prompt=prompt,
  n=1,
  quality="high",
  size="1024x1536",
)

El nuevo parámetro es image. Es una lista de imágenes de entrada que se utilizarán en la edición. En este caso, sólo proporcionamos una imagen llamada my-image.jpg situada en la misma carpeta que el script.

Aquí tienes un ejemplo del uso de GPT Imagen 1 para editar una de mis fotos:

Ejemplo de edición de una imagen con gpt-image-1

Ten en cuenta que, como la imagen original tiene una proporción vertical, he utilizado el tamaño vertical 1024x1536. Sin embargo, no es la misma proporción que la imagen original. Incluso en el modo de edición, el modelo sólo puede producir imágenes en los tres tamaños especificados anteriormente.

Puedes encontrar el guión de edición completo aquí.

Utilizar máscaras

El modo Edición proporciona un parámetro mask que podemos utilizar para especificar las áreas en las que se debe editar la imagen. La máscara debe ser una imagen PNG de 4 MB como máximo y tener el mismo tamaño que la imagen. Las zonas con un 100% de transparencia corresponden a las zonas que GPT Imagen 1 puede editar.

Proporcionamos la máscara del mismo modo que la imagen, salvo que en este caso no es una lista:

img = client.images.edit(
  model="gpt-image-1",
  image=[
    open(sys.argv[1], "rb"),
  ],
  # We provide the mask like this
  mask=open("mask.png", "rb"),
  prompt=prompt,
  n=1,
  quality="high",
  size="1536x1024",
)

Sin embargo, cuando experimenté con él, no funcionó muy bien, y he visto informes en Internet de personas con problemas similares.

He aquí un ejemplo:

Ejemplo de cómo utilizar el enmascaramiento con GPT Imagen 1

También he intentado utilizarlo para añadir elementos en lugares específicos, y no funcionó de forma consistente. Al igual que con el parámetro background para la generación de imágenes, he descubierto que describir lo que quiero en el prompt funciona mejor.

Utilizar varias imágenes

El modelo puede procesar y combinar varias imágenes a la vez. En el ejemplo siguiente, lo utilizamos para crear un cartel publicitario que combina las imágenes de estas tres bebidas individuales:

Combinar varias fotos en gpt-image-1

Proporcionamos las tres imágenes en forma de lista en el parámetro image, como sigue:

prompt = """
Create a vibrant and eye-catching marketing poster to 
promote the cold drinks offerings at our coffee shop.
"""

img = client.images.edit(
  model="gpt-image-1",
  # We can provide multiple images at once
  image=[
    open("latte.png", "rb"),
    open("americano.png", "rb"),
    open("icetea.png", "rb"),
  ],
  prompt=prompt,
  size="1536x1024",
)

He aquí el resultado:

Resultado de combinar varias fotos con gpt-image-1

GPT-Imagen-1 Precios

La generación de imágenes se cobra en función de:

  1. El número de tokens de la petición de texto.
  2. El número de fichas en las imágenes de entrada.
  3. El número de fichas en la imagen de salida.

Información sobre el precio de los tokens con gpt-image-1

A veces es difícil hacerse una idea de lo que representan estos costes, porque no sabemos de cuántas fichas consta una imagen. 

Como se conocen las dimensiones de las imágenes de salida, sabemos cuántas fichas se necesitan para cada una, por lo que podemos dar valores precisos para el precio de las fichas de la imagen de salida (que es la parte más cara):

Información de precios de salida con gpt-image-1

El precio depende de la calidad de la imagen y del tamaño. Para más detalles, consulta la Página de precios de la Imagen GPT 1.

Cuando generamos una imagen, la API devuelve el número de tokens que ha utilizado, de modo que podemos combinarlo con la información anterior para saber exactamente cuánto cuesta. 

Podemos mostrar la cantidad de fichas utilizadas imprimiendo el campo usage del resultado:

img = client.images.generate(
  model="gpt-image-1",
  prompt=prompt,
  background="transparent",
  n=1,
  quality="medium",
  size="1024x1024",
  moderation="auto",
  output_format="png",
)
# Add this to see the usage
print("Prompt tokens:", img.usage.input_tokens_details.text_tokens)
print("Input images tokens:", img.usage.input_tokens_details.image_tokens)
print("Output image tokens:", img.usage.output_tokens)

Salida:

Prompt tokens: 8
Input images tokens: 0
Output image tokens: 272

Conclusión

A pesar de algunas deficiencias de la API, como que el enmascaramiento y la transparencia no son lo bastante fiables, el modelo puede ejecutar con gran precisión las instrucciones proporcionadas en el prompt.

Creo que este modelo abre muchas posibilidades para construir a su alrededor. En este tutorial, aprendimos lo básico para utilizarlo. Aquí tienes algunas ideas que quizá quieras explorar para aprovechar lo que has aprendido aquí:

  • Racionalizar la conversión de fotos de comida hechas con el teléfono en bellas fotografías de comida para que los restaurantes las utilicen en sus menús.
  • A partir de la foto de un amigo o de un selfie, crea un paquete de pegatinas que exprese varias emociones para utilizarlo en aplicaciones de chat.
  • Crea una herramienta que, dadas las descripciones de escenas individuales, cree un cómic a partir de esas escenas.

François Aubry's photo
Author
François Aubry
LinkedIn
Ingeniero full-stack y fundador de CheapGPT. Enseñar siempre ha sido mi pasión. Desde mis primeros días como estudiante, busqué con entusiasmo oportunidades para dar clases particulares y ayudar a otros estudiantes. Esta pasión me llevó a realizar un doctorado, en el que también trabajé como ayudante de profesor para apoyar mis esfuerzos académicos. Durante esos años, encontré una inmensa satisfacción en el entorno tradicional del aula, fomentando las conexiones y facilitando el aprendizaje. Sin embargo, con la llegada de las plataformas de aprendizaje en línea, reconocí el potencial transformador de la educación digital. De hecho, participé activamente en el desarrollo de una plataforma de este tipo en nuestra universidad. Estoy profundamente comprometida con la integración de los principios de la enseñanza tradicional con metodologías digitales innovadoras. Mi pasión es crear cursos que no sólo sean atractivos e informativos, sino también accesibles para los alumnos en esta era digital.
Temas

Aprende IA con estos cursos

Programa

Developing AI Applications

0 min
Learn to create AI-powered applications with the latest AI developer tools, including the OpenAI API, Hugging Face, and LangChain.
Ver detallesRight Arrow
Comienza el curso
Ver másRight Arrow
Relacionado
An AI juggles tasks

blog

Cinco proyectos que puedes crear con modelos de IA generativa (con ejemplos)

Aprende a utilizar modelos de IA generativa para crear un editor de imágenes, un chatbot similar a ChatGPT con pocos recursos y una aplicación clasificadora de aprobación de préstamos y a automatizar interacciones PDF y un asistente de voz con GPT.
Abid Ali Awan's photo

Abid Ali Awan

10 min

An avian AI exits its cage

blog

12 alternativas de código abierto a GPT-4

Alternativas de código abierto a GPT-4 que pueden ofrecer un rendimiento similar y requieren menos recursos informáticos para funcionar. Estos proyectos vienen con instrucciones, fuentes de código, pesos del modelo, conjuntos de datos e IU de chatbot.
Abid Ali Awan's photo

Abid Ali Awan

9 min

blog

¿Qué es GPT-4 y por qué es importante?

OpenAI ha anunciado el lanzamiento de su último gran modelo lingüístico, GPT-4. Este modelo es un gran modelo multimodal que puede aceptar tanto entradas de imagen como de texto y generar salidas de texto.
Abid Ali Awan's photo

Abid Ali Awan

9 min

Tutorial

Visión GPT-4: Guía completa para principiantes

Este tutorial le presentará todo lo que necesita saber sobre GPT-4 Vision, desde cómo acceder a él hasta ejemplos prácticos del mundo real y sus limitaciones.
Arunn Thevapalan's photo

Arunn Thevapalan

12 min

Tutorial

Ajuste fino de GPT-3 mediante la API OpenAI y Python

Libere todo el potencial de GPT-3 mediante el ajuste fino. Aprenda a utilizar la API de OpenAI y Python para mejorar este modelo de red neuronal avanzado para su caso de uso específico.
Zoumana Keita 's photo

Zoumana Keita

12 min

Tutorial

Guía para principiantes sobre el uso de la API ChatGPT

Esta guía te acompanya a través de los fundamentos de la API ChatGPT, demostrando su potencial en el procesamiento del lenguaje natural y la comunicación impulsada por la IA.
Moez Ali's photo

Moez Ali

11 min

Ver másVer más