Saltar al contenido principal

Fondo transparente con IA: prueba con vidrio, pelo y bordes finos

En una prueba real, el PNG transparente nativo de GPT Image 2.5 conservó el pelo, pero ningún recorte dio vidrio creíble. Qué ruta usar según el sujeto.

LaoZhang AI TeamPublicado12 min de lectura
En esta página
Resultados de la prueba de fondo transparente con IA: el PNG nativo dejó el pelo sin halo y conservó los filamentos finos, mientras que la copa de vidrio quedó turbia o gris con las dos rutas

Si el sujeto es pelo suelto o algo esponjoso, pide el PNG con fondo transparente directamente al generar: en la prueba fue la ruta que mejor conservó los mechones al aire y los filamentos finos. Si ya tienes la foto, recórtala con un modelo de la familia BRIA RMBG-2.0 o BiRefNet y no con u2net, y revisa el resultado sobre negro y sobre un color vivo. Con vidrio, ninguna de las dos rutas dio una copa creíble sobre un fondo nuevo: la transparencia nativa dejó una película turbia y todos los recortes conservaron el gris del fondo dentro de la copa. Para vidrio, lo práctico es generar o fotografiar sobre el color de fondo final, o componer la transparencia a mano en un editor.

Qué se ejecutó, a 19 de octubre de 2026: 6 generaciones con GPT Image 2.5 Sunburst (tres sujetos, cada uno con fondo transparente nativo y sobre gris liso) y el recorte local de las tres imágenes grises con rembg 2.0.85 y cinco configuraciones de máscara, todo medido píxel a píxel en el canal alfa. Qué no se ejecutó: la API directa de OpenAI, ChatGPT, otros modelos de imagen, quitafondos web de pago como remove.bg, Photoroom, Canva o Adobe Express, ni Photoshop. Hubo una sola generación por sujeto y ruta, así que los resultados describen esos archivos concretos, no una tasa de acierto.

Qué se probó: 6 generaciones, 15 recortes y una medición del canal alfa

Los tres sujetos se eligieron porque fallan de forma distinta: una copa de vino vacía, el retrato de una mujer con el pelo rizado y muchos mechones al viento, y un diente de león con cientos de semillas de filamentos finos.

La generación pasó por gpt-image-2.5-sunburst-vip de laozhang.ai, un acceso por llamada a GPT Image 2.5 Sunburst que su documentación de GPT Image 2.5 en laozhang.ai lista a USD 0,03 por llamada, sin variar con tamaño ni calidad; no se usó la API de OpenAI directamente. Las 6 llamadas, en 1024×1024 y calidad alta, devolvieron HTTP 200 en 36–49 segundos sin reintentos. A precio de lista, 6 × USD 0,03 = USD 0,18. Si quieres comparar ese coste con el precio oficial por tokens, está desglosado en Precio de GPT Image 2.5 Sunburst: por imagen, llamada y mes.

Aviso: laozhang.ai es un servicio propio. Sus precios son nuestra tarifa, no una comparación independiente.

Cada sujeto se pidió de dos maneras con el mismo texto de partida:

RutaQué se añadió al promptParámetros
Transparencia nativa«Transparent background. Isolated subject. No backdrop, no scenery, no checkerboard, no cast shadow.»background: "transparent", output_format: "png"
Fondo liso y recorteFondo de estudio gris medio uniforme (#808080), sin sombrabackground: "opaque", luego rembg

La respuesta de la API confirmó "background": "transparent" y "output_format": "png" en las tres nativas. Las dos rutas son generaciones independientes, así que la mujer y la copa no son idénticas píxel a píxel entre una ruta y otra: lo que se compara es la ruta con el mismo prompt.

Las tres imágenes grises se recortaron en local, solo con CPU, con cinco configuraciones de rembg: u2net, u2net con alpha matting, BiRefNet-general-lite, BRIA RMBG-2.0 (el modelo por defecto de rembg) y BRIA con decontaminate. Después se midió en cada archivo qué parte del encuadre es totalmente transparente (alfa 0), semitransparente (alfa 1–254) y totalmente opaca (alfa 255), y se compuso cada resultado sobre negro, blanco y rojo para mirarlo.

Lo que quedó fuera: gpt-image-2.5-flare, gpt-image-2 (cuya transparencia OpenAI marca como vista previa), ChatGPT, Nano Banana y Gemini, Midjourney, los quitafondos web de pago, Seleccionar y enmascarar de Photoshop y los modelos vitmatte, BiRefNet completo e isnet de rembg. Tampoco se probó la edición con quitado de fondo que la documentación de laozhang.ai describe para estos modelos.

Resultados por sujeto: transparencia nativa frente al mejor recorte

SujetoTransparencia nativaMejor recorte localLo que se ve al ponerlo sobre rojo
Copa de vidrio78,3 % transparente, 21,7 % semitransparente; cáliz con alfa media 97,5Ninguno: cáliz con alfa media 254,2–254,9 en los cincoNativo: se ve el rojo, pero con un velo rosado y manchado. Recortes: copa gris maciza
Pelo con mechones22,3 % transparente, 77,7 % semitransparenteBRIA RMBG-2.0: mechones conservados, borde gris tenue en los más finosNativo: sin halo, mechones al aire intactos
Diente de león37,7 % transparente, 62,3 % semitransparenteu2net: centro conservado, halo gris alrededor de toda la cabezaNativo: filamentos y centro marrón conservados, ligero brillo blanco sobre negro

En los tres sujetos, la transparencia nativa fue la mejor de esta prueba. En pelo y diente de león, por bastante. En la copa, ninguna ruta da un resultado que entregarías sin retocar.

Por qué el vidrio queda turbio o gris y el pelo no

Pelo y vidrio parecen el mismo problema, «bordes difíciles», pero el canal alfa lo resuelve de forma distinta en cada caso.

En el pelo, el problema está en el borde. Un píxel en el que un mechón tapa solo la mitad del fondo tiene que quedar semitransparente, con el color del pelo y no con el del fondo. Si la máscara lo marca como opaco, el mechón se engorda o arrastra un trozo de fondo; si lo marca como transparente, el mechón desaparece. Si acierta la cobertura pero deja el color mezclado, aparece el borde gris o blanco, el halo. Por eso el 77,7 % de píxeles semitransparentes del retrato nativo es una buena señal: casi todo lo que rodea la cabeza es mezcla de pelo y aire.

En el vidrio, el problema está dentro del objeto. Lo que ves a través de una copa es el fondo, deformado por la refracción. Cuando se fotografía o se genera sobre gris, ese gris forma parte de los píxeles de la copa, y un recorte solo decide cuánto de cada píxel pertenece al sujeto: no puede saber qué parte del color es vidrio y qué parte es fondo visto a través. Las cinco configuraciones de rembg trataron la copa como un objeto sólido, con una alfa media de 254,2–254,9 en el cáliz, de modo que al ponerla sobre rojo se ve una copa gris. Ni el alpha matting (solo 0,1 % de píxeles semitransparentes en el cáliz) ni decontaminate lo cambiaron.

La transparencia nativa sí deja pasar el fondo: el cáliz quedó con alfa media 97,5 y todos sus píxeles semitransparentes. El brillo del borde y del pie se ve bien. Pero el modelo dejó dentro del cáliz una película blanquecina y moteada que sobre negro parece una mancha turbia y sobre rojo, un lavado rosa. Es un vidrio que deja ver el fondo, pero no uno limpio.

Comparación entre pelo y vidrio: en el pelo el fallo está en los píxeles del borde y el retrato nativo tuvo un 77,7 % semitransparente; en el vidrio la alfa media del cáliz fue 97,5 en el PNG nativo y 254,2–254,9 en los cinco recortes

Pelo con mechones al aire: qué conservó cada ruta

El retrato nativo conservó los mechones sueltos sin halo sobre negro, blanco y rojo. Fue el mejor resultado de pelo de toda la prueba.

En el recorte, el modelo marcó más diferencia que cualquier ajuste:

  • u2net: halo suave y borroso, mechones sueltos emborronados o perdidos y manchas grises junto a la cabeza.
  • u2net con alpha matting: parecido, con un borde más duro; el 54,7 % del encuadre queda totalmente opaco.
  • BiRefNet-general-lite: conserva los mechones sueltos, pero granulados y con fragmentos en bloques.
  • BRIA RMBG-2.0: conserva los mechones; deja un borde gris tenue en los más finos.
  • BRIA con decontaminate: la misma alfa que BRIA, píxel por píxel, con el borde gris menos visible.

Esa última línea explica qué hace cada opción. decontaminate cambia el color de los píxeles del borde, no cuánto cubren: quita parte del gris que se coló en el mechón, pero no recupera mechones que la máscara ya había perdido. El alpha matting hace lo contrario: según el repositorio de rembg en GitHub, sirve para cuando la forma de la máscara está mal, no solo su color, y es mucho más lento. En esta prueba, sobre u2net no recuperó ni pelo ni vidrio.

Diente de león y otros bordes finos: halo o agujeros

Con filamentos muy finos, los recortes fallaron de dos formas opuestas. u2net, con y sin alpha matting, conservó el centro pero dejó un halo gris alrededor de toda la cabeza de semillas. BiRefNet-general-lite abrió agujeros en el centro, y BRIA, con y sin decontaminate, eliminó buena parte del receptáculo marrón del centro y dejó un patrón de huecos en bloques.

La versión nativa conservó los filamentos y el centro marrón, con un ligero brillo blanco alrededor que solo se nota sobre negro. Si el diseño va sobre fondo oscuro, revísalo ahí antes de darlo por bueno.

Ningún píxel opaco en el PNG nativo: alfa máxima 254

Los tres archivos nativos comparten una rareza: la alfa máxima es 254 y el percentil 99 es 253. Ningún píxel llega a 255, así que el sujeto entero deja pasar alrededor de un 1 % del fondo. Además, una neblina casi invisible de alfa 1–3 cubre el 4,4 % del encuadre en el retrato y el 1,0 % en la copa.

Sobre una sola capa no se nota. Importa en dos casos: herramientas o comprobaciones que buscan píxeles con alfa exactamente 255 para decidir qué es opaco, y composiciones donde apilas varias copias, porque la neblina se suma. Esto último es una deducción: no se probaron herramientas de destino.

La corrección es sencilla: subir a 255 toda alfa por encima de 250 y bajar a 0 toda alfa por debajo de 4. Aplicada al retrato nativo, el 58,5 % del encuadre pasa a ser totalmente opaco, la neblina baja a 0,0 % y la alfa máxima a 255. El script de la sección siguiente lo hace con --clean.

Cómo comprobar tu PNG transparente sobre fondo negro y de color

La vista previa de un editor o del navegador puede engañar: un borde gris no se ve sobre blanco y una neblina de alfa 2 no se ve en ningún sitio. Este script de Python mide el canal alfa y genera una lámina con la imagen sobre negro, blanco, rojo y gris. Es el mismo que se ejecutó en la prueba con Python 3.12, Pillow 12 y numpy 2.5, sobre dos PNG con alfa y uno sin ella.

python
"""check_edges.py — inspect a transparent PNG/WebP before you use it.

    python check_edges.py image.png            # report + preview sheet
    python check_edges.py image.png --clean    # also write image.clean.png

Needs: pip install pillow numpy
"""
import sys

import numpy as np
from PIL import Image

path = sys.argv[1]
im = Image.open(path)
if im.mode not in ("RGBA", "LA") and "transparency" not in im.info:
    sys.exit(f"{path}: mode {im.mode}, no alpha channel. Any checkerboard you see is painted pixels.")

rgba = im.convert("RGBA")
a = np.asarray(rgba)[..., 3]
total = a.size
print(f"{path}: {im.size[0]}x{im.size[1]}, mode {im.mode}")
print(f"  fully transparent (alpha 0):     {100 * (a == 0).sum() / total:5.1f}%")
print(f"  fully opaque (alpha 255):        {100 * (a == 255).sum() / total:5.1f}%")
print(f"  partly transparent (1-254):      {100 * ((a > 0) & (a < 255)).sum() / total:5.1f}%")
print(f"  near-invisible haze (alpha 1-3): {100 * ((a > 0) & (a < 4)).sum() / total:5.1f}%")
print(f"  highest alpha in the file:       {a.max()}")
if a.max() < 255:
    print("  note: no pixel is fully opaque; the whole subject lets a little of the background through")

# Preview: the same image on black, white, red and a mid grey
w, h = rgba.size
sheet = Image.new("RGB", (w * 4, h))
for i, color in enumerate([(0, 0, 0), (255, 255, 255), (200, 30, 40), (128, 128, 128)]):
    bg = Image.new("RGBA", (w, h), color + (255,))
    bg.alpha_composite(rgba)
    sheet.paste(bg.convert("RGB"), (i * w, 0))
out = path.rsplit(".", 1)[0] + ".preview.png"
sheet.save(out)
print(f"  preview on black / white / red / grey: {out}")

if "--clean" in sys.argv:
    arr = np.asarray(rgba).copy()
    alpha = arr[..., 3]
    alpha[alpha < 4] = 0      # drop the invisible haze
    alpha[alpha > 250] = 255  # make the solid core really solid
    clean = path.rsplit(".", 1)[0] + ".clean.png"
    Image.fromarray(arr, "RGBA").save(clean)
    print(f"  cleaned copy: {clean}")

Instala las dependencias con pip install pillow numpy y ejecuta python check_edges.py copa.png; añade --clean si quieres la copia corregida. Cómo leer la salida:

  • Termina con «no alpha channel»: el archivo no tiene canal alfa. Si ves cuadros grises y blancos, están pintados. La causa y la corrección están en Fondo transparente en GPT Image: cómo quitar los cuadros grises.
  • «fully opaque» en 0,0 % y alfa máxima 254: es la rareza del PNG nativo descrita arriba; usa --clean.
  • Mucho semitransparente en pelo o pelusa: es lo esperable. Lo que decide es la lámina: busca borde gris sobre negro y halo claro sobre rojo.
  • Vidrio con color del fondo dentro: ningún ajuste de máscara lo arregla; vuelve a generar o fotografiar sobre el fondo final.

Qué ruta usar según el sujeto

Esta regla es una deducción a partir de una sola generación por sujeto y ruta, no una recomendación de OpenAI ni de los autores de rembg:

SujetoRuta que funcionó mejor en la pruebaQué revisar
Pelo o pelaje, imagen nuevaGenerar con background: "transparent"Neblina y alfa máxima 254 (--clean)
Pelo en una foto que ya tienesRecorte con BRIA RMBG-2.0 o BiRefNet, no u2netBorde gris en mechones finos; prueba decontaminate
Vidrio, cristal y objetos translúcidosNinguna de las probadas; generar o fotografiar sobre el color final, o componer en un editorColor del fondo dentro del objeto y velo turbio
Filamentos finos (diente de león, plumas, pelusa)Generar con fondo transparenteBrillo blanco sobre negro; agujeros en el centro si recortas

Guía por casos: pelo en imagen nueva y filamentos finos con fondo transparente nativo, pelo en foto existente con recorte BRIA RMBG-2.0 o BiRefNet, y vidrio sin ruta probada que funcionara, con qué revisar en cada caso

Generar la copa directamente sobre el fondo definitivo no se probó. Tiene sentido porque así el color que se ve a través del vidrio ya es el correcto, pero pierdes la posibilidad de reutilizar la imagen sobre otros fondos.

Si generas por API, la guía de prompts de imagen de OpenAI pide background="transparent" con PNG o WebP, no añadir fondo, damero, escenario ni sombra en el prompt, y comprobar el canal alfa del archivo decodificado, incluidos el pelo y el vidrio. Según la guía de generación de imágenes de OpenAI, GPT Image 2.5 Sunburst y Flare admiten fondo transparente, y en gpt-image-2 sigue en vista previa. Si después editas la imagen, la guía de prompts recomienda repetir que se conserve el fondo transparente.

rembg en local: gratis, pero el modelo BRIA no es para uso comercial

rembg se instala con pip install "rembg[cpu]" (añade el extra cli si quieres usarlo desde la línea de comandos) y, según su README, necesita Python 3.11–3.13. En la prueba se llamó desde Python; esta versión abreviada del script de recorte no se ejecutó por separado:

python
from PIL import Image
from rembg import new_session, remove

session = new_session("bria-rmbg")
out = remove(Image.open("copa-gris.png"), session=session, decontaminate=True)
out.save("copa-recorte.png")

El código de rembg tiene licencia MIT, pero los pesos de cada modelo llevan la suya. El modelo por defecto, BRIA RMBG-2.0, se publica con licencia CC BY-NC 4.0 para uso no comercial; según la página de BRIA RMBG-2.0 en Hugging Face, el uso comercial requiere un acuerdo con BRIA. Si los recortes son fotos de producto para una tienda, eso cuenta. La página de pesos de BiRefNet en Hugging Face indica licencia MIT; la de u2net no se revisó. Esto no es asesoramiento legal: lee la licencia del modelo que vayas a usar.

Tiempo de CPU por imagen de 1024×1024 en un MacBook con Apple silicon, y descarga del modelo la primera vez:

ModeloSegundos por imagenDescarga inicial
u2net0,6–1,5176 MB
u2net con alpha matting1,3–2,1(usa u2net)
BiRefNet-general-lite16–91224 MB
BRIA RMBG-2.075–1461,0 GB
BRIA con decontaminate78–130(usa BRIA)

Con GPU sería más rápido. El modelo que mejor trató el pelo es también el más lento y el único con restricción comercial, así que para un lote de fotos de producto conviene decidir la licencia antes que el modelo.

Preguntas frecuentes sobre imágenes con fondo transparente

¿Cómo se llama el formato para que el fondo sea transparente?

PNG, y también WebP: los dos guardan un canal alfa, el dato que indica en cada píxel cuánto se ve el fondo. Son los formatos que OpenAI pide para salidas transparentes. JPG no tiene canal alfa, así que un recorte guardado como JPG vuelve a tener fondo. La elección de formato según el uso está en Cómo hacer un PNG con fondo transparente y comprobar que lo es.

¿ChatGPT genera imágenes con fondo transparente?

Sí, pero en ChatGPT solo puedes pedirlo en el texto del mensaje, sin el parámetro background de la API, y a veces devuelve un damero pintado en lugar de transparencia real. ChatGPT no formó parte de esta prueba. Comprueba el PNG descargado con el script de arriba o con la prueba del fondo de color.

¿Hay una forma gratis de quitar el fondo al pelo?

rembg en local es gratis y, con BRIA RMBG-2.0, conservó los mechones en la prueba. Pero esos pesos son de uso no comercial; para trabajo comercial necesitas el acuerdo con BRIA u otro modelo con licencia compatible, como BiRefNet, que en esta prueba dejó los mechones más granulados.

¿Por qué mi PNG transparente tiene un borde blanco o gris?

Porque los píxeles del borde mezclan el color del sujeto con el del fondo original. En el pelo se corrige en parte con decontaminate de rembg, que cambia el color del borde sin tocar la máscara. En el vidrio no basta, porque el fondo está dentro del objeto y no solo en el borde.

Fuentes5

Páginas externas que cita esta guía, en el orden en que aparecen. Última actualización: 19 oct 2026.

  1. 1.repositorio de rembg en GitHubgithub.com/danielgatis/rembg
  2. 2.guía de prompts de imagen de OpenAIdevelopers.openai.com/api/docs/guides/image-prompting
  3. 3.guía de generación de imágenes de OpenAIdevelopers.openai.com/api/docs/guides/image-generation
  4. 4.página de BRIA RMBG-2.0 en Hugging Facehuggingface.co/briaai/RMBG-2.0
  5. 5.página de pesos de BiRefNet en Hugging Facehuggingface.co/ZhengPeng7/BiRefNet