OpenAI Images - edición de imágenes - Python - creadores
4 min lectura

Cómo editar solo una zona de una foto con Images 2.6 y markup

Guía para dibujar un PNG transparente, enviarlo como markup a Images 2.6 y revisar que el resto de la foto se conserve.

Cómo editar solo una zona de una foto con Images 2.6 y markup

Una foto de producto está bien salvo por el color de una taza. Si pides «hazla de otro color», el modelo quizá mueva la sombra, cambie el fondo o redibuje el logo. Images 2.6 añade una forma más precisa de indicar dónde quieres actuar: enviar la foto original y, por separado, un PNG transparente con una marca sobre la zona. Esta guía se centra en esa tarea; para decidir entre Flare y Sunburst en un flujo completo, consulta nuestra evaluación inicial de Images 2.6.

Qué es markup y qué no garantiza

La documentación oficial indica que POST /v1/images/edits acepta una capa de anotaciones markup con modelos GPT Image 2.5 y 2.6 compatibles. La capa debe ser un PNG transparente separado, con el mismo ancho y alto que la primera imagen tras orientar ambas. Puedes dibujar círculos o indicaciones; el prompt explica qué modificar y qué preservar. No aplanes el círculo sobre la foto original. El resultado sigue necesitando revisión: la marca guía la edición, no promete que cada píxel exterior quede idéntico.

Diagrama en español que separa foto original, PNG transparente de markup y resultado
La foto y el círculo viajan como archivos diferentes; revisa también el área no marcada.

1. Crea la capa sin tocar la foto

Instala pillow y parte de una foto propia llamada product.webp. Cambia las coordenadas del rectángulo por las de tu objeto: (x0, y0, x1, y1). Este script solo crea el overlay; no consume la API.

from PIL import Image, ImageDraw

source = Image.open("product.webp")
width, height = source.size
overlay = Image.new("RGBA", (width, height), (0, 0, 0, 0))
draw = ImageDraw.Draw(overlay)
draw.ellipse((620, 180, 1050, 690), outline=(255, 40, 40, 255), width=18)
overlay.save("markup.png")
print("markup.png", overlay.size, overlay.getpixel((0, 0)))

Abre markup.png sobre una cuadrícula de transparencia y comprueba que el círculo cae sobre el objeto correcto. La salida de getpixel((0, 0)) debe tener alfa cero si esa esquina no está marcada. Si redimensionas la foto después de crear la capa, vuelve a generar el PNG. La guía limita tanto la primera imagen como la anotación a 16.777.216 píxeles, y el markup a 50 MB.

2. Envía imagen y anotación por separado

Instala el SDK openai, configura OPENAI_API_KEY en el entorno y ejecuta el bloque siguiente. El ejemplo sigue el formato de archivos de la guía oficial; cambia el color solicitado y los detalles que quieres conservar. No pegues tu clave dentro del script.

import base64
from pathlib import Path
from openai import OpenAI

client = OpenAI()
with open("product.webp", "rb") as photo, open("markup.png", "rb") as marks:
    result = client.images.edit(
        model="gpt-image-2.6-flare",
        image=("product.webp", photo, "image/webp"),
        markup=("markup.png", marks, "image/png"),
        quality="medium",
        complexity="low",
        prompt=(
            "Change only the mug inside the red circle to terracotta ceramic. "
            "Preserve its shape, the table, lighting, shadows and background. "
            "Remove the red circle from the final image."
        ),
    )
Path("edited.png").write_bytes(base64.b64decode(result.data[0].b64_json))

Empieza con complexity="low" para una edición acotada. La documentación separa complejidad —cuánto planifica— de calidad de render; medium aquí es la calidad. Si la escena tiene relaciones difíciles, compara complejidad media o alta con el mismo prompt y mide tiempo y cambios no pedidos. El costo final depende de tokens de entrada y salida; inspecciona usage y la calculadora oficial antes de automatizar lotes.

3. Revisa como editor, no como espectador

Compara original y resultado a tamaño completo. Mira bordes del círculo, fondo, sombras, texto de etiquetas y rasgos de marca. Si el producto cambió de forma, rechaza el resultado aunque sea bonito. Prueba una segunda variante con el mismo input y registra cuántas correcciones necesitaste hasta una imagen publicable. No uses markup junto con mask o prompt_rewriter en la misma solicitud: la guía lo prohíbe.

Verificación realizada: ejecutamos localmente la creación del PNG transparente y comprobamos tamaños y alfa; los fragmentos Python se revisaron por sintaxis. No hicimos la llamada pagada a OpenAI ni afirmamos que edited.png ya exista para tu foto. Esa última parte requiere tu archivo, clave, costo y revisión visual.

Recibe lo nuevo en tu correo

Workshops gratis, herramientas y novedades de IA aplicadas a negocio, sin humo.

🎓 Workshops en vivo🛠️ Herramientas nuevas⚡ Novedades de IA

Sin spam. Te das de baja cuando quieras.

Comentarios

Aún no hay comentarios. Sé el primero.

Deja un comentario