GPT-6 Sol y Claude Opus 5.5 ya disponiblesGPT-6 Sol por la mitad del precio de 5.6 Sol

API de eliminación de objetos: quita objetos de tus fotos con GPT Image 2

Una frase por objeto bastó para estas tres eliminaciones. Aquí están el código de la petición, los resultados a tamaño completo y los puntos donde todavía no conviene fiarse.

Kiki, OmniaKey COO7 min de lectura
En esta página

El 28 de octubre de 2026 bastó una frase por objeto para que el endpoint de edición de GPT-Image 2 quitara de una foto de un parque a una mujer con su perro, un contenedor de basura azul y una cometa roja. Fueron tres ejecuciones, una frase en cada una. El hueco quedó integrado en el entorno, y el banco, los árboles y el horizonte de la ciudad siguieron en su sitio.

La llamada envía un prompt y una imagen de origen, y devuelve una imagen nueva completa. Abajo están el código de Python que ejecutamos, los tres resultados a tamaño completo y las comprobaciones que detectan un relleno que conviene rehacer.

Qué hace una eliminación por instrucción

Envías una foto y una frase. La frase nombra el objeto, dice qué debe ocupar su lugar y enumera lo que tiene que quedarse. El modelo vuelve a dibujar esa zona y devuelve una imagen entera nueva, así que no hay un paso aparte de composición.

La llamada es la misma tarea de medios que cualquier otra edición en OmniaKey: modelo gpt-image-2, type image, operation edit, la foto de origen en el campo input image como Base64 y la frase en input prompt. En parameters, size se escribe como WIDTHxHEIGHT y quality admite low, medium, high o auto; n debe ser 1. Las dos operaciones aparecen en la página del modelo.

El control está en las palabras. "La cometa roja pequeña del cielo" plantea un trabajo distinto de "la cosa roja", y un relleno como "césped y adoquines" decide qué ocupa el espacio después. La guía de prompts de GPT Image 2 explica el orden de la frase, y la guía de alternativas a FLUX Kontext usa el mismo tipo de instrucción con GPT Image 2.

La petición

Un solo archivo de Python hace todo: codifica la foto, crea la tarea, consulta su estado hasta que termina y descarga el PNG.

python
import base64
import json
import os
import time
import urllib.request
import uuid

API = "https://api.omniakey.com/v1/media/tasks"
KEY = os.environ["OMNIAKEY_API_KEY"]


def request(method, url, body=None, extra_headers=None):
    headers = {"Authorization": f"Bearer {KEY}", "User-Agent": "omniakey-example/1"}
    data = None
    if body is not None:
        headers["Content-Type"] = "application/json"
        data = json.dumps(body).encode()
    headers.update(extra_headers or {})
    req = urllib.request.Request(url, data=data, headers=headers, method=method)
    with urllib.request.urlopen(req, timeout=120) as resp:
        return json.load(resp)


def edit_image(source_path, prompt, out_path, size="1024x1536", quality="medium"):
    with open(source_path, "rb") as f:
        image = base64.b64encode(f.read()).decode()
    body = {
        "model": "gpt-image-2",
        "type": "image",
        "operation": "edit",
        "input": {"prompt": prompt, "image": {"data": image, "mime_type": "image/jpeg"}},
        "parameters": {"size": size, "quality": quality},
    }
    task = request("POST", API, body, {"Idempotency-Key": str(uuid.uuid4())})["id"]
    for _ in range(150):
        time.sleep(4)
        state = request("GET", f"{API}/{task}")
        if state["status"] not in ("queued", "processing"):
            break
    if state["status"] != "succeeded":
        raise RuntimeError(state.get("error") or state["status"])
    asset_url = state["assets"][0]["url"]  # signed link: valid for about an hour, so download now
    req = urllib.request.Request(asset_url, headers={"User-Agent": "omniakey-example/1"})
    with urllib.request.urlopen(req, timeout=120) as resp, open(out_path, "wb") as f:
        f.write(resp.read())
    return task
if __name__ == "__main__":
    task = edit_image(
        "park-base.jpg",
        "Remove the blue trash bin completely. Fill its spot with grass and paving stones so it matches the surroundings. Keep everything else exactly the same. Photorealistic, no text, no logos.",
        "park-no-bin.png",
        size="1536x1024",
    )
    print("task", task)

Comprobamos la función el 28 de octubre de 2026 con otro prompt, un impermeable amarillo, sobre un JPEG de 1024 píxeles del modelo base, y devolvió un PNG de 1024x1536.

  • La llamada de creación devuelve HTTP 202 y un id de tarea (documentación de imágenes de OmniaKey, consultada el 28 de octubre de 2026). Consulta esa tarea hasta que el estado deje de ser queued o processing; succeeded significa que los archivos están listos, y una tarea fallida trae un código y un mensaje de error y no se cobra.
  • La URL firmada del resultado caduca al cabo de una hora aproximadamente, mientras que el archivo se conserva 24 horas. Descárgalo en cuanto termine la tarea con un GET normal que no envíe ninguna clave de API.
  • El Base64 en línea cuenta dentro del límite de 1 MiB por petición, así que reduce primero la foto de un móvil.
  • Envía una cabecera User-Agent: el 28 de octubre de 2026, una petición con la de Python por defecto recibió HTTP 403, y esa cabecera lo resolvió.
  • El tamaño se indica de forma explícita, así que una foto horizontal sale a 1536x1024. GPT Image siempre devuelve un PNG opaco, de modo que lee las dimensiones reales en el archivo descargado.

Sobre el coste, la página de precios de OpenAI lista GPT Image 2 a $8.00 por millón de tokens de imagen de entrada y $30.00 por millón de tokens de imagen de salida, con las tarifas por lotes a la mitad (consultada el 28 de octubre de 2026). La página no tiene una tabla por imagen; su guía de generación de imágenes incluye una calculadora para una imagen. La tarifa actual de OmniaKey está en la página de precios.

Tres eliminaciones en una foto de un parque

Las cuatro imágenes salen del mismo fotograma base: un sendero soleado de un parque urbano, un banco de madera en el centro, un contenedor de basura metálico azul a la izquierda, una mujer que pasea un perro pequeño marrón hacia la cámara y una cometa roja pequeña en lo alto de un cielo despejado. La base y los resultados se hicieron a 1536x1024, quality medium, con GPT Image 2 a través de OmniaKey el 28 de octubre de 2026; la escena y las personas son sintéticas. Enviamos una frase por objeto y ejecutamos cada una una vez.

Objeto eliminadoInstrucción enviadaQué devolvió
Mujer y perro"Remove the woman and the small brown dog completely. Fill the path and the grass naturally so they match the surroundings. Keep the bench, the blue bin, the trees, the kite and the sky exactly the same. Photorealistic, no text, no logos."Mujer y perro fuera; sendero y césped rellenados; banco, contenedor, árboles, cometa y cielo intactos
Contenedor azul"Remove the blue trash bin completely. Fill its spot with grass and paving stones so it matches the surroundings. Keep everything else exactly the same. Photorealistic, no text, no logos."Contenedor fuera; su lugar relleno de césped y adoquines; la mujer y el perro siguen ahí
Cometa roja"Remove the small red kite from the sky. Keep the sky natural and everything else exactly the same. Photorealistic, no text, no logos."Cometa fuera; cielo natural; el resto del fotograma sin cambios
Cuatro viñetas: el sendero original del parque y el mismo fotograma sin la mujer y el perro, sin el contenedor y sin la cometa
Original y tres eliminaciones separadas de la misma foto. Cada viñeta cambia una sola cosa.

Generado con GPT-Image 2 a través de la API de OmniaKey el 28 de octubre de 2026, tamaño 1536x1024, quality medium.

La segunda viñeta pierde a la mujer y al perro mientras el sendero y el césped se cierran detrás, y el banco, el contenedor, los árboles, la cometa y el horizonte siguen igual. La tercera quita el contenedor y reconstruye su lugar con césped y adoquines, con la mujer y el perro todavía en el encuadre. La cuarta limpia la cometa de un cielo que por lo demás no cambia.

Qué revisar después de cada eliminación

Lee cada viñeta a tamaño real antes de publicar una eliminación.

  • El borde del relleno y el resto del fotograma. El césped, los adoquines o la textura del sendero nuevos se encuentran con lo antiguo en algún punto, y el modelo redibuja la imagen entera, así que compara esa unión y un margen alrededor del objeto con la foto de origen; una mancha blanda, repetida o arrastrada aparece primero ahí.
  • Todo lo que tocaba el objeto. Una correa, una sombra o un reflejo tienen que reconstruirse junto con él.
  • La lista de lo que se queda, punto por punto. La primera eliminación conservó el banco, el contenedor, los árboles, la cometa y el cielo; la segunda conservó a la mujer y al perro. Nombra cada elemento y luego búscalo.

Publica una eliminación cuando el relleno aguante a tamaño real y todos los elementos de la lista sigan en su sitio. Si un relleno parece una mancha, vuelve a ejecutar la misma frase con el material nombrado, por ejemplo "césped y adoquines".

Lo que no probamos

No probamos la entrada de máscaras, las escenas concurridas ni los objetos muy pequeños. Si tu foto tiene una multitud, una línea de vallas o una correa fina, planifica una segunda ejecución y mira ese borde a tamaño completo.

Una plantilla de instrucción

Elimina por completo [el objeto, con el detalle que lo distingue]. Rellena su lugar con [material] para que encaje con el entorno. Mantén [lo que debe quedarse] exactamente igual. Fotorrealista, sin texto, sin logos.

  • El objeto, con el detalle que lo distingue. "La cometa roja pequeña del cielo" supera a "la cometa", y le dice al modelo cuál es cuando en el encuadre hay varias.
  • El relleno, en materiales. "Césped y adoquines" da al modelo algo con lo que alinearse respecto al entorno; "quítalo" deja la elección en sus manos.
  • La lista de lo que se queda. Nombra lo que debe sobrevivir: el banco, el contenedor azul, los árboles, la cometa, el cielo.
  • El cierre de estilo. "Fotorrealista, sin texto, sin logos" mantiene una foto como foto.

Para cambiar la ropa de una persona sirve la misma forma, con la prenda nombrada como el objeto que cambia; la guía de probador virtual recorre ese caso.

Preguntas frecuentes

¿Se puede quitar a una persona de una foto con una API?

Sí, con una revisión del resultado. En la primera eliminación la mujer y su perro salieron del encuadre en un solo paso, y el sendero y el césped se reconstruyeron detrás.

¿El endpoint acepta una máscara?

La documentación de OmniaKey describe una imagen de origen y un prompt (consultada el 28 de octubre de 2026). No describe un campo de máscara y no hubo ninguna prueba con máscara. El objeto y su posición se nombran con palabras en lugar de pintar una región.

¿Cuánto duran los enlaces al resultado?

El enlace firmado dura aproximadamente una hora (documentación de OmniaKey, consultada el 28 de octubre de 2026), mientras que el archivo se conserva 24 horas. Descárgalo en cuanto la tarea termine bien.

¿Qué tamaño conviene pedir?

Indica size como un WIDTHxHEIGHT explícito, por ejemplo 1536x1024 para una foto horizontal, y lee las dimensiones reales en el PNG descargado. GPT Image siempre devuelve un archivo opaco, así que planifica cualquier recorte después de la descarga.

¿Puede una instrucción quitar dos objetos?

En la primera eliminación, una frase quitó juntos a una mujer y su perro. Otros pares quedaron sin probar.

Empieza por la página del modelo GPT-Image 2 para los parámetros, y consulta las tarifas actuales antes de planificar la siguiente eliminación.

Modelos de este artículo

eliminación de objetosGPT Image 2edición de imágenesinpaintingAPI

Artículos relacionados

Artículos recientes