WebUI ligero y personalizado para Stable Diffusion, similar a Automatic1111 pero optimizado y modular.
git clone https://github.com/nicobutter/buttervision.git
cd buttervision
python -m venv venv
# Linux/Mac
source venv/bin/activate
# Windows
venv\Scripts\activate
Para CUDA 11.8:
pip install torch torchvision --index-url https://download.pytorch.org/whl/cu118
pip install -r requirements.txt
Para CUDA 12.1:
pip install torch torchvision --index-url https://download.pytorch.org/whl/cu121
pip install -r requirements.txt
Para CPU (no recomendado, muy lento):
pip install torch torchvision
pip install -r requirements.txt
xformers proporciona optimizaciones de memoria significativas:
pip install xformers
./run.sh
En el primer arranque, ButterVision verifica el modelo base configurado y lo descarga automáticamente si no está disponible localmente. Por defecto usa cyberrealistic_final.safetensors, descargado desde el backup público de Hugging Face de CyberRealistic.
Durante la descarga verás progreso en la terminal con porcentaje, tamaño descargado, tamaño total, velocidad y ETA. Si la descarga se interrumpe, ButterVision intenta reanudar el archivo .part en el siguiente arranque.
La página de CivitAI puede pedir autenticación, por eso el launcher usa Hugging Face como fuente principal. Si aun así quieres usar CivitAI, crea un API token en tu cuenta y ejecútalo así:
export CIVITAI_API_TOKEN="tu_token"
./run.sh
También puedes descargarlo manualmente y colocarlo en:
models/stable-diffusion/cyberrealistic_final.safetensors
La interfaz se abrirá automáticamente en: http://localhost:7860
En Windows, usa:
run.bat
# Cambiar puerto
./run.sh --port 7861
# Crear share link público (Gradio)
./run.sh --share
# Añadir autenticación
./run.sh --auth usuario:contraseña
# Cambiar host
./run.sh --host 127.0.0.1
# GPU de 4GB (GTX 1650) - slicing + CPU offload, sin xformers/fp16 por defecto
./run.sh --lowvram
# GPU con VRAM media (6GB+) - fp16/xformers si tu GPU los tolera bien
./run.sh --medvram
# Desactivar todas las optimizaciones (para debugging)
./run.sh --no-optimizations
# Usar un modelo diferente
./run.sh --model "stabilityai/stable-diffusion-2-1"
# Modo offline estricto: no descargar modelos al arrancar
./run.sh --skip-model-download
# Desactivar float16 (usa más VRAM)
./run.sh --no-fp16
# Desactivar xformers
./run.sh --no-xformers
# Para GPU de 4GB (ej: GTX 1650)
./run.sh --lowvram --share
# Para GPU de 6GB (ej: RTX 3060)
./run.sh --medvram
# Para GPU de 8GB+ (ej: RTX 3070)
./run.sh
# Usar modelo SD 2.1 con optimizaciones
./run.sh --model "stabilityai/stable-diffusion-2-1" --medvram
buttervision/
├── main.py # Punto de entrada principal
├── config.py # Configuración centralizada
├── requirements.txt # Dependencias Python
├── requirements-instantid.txt # Dependencias opcionales de Face Reference
├── README.md # Este archivo
├── LICENSE # Licencia del proyecto
├── docs/ # Documentación secundaria del proyecto
│
├── core/ # Núcleo del sistema
│ ├── __init__.py
│ ├── pipeline.py # StableDiffusionManager
│ ├── instantid_pipeline.py # Backend Face Reference / InstantID
│ └── lora_manager.py # Gestor de LoRAs
│
├── ui/ # Interfaz de usuario
│ ├── __init__.py
│ └── interface.py # Interfaz Gradio
│
├── models/ # Modelos y recursos
│ ├── lora/ # Archivos .safetensors de LoRAs
│ ├── controlnet/ # Modelos de ControlNet
│ └── embeddings/ # Textual inversions
│
├── extensions/ # Plugins/extensiones personalizadas
├── outputs/ # Imágenes generadas
└── cache/ # Cache de modelos de HuggingFace
Regla de documentación: README.md queda en la raíz para GitHub. Todo documento adicional (.md o .txt) debe vivir en docs/. Archivos funcionales como requirements*.txt permanecen en la raíz.
outputs/DDMMYYYY-HHMMSS-generation/ con los PNG, metadata.json y prompt.txt. La seed aleatoria usada vuelve al campo Seed para poder repetir el resultado.Face Reference usa InstantID para preservar identidad facial desde una sola imagen de referencia. Esta técnica combina embeddings faciales de InsightFace con guía estructural tipo ControlNet sobre SDXL, por lo que es más fiel para identidad que un img2img simple.
Face Reference en el dropdown del navbarIdentity Strength para más parecido facial y Structure Strength para más guía de landmarksCada generación se guarda en outputs/DDMMYYYY-HHMMSS-generation/ con los PNG, reference_face.png, metadata.json y prompt.txt.
El baseline de ButterVision es GTX 1650 / 4GB VRAM: Face Reference arranca en 512x512, 15 steps y Batch = 1. 768x768 queda disponible como techo conservador; resoluciones mayores con InstantID/SDXL pueden hacer que el sistema mate el proceso por falta de memoria.
Face Reference mantiene sus dependencias separadas del instalador base porque insightface y onnxruntime-gpu son paquetes pesados y específicos de esta función. Para habilitarlo:
./install_face_reference.sh
También puedes instalar todo junto desde cero:
bash install.sh cuda121 --instantid
Los modelos/pesos se descargan automáticamente la primera vez que seleccionas Face Reference:
models/instantid/
├── ControlNetModel/
└── ip-adapter.bin
models/antelopev2/
Nota: los modelos de InsightFace/FaceID suelen estar restringidos a investigación o uso no comercial según sus licencias upstream.
.safetensors de LoRAs en models/lora/ButterVision incluye soporte especial para entrenar y usar un LoRA de tu propia cara:
# Crear directorio para fotos
mkdir -p data/mi_cara
# Coloca 15-30 fotos de tu cara (formatos: .jpg, .png)
# Variedad: ángulos, iluminación, expresiones
# Verificar configuración
python check_lora_setup.py
# Entrenar LoRA (30-60 minutos en GTX 1650)
python train_lora_mi_cara.py
# O con parámetros personalizados
python train_lora_mi_cara.py --steps 2000 --lr 5e-5
El LoRA se carga automáticamente. Usa prompts como:
foto de [tu nombre], cara realista, sonrisa, fondo neutro[tu nombre] en un parque, iluminación naturalVer LORA_TRAINING_README.md para guía completa.
Edita config.py:
@dataclass
class ModelConfig:
model_id: str = "stabilityai/stable-diffusion-2-1" # Cambia aquí
# ... resto de configuración
Modelos populares:
runwayml/stable-diffusion-v1-5 (ligero, rápido)stabilityai/stable-diffusion-2-1 (mejor calidad)stabilityai/stable-diffusion-xl-base-1.0 (SDXL, requiere más VRAM)Los schedulers disponibles están en config.py. Puedes añadir más editando la función get_available_schedulers().
Crea scripts Python en la carpeta extensions/ para añadir funcionalidades personalizadas. (Sistema de plugins en desarrollo)
| Configuración | VRAM | Velocidad |
|---|---|---|
| SD 1.5 + lowvram | ~3GB | Lento |
| SD 1.5 + medvram | ~4GB | Moderado |
| SD 1.5 estándar | ~5GB | Rápido |
| SD 2.1 + medvram | ~5GB | Moderado |
| SD 2.1 estándar | ~6GB | Rápido |
| SDXL + lowvram | ~6GB | Muy lento |
| SDXL estándar | ~10GB | Rápido |
# Prueba con optimizaciones más agresivas
./run.sh --lowvram
# O reduce la resolución de generación
# Usa 384x384 o 448x448 en lugar de 512x512
# Instala xformers (mejora significativa)
pip install xformers
# O desactívalo si da problemas
./run.sh --no-xformers
Los modelos se descargan de HuggingFace la primera vez. Para SD 1.5 son ~4GB.
Puedes pre-descargarlos:
python -c "from diffusers import StableDiffusionPipeline; StableDiffusionPipeline.from_pretrained('runwayml/stable-diffusion-v1-5')"
Este proyecto está bajo la licencia MIT. Ver LICENSE para más detalles.
Nicolas Butterfield
¿Problemas o preguntas? Abre un issue en GitHub o contacta a Nicolas Butterfield en nicobutter@gmail.com.
¡Disfruta generando arte con ButterVision! 🎨✨ Sistema de generacion de imagenes
20 commits
Python
88.8%
Shell
4.1%
JavaScript
3.6%
CSS
2.4%
Batchfile
1.1%
WebUI ligero y personalizado para Stable Diffusion, similar a Automatic1111 pero optimizado y modular.
git clone https://github.com/nicobutter/buttervision.git
cd buttervision
python -m venv venv
# Linux/Mac
source venv/bin/activate
# Windows
venv\Scripts\activate
Para CUDA 11.8:
pip install torch torchvision --index-url https://download.pytorch.org/whl/cu118
pip install -r requirements.txt
Para CUDA 12.1:
pip install torch torchvision --index-url https://download.pytorch.org/whl/cu121
pip install -r requirements.txt
Para CPU (no recomendado, muy lento):
pip install torch torchvision
pip install -r requirements.txt
xformers proporciona optimizaciones de memoria significativas:
pip install xformers
./run.sh
En el primer arranque, ButterVision verifica el modelo base configurado y lo descarga automáticamente si no está disponible localmente. Por defecto usa cyberrealistic_final.safetensors, descargado desde el backup público de Hugging Face de CyberRealistic.
Durante la descarga verás progreso en la terminal con porcentaje, tamaño descargado, tamaño total, velocidad y ETA. Si la descarga se interrumpe, ButterVision intenta reanudar el archivo .part en el siguiente arranque.
La página de CivitAI puede pedir autenticación, por eso el launcher usa Hugging Face como fuente principal. Si aun así quieres usar CivitAI, crea un API token en tu cuenta y ejecútalo así:
export CIVITAI_API_TOKEN="tu_token"
./run.sh
También puedes descargarlo manualmente y colocarlo en:
models/stable-diffusion/cyberrealistic_final.safetensors
La interfaz se abrirá automáticamente en: http://localhost:7860
En Windows, usa:
run.bat
# Cambiar puerto
./run.sh --port 7861
# Crear share link público (Gradio)
./run.sh --share
# Añadir autenticación
./run.sh --auth usuario:contraseña
# Cambiar host
./run.sh --host 127.0.0.1
# GPU de 4GB (GTX 1650) - slicing + CPU offload, sin xformers/fp16 por defecto
./run.sh --lowvram
# GPU con VRAM media (6GB+) - fp16/xformers si tu GPU los tolera bien
./run.sh --medvram
# Desactivar todas las optimizaciones (para debugging)
./run.sh --no-optimizations
# Usar un modelo diferente
./run.sh --model "stabilityai/stable-diffusion-2-1"
# Modo offline estricto: no descargar modelos al arrancar
./run.sh --skip-model-download
# Desactivar float16 (usa más VRAM)
./run.sh --no-fp16
# Desactivar xformers
./run.sh --no-xformers
# Para GPU de 4GB (ej: GTX 1650)
./run.sh --lowvram --share
# Para GPU de 6GB (ej: RTX 3060)
./run.sh --medvram
# Para GPU de 8GB+ (ej: RTX 3070)
./run.sh
# Usar modelo SD 2.1 con optimizaciones
./run.sh --model "stabilityai/stable-diffusion-2-1" --medvram
buttervision/
├── main.py # Punto de entrada principal
├── config.py # Configuración centralizada
├── requirements.txt # Dependencias Python
├── requirements-instantid.txt # Dependencias opcionales de Face Reference
├── README.md # Este archivo
├── LICENSE # Licencia del proyecto
├── docs/ # Documentación secundaria del proyecto
│
├── core/ # Núcleo del sistema
│ ├── __init__.py
│ ├── pipeline.py # StableDiffusionManager
│ ├── instantid_pipeline.py # Backend Face Reference / InstantID
│ └── lora_manager.py # Gestor de LoRAs
│
├── ui/ # Interfaz de usuario
│ ├── __init__.py
│ └── interface.py # Interfaz Gradio
│
├── models/ # Modelos y recursos
│ ├── lora/ # Archivos .safetensors de LoRAs
│ ├── controlnet/ # Modelos de ControlNet
│ └── embeddings/ # Textual inversions
│
├── extensions/ # Plugins/extensiones personalizadas
├── outputs/ # Imágenes generadas
└── cache/ # Cache de modelos de HuggingFace
Regla de documentación: README.md queda en la raíz para GitHub. Todo documento adicional (.md o .txt) debe vivir en docs/. Archivos funcionales como requirements*.txt permanecen en la raíz.
outputs/DDMMYYYY-HHMMSS-generation/ con los PNG, metadata.json y prompt.txt. La seed aleatoria usada vuelve al campo Seed para poder repetir el resultado.Face Reference usa InstantID para preservar identidad facial desde una sola imagen de referencia. Esta técnica combina embeddings faciales de InsightFace con guía estructural tipo ControlNet sobre SDXL, por lo que es más fiel para identidad que un img2img simple.
Face Reference en el dropdown del navbarIdentity Strength para más parecido facial y Structure Strength para más guía de landmarksCada generación se guarda en outputs/DDMMYYYY-HHMMSS-generation/ con los PNG, reference_face.png, metadata.json y prompt.txt.
El baseline de ButterVision es GTX 1650 / 4GB VRAM: Face Reference arranca en 512x512, 15 steps y Batch = 1. 768x768 queda disponible como techo conservador; resoluciones mayores con InstantID/SDXL pueden hacer que el sistema mate el proceso por falta de memoria.
Face Reference mantiene sus dependencias separadas del instalador base porque insightface y onnxruntime-gpu son paquetes pesados y específicos de esta función. Para habilitarlo:
./install_face_reference.sh
También puedes instalar todo junto desde cero:
bash install.sh cuda121 --instantid
Los modelos/pesos se descargan automáticamente la primera vez que seleccionas Face Reference:
models/instantid/
├── ControlNetModel/
└── ip-adapter.bin
models/antelopev2/
Nota: los modelos de InsightFace/FaceID suelen estar restringidos a investigación o uso no comercial según sus licencias upstream.
.safetensors de LoRAs en models/lora/ButterVision incluye soporte especial para entrenar y usar un LoRA de tu propia cara:
# Crear directorio para fotos
mkdir -p data/mi_cara
# Coloca 15-30 fotos de tu cara (formatos: .jpg, .png)
# Variedad: ángulos, iluminación, expresiones
# Verificar configuración
python check_lora_setup.py
# Entrenar LoRA (30-60 minutos en GTX 1650)
python train_lora_mi_cara.py
# O con parámetros personalizados
python train_lora_mi_cara.py --steps 2000 --lr 5e-5
El LoRA se carga automáticamente. Usa prompts como:
foto de [tu nombre], cara realista, sonrisa, fondo neutro[tu nombre] en un parque, iluminación naturalVer LORA_TRAINING_README.md para guía completa.
Edita config.py:
@dataclass
class ModelConfig:
model_id: str = "stabilityai/stable-diffusion-2-1" # Cambia aquí
# ... resto de configuración
Modelos populares:
runwayml/stable-diffusion-v1-5 (ligero, rápido)stabilityai/stable-diffusion-2-1 (mejor calidad)stabilityai/stable-diffusion-xl-base-1.0 (SDXL, requiere más VRAM)Los schedulers disponibles están en config.py. Puedes añadir más editando la función get_available_schedulers().
Crea scripts Python en la carpeta extensions/ para añadir funcionalidades personalizadas. (Sistema de plugins en desarrollo)
| Configuración | VRAM | Velocidad |
|---|---|---|
| SD 1.5 + lowvram | ~3GB | Lento |
| SD 1.5 + medvram | ~4GB | Moderado |
| SD 1.5 estándar | ~5GB | Rápido |
| SD 2.1 + medvram | ~5GB | Moderado |
| SD 2.1 estándar | ~6GB | Rápido |
| SDXL + lowvram | ~6GB | Muy lento |
| SDXL estándar | ~10GB | Rápido |
# Prueba con optimizaciones más agresivas
./run.sh --lowvram
# O reduce la resolución de generación
# Usa 384x384 o 448x448 en lugar de 512x512
# Instala xformers (mejora significativa)
pip install xformers
# O desactívalo si da problemas
./run.sh --no-xformers
Los modelos se descargan de HuggingFace la primera vez. Para SD 1.5 son ~4GB.
Puedes pre-descargarlos:
python -c "from diffusers import StableDiffusionPipeline; StableDiffusionPipeline.from_pretrained('runwayml/stable-diffusion-v1-5')"
Este proyecto está bajo la licencia MIT. Ver LICENSE para más detalles.
Nicolas Butterfield
¿Problemas o preguntas? Abre un issue en GitHub o contacta a Nicolas Butterfield en nicobutter@gmail.com.
¡Disfruta generando arte con ButterVision! 🎨✨ Sistema de generacion de imagenes
20 commits
Python
88.8%
Shell
4.1%
JavaScript
3.6%
CSS
2.4%
Batchfile
1.1%