Skip to content

dvchinx/Easy-Background

Repository files navigation

Easy Background

Python License AI Status

GitHub stars GitHub forks GitHub issues

🎨 Transformación Inteligente de Fondos con IA

Convierte cualquier imagen a fondo blanco o PNG transparente
Usando técnicas avanzadas de segmentación por Inteligencia Artificial


🚀 Características Principales

🎯 IA Avanzada 🎨 Fondo Perfecto 🔍 PNG Transparente Procesamiento Rápido
Detección automática de objetos con modelos preentrenados Fondo blanco puro RGB(255,255,255) Imágenes PNG con transparencia total Soporte GPU y procesamiento por lotes

Proyecto Open Source de Python que permite cambiar el fondo de cualquier imagen a blanco RGB(255,255,255) o crear imágenes PNG con fondo transparente, manteniendo automáticamente el objeto principal mediante técnicas de segmentación por IA.

✨ Características

  • 🎯 Detección automática de objetos: Usa modelos preentrenados para identificar el objeto principal
  • 🎨 Fondo blanco perfecto: Convierte cualquier fondo a blanco puro RGB(255,255,255)
  • 🔍 PNG transparente: Opción para crear imágenes PNG sin fondo (transparente)
  • 🚀 Fácil de usar: Interfaz de línea de comandos simple
  • 📁 Procesamiento por lotes: Procesa múltiples imágenes a la vez
  • 🔧 Personalizable: Ajusta parámetros de segmentación según tus necesidades

Ejemplos

Resultados de Antes y Después

Ejemplo 1: Personaje

Antes Después (Fondo Blanco) Después (Transparente)
Imagen Original Fondo Blanco PNG Transparente
Imagen original con fondo colorido Mismo personaje con fondo blanco puro Solo el objeto, fondo transparente

Comando utilizado:

# Crear JPG con Fondo Blanco
python main.py examples/character.png -o examples/character_new.jpg

# Crear PNG transparente
python main.py examples/character.png -o examples/character_transparent.png --output-format transparent-png

💡 Nota:

  • Fondo blanco: Todas las imágenes de salida mantienen el objeto principal intacto mientras el fondo se convierte a blanco puro RGB(255,255,255).

  • PNG transparente: El fondo se remueve completamente, creando un PNG con canal alfa para transparencia perfecta.

📦 Instalación

Requirements Platform Dependencies

🔧 Instalación Automática

# 1. Clonar el repositorio
git clone https://github.com/dvchinx/Easy-Background.git
cd Easy-Background

# 2. Ejecutar instalador automático
# Windows
install.bat

# Linux/macOS
chmod +x install.sh && ./install.sh

⚙️ Instalación Manual

# 1. Crear entorno virtual (recomendado)
python -m venv venv
source venv/bin/activate  # Linux/macOS
# o
venv\Scripts\activate     # Windows

# 2. Instalar dependencias
pip install -r requirements.txt

# 3. Instalar en modo desarrollo
pip install -e .

✅ ¡Listo para usar! | 🧪 Ejecutar tests: pytest tests/ | 📖 Ver ejemplos: python main.py models

🎮 Uso

CLI API Batch

💻 Línea de Comandos

🎨 Fondo Blanco 🔍 PNG Transparente 📁 Procesamiento por Lotes
--output-format white-bg --output-format transparent-png Procesa carpetas completas
# 🎨 Procesar imagen con fondo blanco
python main.py input.jpg -o output.jpg

# 🔍 Crear PNG transparente (sin fondo)
python main.py input.jpg -o output.png --output-format transparent-png

# 📁 Procesar múltiples imágenes
python main.py *.jpg -o output_folder/

# ⚡ Usar modelo rápido con redimensionado
python main.py input.jpg -o output.jpg --model u2netp --resize 1024

# 🔄 Procesamiento en lote con PNGs transparentes
python main.py fotos/ -o resultados/ --output-format transparent-png

Usar como módulo de Python

from src.background_remover import BackgroundRemover

# Crear el generador
generator = BackgroundRemover()

# Procesar una imagen
result = generator.process_image("input.jpg")
result.save("output.jpg")

# Procesar desde array numpy
import cv2
image = cv2.imread("input.jpg")
result = generator.process_array(image)

🤖 Modelos de IA Disponibles

Models Performance Accuracy

Modelo Velocidad Calidad Uso Recomendado Comando
🚀 u2netp ⚡⚡⚡ ⭐⭐⭐ Procesamiento rápido --model u2netp
🎯 u2net ⚡⚡ ⭐⭐⭐⭐ Uso general --model u2net
👤 u2net_human_seg ⚡⚡ ⭐⭐⭐⭐ Personas y retratos --model u2net_human_seg
🎨 silueta ⚡⚡ ⭐⭐⭐ Siluetas y contornos --model silueta
💎 isnet-general-use ⭐⭐⭐⭐⭐ Máxima calidad --model isnet-general-use
# Ver todos los modelos disponibles
python main.py models

Estructura del proyecto

Easy-Background/
├── src/
│   ├── __init__.py
│   ├── background_remover.py    # Módulo principal
│   └── utils.py                 # Utilidades
├── examples/                    # Imágenes de ejemplo
├── tests/                       # Tests unitarios
├── main.py                      # Script CLI
├── requirements.txt             # Dependencias
└── README.md                    # Este archivo

📊 Dependencias Principales

rembg Pillow OpenCV NumPy

  • 🧠 rembg: Segmentación automática de fondo con IA
  • 🖼️ Pillow: Manipulación y procesamiento de imágenes
  • 📷 OpenCV: Procesamiento avanzado de computer vision
  • 🔢 NumPy: Operaciones matriciales de alto rendimiento

🤝 Contribuir

Contributors PRs Issues

¡Las contribuciones son bienvenidas! Por favor:

  1. 🍴 Fork el proyecto
  2. 🌿 Crea una rama para tu feature (git checkout -b feature/nueva-funcionalidad)
  3. 💾 Commit tus cambios (git commit -am 'Agrega nueva funcionalidad')
  4. 📤 Push a la rama (git push origin feature/nueva-funcionalidad)
  5. 📋 Abre un Pull Request

📜 Licencia

License

Este proyecto está bajo la Licencia MIT. Ver el archivo LICENSE para más detalles.

🙏 Créditos y Agradecimientos

rembg AI

  • 🚀 Utiliza la librería rembg para la segmentación de fondo
  • 🧠 Modelos de IA entrenados por la comunidad open source
  • 💡 Inspirado en la necesidad de herramientas de edición de imágenes accesibles

⭐ Si este proyecto te fue útil, ¡dale una estrella!

GitHub stars

🔗 Comparte con la comunidad

About

Proyecto de Python de código abierto que permite cambiar el fondo de una imagen

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published