Un modelo, una decisión, y un borde deliberadamente suave
Detrás del botón está MODNet, una red de matting de imagen de código abierto, convertida para ejecutarse dentro del navegador a través de la biblioteca transformers.js y su runtime de ONNX. Es el modelo por defecto de esa propia biblioteca para quitar fondos, no un sustituto improvisado. Todo ocurre en tu dispositivo: el archivo del modelo se descarga por red la primera vez que usas la herramienta, pero la foto en sí no se envía nunca a ninguna parte.
El matting es un trabajo más estrecho de lo que sugiere el nombre “eliminar el fondo”. El modelo estima, para cada píxel, qué parte de ese píxel pertenece al sujeto en primer plano, y esa estimación se escribe en el canal alfa de un PNG. Como es un valor continuo y no un sí o un no, los bordes vuelven suaves y con antialias en lugar de dentados, que es lo que hace que un recorte parezca creíble una vez se posa sobre un fondo nuevo. También significa que el modelo no tiene ninguna noción de qué es tu sujeto. Ha aprendido a qué suelen parecerse los sujetos en primer plano, y por eso un sujeto claro funciona bien y una escena con multitud es una moneda al aire.
La primera pasada paga la descarga del modelo
En la página no viene nada empaquetado. La primera vez que pulsas el botón se descargan el runtime y una copia cuantizada de los pesos del modelo, algo más de seis megabytes, desde el CDN de la propia biblioteca. Esa descarga es la razón de que la primera foto se sienta lenta y el resto no, porque la cadena se construye una vez y se reutiliza para todas las fotos posteriores de la misma visita. Una conexión lenta empeora bastante esa primera pasada, y la herramienta sí necesita acceso a la red para esa descarga inicial, aunque tu foto no viaje nunca.
Darle fotos y recuperar PNGs
- Suelta fotos JPG, PNG o WebP en la caja, o pulsa Elegir archivos. Un lote entero está bien, y cualquier cosa con otra extensión se rechaza con un mensaje que enumera lo que se acepta.
- Pulsa el botón de quitar el fondo. En una primera visita, el modelo se descarga antes de analizar ningún píxel.
- Observa la barra de progreso, que sigue el lote en conjunto y no cada foto por separado.
- Descarga cada resultado. Los archivos se nombran como el original con
-no-bg.pngal final, un enlace por foto.
En esta página no hay ningún panel de opciones, porque no hay nada que ajustar: ni umbral, ni suavizado de bordes, ni elección de formato de salida.
Las fotos que resuelve bien, y las que no
Un solo sujeto, razonablemente separado de lo que tenga detrás, es el caso para el que se entrena este tipo de modelo. Retratos, un producto sobre una mesa, una mascota, un objeto sobre una superficie lisa: eso vuelve limpio.
Los fallos son predecibles y no aleatorios. El pelo suelto fino y el pelaje producen un borde blando y a veces con calvas. El cristal, el humo y cualquier cosa semitransparente confunden a un modelo que tiene que comprometerse con un valor alfa. Un sujeto del mismo color y brillo que la pared de detrás pierde su contorno. Varias personas superpuestas dejan al modelo adivinando cuál cuenta como el sujeto. Y un movido difumina justo el borde que está buscando.
Aquí no hay pincel ni goma para reparar un borde malo, así que el movimiento práctico cuando un recorte sale mal es otra foto de la misma cosa, a ser posible con más separación entre sujeto y fondo, en lugar de otra pasada sobre el mismo archivo.
El PNG transparente pesa más que el JPG del que partiste
La transparencia es la razón de que el formato de salida sea fijo. Esta página escribe PNG, y un JPG no puede llevar canal alfa en absoluto, así que tendría que rellenar la zona eliminada con un color plano, lo que echa por tierra todo el ejercicio.
El PNG es además sin pérdida, así que un sujeto fotográfico que llegó como un JPG muy comprimido suele salir como un archivo bastante más grande. El panel final lo deja claro, imprimiendo el tamaño de entrada, el de salida y un porcentaje, y en esta herramienta ese porcentaje normalmente indica que ha crecido. Eso es lo esperado, no un fallo.
A dónde va normalmente un recorte
Si el destino es un sticker de chat, el creador de stickers usa este mismo modelo de eliminación de fondo y después ajusta el recorte al lienzo de 512 por 512 que esperan WhatsApp y Telegram, con un contorno troquelado opcional, lo que te ahorra el trabajo de dimensionarlo. Para un avatar redondo, recortar la imagen en círculo escribe siempre PNG, así que la transparencia de un recorte sobrevive al recorte en lugar de aplanarse sobre blanco.