rembg es una herramienta de eliminación de fondo de imágenes. Se puede utilizar como herramienta de línea de comandos, biblioteca de Python, servidor HTTP o contenedor Docker. Su propósito es sencillo: tomar una imagen como entrada y generar el primer plano con un canal alfa. Funciona bien para imágenes de productos, retratos, procesamiento de materiales y flujos de trabajo de imágenes automatizados.
La mejor parte es que puede ejecutarse localmente. Si no desea cargar imágenes de origen a un servicio de recorte en línea, necesita procesamiento por lotes o desea conectar la eliminación de fondo a scripts y sistemas comerciales, rembg es más fácil de automatizar que una herramienta web.
01 Instalación
La versión actual requiere Python >=3.11,<3.14. Elija el backend según su hardware:
|
|
Si necesita la CLI, agregue cli:
|
|
Para entornos NVIDIA CUDA, instale la versión GPU:
|
|
Para entornos AMD ROCm, primero instale onnxruntime-rocm siguiendo las instrucciones oficiales de ROCm, luego instale:
|
|
La mayoría de los problemas con la versión de GPU no están en rembg en sí, sino en si coinciden onnxruntime-gpu, CUDA, cuDNN y las versiones del controlador. Si la instalación falla, primero confirme el flujo de trabajo con la versión de la CPU y luego ocúpese del entorno de la GPU.
02 Subcomandos CLI
Después de instalar la CLI, puede usar rembg directamente en la terminal. Proporciona principalmente 4 subcomandos:
i: procesa un solo archivo.p: procesa una carpeta completa.s: inicia un servidor HTTP.b: procesa un flujo binario RGB de 24 píxeles, utilizado a menudo con FFmpeg.
Mostrar ayuda:
|
|
Procese una única imagen local:
|
|
Tubería en una imagen remota:
|
|
Especifique un modelo:
|
|
Devuelve sólo la máscara:
|
|
Habilitar estera alfa:
|
|
-a a veces puede producir cabello más natural, bordes borrosos y límites semitransparentes, pero es más lento y no mejora notablemente todas las imágenes.
03 Carpetas de procesamiento por lotes
El procesamiento por lotes es una de las partes más útiles de “rembg”. Coloque las imágenes de origen en un directorio y envíe los resultados a otro:
|
|
Esté atento a los cambios de directorio y procese automáticamente imágenes nuevas o modificadas:
|
|
Este modo funciona bien con scripts de descarga, limpieza de imágenes de productos y carpetas de materiales. Por ejemplo, suelte imágenes en “entrada” y deje que “rembg” genere archivos PNG transparentes en “salida”.
04 Utilizándolo como biblioteca de Python
Si desea integrarlo en su propio script, la forma más sencilla es “eliminar”:
|
|
También puedes procesar imágenes PIL directamente:
|
|
Para el procesamiento por lotes, reutilice una sesión para que el modelo no se inicialice nuevamente para cada imagen:
|
|
Si está creando un servicio de procesamiento de imágenes de larga duración, la reutilización de sesiones suele ser una mejor opción que llamar repetidamente a la CLI.
05 Iniciando un servidor HTTP
rembg también puede iniciar un servidor HTTP directamente:
|
|
Después del inicio, visite:
|
|
Eliminar el fondo de una URL:
|
|
Sube una imagen local:
|
|
Si solo necesita la API y no necesita la interfaz de usuario de Gradio, desactive la interfaz de usuario para reducir el uso inactivo de la CPU:
|
|
El modo servidor es adecuado para herramientas internas, flujos de automatización u otras aplicaciones. Pero no es un sistema completo de gestión de activos de imágenes. La autenticación, la limitación de velocidad, las colas y la limpieza de archivos aún deben gestionarse fuera de él.
06 Uso de Docker
La versión de CPU puede usar la imagen oficial directamente:
|
|
La aceleración CUDA requiere NVIDIA Container Toolkit en el host y, por lo general, requiere crear una imagen a partir del Dockerfile_nvidia_cuda_cudnn_gpu del proyecto:
|
|
Ejecutar ejemplo:
|
|
El archivo README oficial señala que la imagen de la GPU es mucho más grande que la imagen de la CPU y los archivos del modelo no están incluidos en la imagen. Para evitar descargar modelos repetidamente, monte el directorio del modelo:
|
|
07 Opciones de modelo
Cuando rembg usa un modelo por primera vez, lo descarga automáticamente a ~/.u2net/. Los modelos comunes incluyen:
u2net: un modelo de propósito general para casos comunes.u2netp: una versión ligera con velocidad y tamaño más amigables.u2net_human_seg: enfocado a la segmentación humana.u2net_cloth_seg: enfocado al análisis de ropa.silueta: similar au2net, pero más pequeña.isnet-general-use: un modelo más nuevo de propósito general.isnet-anime: enfocado a la segmentación de personajes de anime.birefnet-general: un modelo de imagen general utilizado en el ejemplo README.sam: puede trabajar con parámetros adicionales como puntos de aviso.
En la práctica, no elijas sólo por el nombre del modelo. Las imágenes de productos, los retratos, las imágenes de anime, los fondos complejos y los objetos transparentes tienen requisitos diferentes. Un enfoque más seguro es elegir un conjunto de imágenes representativo, ejecutar varios modelos, comparar bordes, áreas omitidas, eliminaciones falsas y velocidad, y luego decidir el modelo predeterminado.
Si desea utilizar un modelo .onnx personalizado, colóquelo en el directorio del modelo predeterminado ~/.u2net/ y configúrelo cuando sea necesario:
|
|
Esto puede evitar que rembg sobrescriba su archivo de modelo debido a la lógica de suma de comprobación.
08 Casos de uso adecuados
rembg se adapta bien a estas tareas:
- Generar por lotes imágenes de productos con fondo transparente.
- Extraiga primeros planos de retratos, fotografías de identificación e imágenes de materiales.
- Integre la eliminación de fondo en scripts de Python o servicios backend.
- Implementar una API de eliminación de fondo simple en una red interna.
- Utilice tuberías FFmpeg para procesar fotogramas de vídeo o secuencias de imágenes.
- Mantenga los materiales sensibles a la privacidad o protegidos por derechos de autor lejos de los servicios en línea de terceros.
Es menos adecuado para estos casos:
- Necesita bordes retocados a mano y materiales transparentes complejos.
- Cada imagen debe alcanzar una calidad de fotografía comercial estable.
- Quieres una herramienta de diseño en línea completa en lugar de solo eliminar el fondo.
- No desea mantener un entorno Python o Docker.
- Su entorno de controlador de GPU, CUDA o ROCm ya está desordenado y el proyecto debe iniciarse rápidamente.
09 Consejos de uso
Si solo procesa imágenes ocasionalmente, la versión de la CPU es suficiente:
|
|
Para procesar por lotes miles de imágenes, considere:
- Reutilizar una sesión de Python.
- Arreglando el directorio del modelo para evitar descargas repetidas.
- Uso de un SSD para entradas, salidas y archivos de modelo.
- Probar primero la calidad del modelo en un lote pequeño.
- Decidir si la aceleración de la GPU vale la pena después.
El valor de la GPU es principalmente el rendimiento por lotes. Para el procesamiento ocasional de una sola imagen, el costo de configuración puede ser mayor que el tiempo ahorrado. Especialmente en Windows, cuando las versiones CUDA, cuDNN y onnxruntime-gpu no coinciden, la versión de CPU puede ser la opción más práctica.
10 toma rápida
rembg es simple, de código abierto y flexible: puede ejecutarse como una CLI, llamarse desde Python, exponer puntos finales HTTP o empaquetarse con Docker. Es un buen componente base para la eliminación automática del fondo local.
Pero no es un borrador mágico. Los fondos complejos, los bordes finos del sujeto, los materiales transparentes, la preservación de las sombras y los retoques de calidad comercial aún pueden requerir trabajo manual o un flujo de trabajo más especializado. Al implementar la automatización por lotes, es mejor realizar una revisión humana o un paso de recuperación de muestras fallidas.
Si el objetivo es eliminar fondos de un lote de imágenes rápidamente manteniendo el proceso local, vale la pena mantener “rembg” en la caja de herramientas.
Enlaces relacionados
- Proyecto GitHub: https://github.com/danielgatis/rembg
- LÉAME: https://github.com/danielgatis/rembg/blob/main/README.md
- Lanzamientos: https://github.com/danielgatis/rembg/releases
- Matriz de instalación de ONNX Runtime: https://onnxruntime.ai/