DiffuGen
Genera imágenes a partir de texto utilizando los modelos Flux y Stable Diffusion.
Documentación
DiffuGen - Generador de Imágenes Local Avanzado con Integración MCP
Tu estudio de arte con IA integrado directamente en el código. Genera, itera y perfecciona conceptos visuales a través de este potente servidor MCP para Cursor, Windsurf y otros IDEs compatibles, utilizando modelos de vanguardia Flux y Stable Diffusion sin interrumpir tu proceso de desarrollo.
⭐ Nuevo: Ahora incluye soporte para servidor OpenAPI e integración con OpenWebUI OpenAPI Tools (se requiere OWUI versión 0.60.0) para generación y visualización de imágenes sin interrupciones en interfaces de chat. El OpenAPI es independiente del servidor MCP y permite integraciones en tus propios proyectos.
📃 Tabla de Contenidos
- Introducción
- Entendiendo MCP y DiffuGen
- Características
- Requisitos del Sistema
- Instalación
- Instrucciones de Configuración para IDE
- Uso
- Configuración
- Uso Avanzado
- Licencia
- Agradecimientos
- Contacto
🚀 Introducción
DiffuGen es un potente sistema de generación de imágenes basado en MCP que lleva modelos de IA de vanguardia directamente a tu flujo de trabajo de desarrollo. Integra sin problemas tanto los modelos Flux (Flux Schnell, Flux Dev) como las variantes de Stable Diffusion (SDXL, SD3, SD1.5) en una interfaz unificada, permitiéndote aprovechar las fortalezas únicas de cada familia de modelos sin cambiar de herramienta. Con un control integral de parámetros y soporte multi-GPU, DiffuGen escala desde bocetos conceptuales rápidos en hardware modesto hasta visuales de calidad de producción en sistemas de alto rendimiento.
Construido sobre la implementación altamente optimizada de stable-diffusion.cpp, DiffuGen ofrece un rendimiento excepcional incluso en hardware modesto mientras mantiene una salida de alta calidad.
🧠 Entendiendo MCP y DiffuGen
¿Qué es MCP?
MCP (Protocolo de Contexto de Modelo) es un protocolo que permite a los LLM (Modelos de Lenguaje de Gran Escala) acceder a herramientas y servicios personalizados. En términos simples, un cliente MCP (como Cursor, Windsurf, Roo Code o Cline) puede hacer solicitudes a servidores MCP para acceder a las herramientas que estos proporcionan.
DiffuGen como Servidor MCP
DiffuGen funciona como un servidor MCP que proporciona capacidades de generación de texto a imagen. Implementa el protocolo MCP para permitir que los IDEs compatibles envíen solicitudes de generación y reciban las imágenes generadas.
El servidor expone dos herramientas principales:
generate_stable_diffusion_image: Generar con modelos Stable Diffusiongenerate_flux_image: Generar con modelos Flux
Arquitectura Técnica
DiffuGen consta de varios componentes clave:
- setup-diffugen.sh: La utilidad de instalación completa, descargador y administrador de modelos
- diffugen.py: El script principal de Python que implementa la funcionalidad del servidor MCP y define las herramientas de generación
- diffugen.sh: Un script de lanzamiento de shell que configura el entorno y lanza el servidor Python
- diffugen.json: Archivo de configuración de plantilla para la integración MCP con varios IDEs (para copiar en la configuración MCP del IDE)
- stable-diffusion.cpp: La implementación optimizada en C++ de Stable Diffusion utilizada para la generación real de imágenes
El sistema funciona de la siguiente manera:
- Recibe los datos de prompt y parámetros de un cliente MCP
- Procesa la solicitud a través del servidor Python
- Llama al binario stable-diffusion.cpp con los parámetros adecuados
- Guarda la imagen generada en un directorio de salida configurado
- Devuelve la ruta y los metadatos de la imagen generada al cliente
Acerca de stable-diffusion.cpp
stable-diffusion.cpp es una implementación altamente optimizada en C++ del algoritmo de Stable Diffusion. En comparación con la implementación de referencia en Python, ofrece:
- Velocidad de inferencia significativamente más rápida (hasta 3-4 veces más rápida)
- Menor uso de memoria (funciona en GPUs con tan solo 4GB de VRAM)
- Kernels CUDA optimizados para GPUs NVIDIA
- Soporte para varios métodos de muestreo y formatos de modelo
- Soporte para cuantización de modelos para un mejor rendimiento
- Sin dependencias de Python para el proceso de generación principal
Esto permite a DiffuGen proporcionar generación de imágenes de alta calidad con un rendimiento excepcional, incluso en configuraciones de hardware modestas.
✨ Características
- Soporte de Múltiples Modelos: Genera imágenes usando varios modelos, incluyendo Flux Schnell, Flux Dev, SDXL, SD3 y SD1.5
- Integración MCP: Se integra sin problemas con IDEs que soportan MCP (Cursor, Windsurf, Roo Code, Cline, etc.)
- Servidor OpenAPI: Interfaz API REST adicional para acceso HTTP directo a las capacidades de generación de imágenes
- Multiplataforma: Funciona en Linux, macOS y Windows (nativo o WSL)
- Control de Parámetros: Ajusta finamente tus generaciones con controles para:
- Dimensiones de imagen (ancho/alto)
- Pasos de muestreo
- Escala CFG
- Valores de semilla
- Prompts negativos (solo para modelos SD, Flux no soporta prompts negativos)
- Métodos de muestreo
- Aceleración CUDA: Utiliza aceleración por GPU para una generación de imágenes más rápida
- Interfaz de Lenguaje Natural: Genera imágenes usando comandos simples en lenguaje natural
- Recuperación Inteligente de Errores: Manejo robusto de errores con procedimientos de recuperación conscientes de la operación
- Configuración Amigable: Script de configuración interactivo con manejo mejorado de interrupciones
- Seguimiento de Recursos: Gestión de recursos consciente de la sesión para una limpieza eficiente
- Interfaz Personalizable: Soporte para logos de arte ANSI personalizados y mejoras visuales
💻 Requisitos del Sistema
Requisitos Mínimos:
- CPU: Procesador de 4 núcleos (Intel i5/AMD Ryzen 5 o equivalente)
- RAM: 8GB de memoria del sistema
- Almacenamiento: 5GB de espacio libre en disco (se prefiere SSD para una carga más rápida de modelos)
- Python: 3.8 o superior
- GPU: Gráficos integrados o GPU dedicada de nivel básico (opcional)
- Red: Conexión de banda ancha para descargas de modelos (5+ Mbps)
Requisitos Recomendados:
- CPU: Procesador de 8+ núcleos (Intel i7/i9 o AMD Ryzen 7/9)
- RAM: 16GB+ de memoria del sistema
- GPU: GPU NVIDIA con 6GB+ de VRAM (RTX 2060 o mejor para un rendimiento óptimo)
- Almacenamiento: 20GB+ de espacio libre en SSD
- Python: 3.10 o superior (3.11 ofrece el mejor rendimiento)
- Red: Conexión de alta velocidad (20+ Mbps) para descargas eficientes de modelos
📥 Instalación
Instalación Automática (Recomendada)
La forma más fácil de instalar DiffuGen es usando el script de configuración proporcionado:
git clone https://github.com/CLOUDWERX-DEV/diffugen.git
cd DiffuGen
chmod +x diffugen.sh
chmod +x setup_diffugen.sh
./setup_diffugen.sh
Sigue las indicaciones interactivas para completar la instalación.
El script de configuración:
- Instalará las dependencias necesarias
- Clonará y compilará stable-diffusion.cpp
- Configurará un entorno virtual de Python
- Descargará los modelos seleccionados (Nota: Algunos modelos requieren también modelos Clip/VAE)
- Configurará las rutas de archivo para tu sistema
Instalación Manual
Si prefieres instalar manualmente, sigue estos pasos:
- Clona los repositorios:
git clone https://github.com/CLOUDWERX-DEV/diffugen.git
cd DiffuGen
git clone --recursive https://github.com/leejet/stable-diffusion.cpp
- Compila stable-diffusion.cpp:
cd stable-diffusion.cpp
mkdir -p build && cd build
Con CUDA:
cmake .. -DCMAKE_BUILD_TYPE=Release -DSD_CUDA=ON
make -j$(nproc)
cd ../..
Sin CUDA:
cmake .. -DCMAKE_BUILD_TYPE=Release
make -j$(nproc)
cd ../..
- Crea y activa un entorno virtual de Python:
python3 -m venv diffugen_env
source diffugen_env/bin/activate # On Windows: diffugen_env\Scripts\activate
pip install -r requirements.txt
- Descarga los modelos requeridos (estructura mostrada abajo):
stable-diffusion.cpp/models/
├── ae.sft # VAE model
├── clip_l.safetensors # CLIP model
├── flux/
│ ├── flux1-schnell-q8_0.gguf # Flux Schnell model (default)
│ └── flux1-dev-q8_0.gguf # Flux Dev model
├── sd3-medium.safetensors # SD3 model
├── sdxl-1.0-base.safetensors # SDXL model
├── sdxl_vae-fp16-fix.safetensors # SDXL VAE
├── t5xxl_fp16.safetensors # T5 model
└── v1-5-pruned-emaonly.safetensors # SD1.5 model
Puedes descargar los modelos desde las siguientes fuentes:
# Create model directories
mkdir -p stable-diffusion.cpp/models/flux
# Flux models
# Flux Schnell - Fast generation model (Q8 Quantized,requires t5xxl, clip-l, vae)
curl -L https://huggingface.co/leejet/FLUX.1-schnell-gguf/resolve/main/flux1-schnell-q8_0.gguf -o stable-diffusion.cpp/models/flux/flux1-schnell-q8_0.gguf
# Flux Dev - Development model with better quality (Q8 QUantized, requires t5xxl, clip-l, vae)
curl -L https://huggingface.co/leejet/FLUX.1-dev-gguf/resolve/main/flux1-dev-q8_0.gguf -o stable-diffusion.cpp/models/flux/flux1-dev-q8_0.gguf
# Required models for Flux
# T5XXL Text Encoder
curl -L https://huggingface.co/Sanami/flux1-dev-gguf/resolve/main/t5xxl_fp16.safetensors -o stable-diffusion.cpp/models/t5xxl_fp16.safetensors
# CLIP-L Text Encoder
curl -L https://huggingface.co/Sanami/flux1-dev-gguf/resolve/main/clip_l.safetensors -o stable-diffusion.cpp/models/clip_l.safetensors
# VAE for image decoding
curl -L https://huggingface.co/pretentioushorsefly/flux-models/resolve/main/models/vae/ae.safetensors -o stable-diffusion.cpp/models/ae.sft
# Stable Diffusion models
# SDXL 1.0 Base Model (requires sdxl-vae)
curl -L https://huggingface.co/stabilityai/stable-diffusion-xl-base-1.0/resolve/main/sd_xl_base_1.0.safetensors -o stable-diffusion.cpp/models/sd_xl_base_1.0.safetensors
# SDXL VAE (required for SDXL)
curl -L https://huggingface.co/madebyollin/sdxl-vae-fp16-fix/resolve/main/sdxl_vae-fp16-fix.safetensors -o stable-diffusion.cpp/models/sdxl_vae-fp16-fix.safetensors
# Stable Diffusion 1.5 (standalone)
curl -L https://huggingface.co/runwayml/stable-diffusion-v1-5/resolve/main/v1-5-pruned-emaonly.safetensors -o stable-diffusion.cpp/models/v1-5-pruned-emaonly.safetensors
# Stable Diffusion 3 Medium (standalone)
curl -L https://huggingface.co/leo009/stable-diffusion-3-medium/resolve/main/sd3_medium_incl_clips_t5xxlfp16.safetensors -o stable-diffusion.cpp/models/sd3_medium_incl_clips_t5xxlfp16.safetensors
Nota: La descarga de modelos puede tardar mucho tiempo dependiendo de tu conexión a internet. El modelo SDXL es de aproximadamente 6GB, SD3 es de unos 13GB, SD1.5 es de alrededor de 4GB, y los modelos Flux son de 8-13GB cada uno.
- Actualiza las rutas de archivo en la configuración:
Establece el script de shell como ejecutable
chmod +x diffugen.sh
Enfoque de Configuración:
DiffuGen utiliza un único archivo de configuración (diffugen.json) como fuente de verdad para todos los ajustes. El flujo de trabajo es:
- Edita
diffugen.jsonen el directorio raíz de DiffuGen con tus ajustes deseados - Ejecuta la opción 5 en
setup_diffugen.shpara actualizar automáticamente las rutas en este archivo - Copia el contenido de
diffugen.jsonal archivo de configuración MCP de tu IDE
El archivo contiene todos los ajustes necesarios:
- Rutas de archivo (command, SD_CPP_PATH, models_dir, output_dir)
- Parámetros de modelo por defecto (steps, cfg_scale, sampling_method)
- Ajustes de uso de VRAM
- Metadatos para la integración con el IDE
{
"mcpServers": {
"diffugen": {
"command": "/home/cloudwerxlab/Desktop/Servers/MCP/Tools/DiffuGen/diffugen.sh",
"args": [],
"env": {
"CUDA_VISIBLE_DEVICES": "0",
"SD_CPP_PATH": "path/to/stable-diffusion.cpp",
"default_model": "flux-schnell"
},
"resources": {
"models_dir": "path/to/stable-diffusion.cpp/models",
"output_dir": "path/to/outputs",
"vram_usage": "adaptive"
},
"metadata": {
"name": "DiffuGen",
"version": "1.0",
"description": "Your AI art studio embedded directly in code. Generate, iterate, and perfect visual concepts through this powerful MCP server for Cursor, Windsurf, and other compatible IDEs, utilizing cutting-edge Flux and Stable Diffusion models without disrupting your development process.",
"author": "CLOUDWERX LAB",
"homepage": "https://github.com/CLOUDWERX-DEV/diffugen",
"usage": "Generate images using two primary methods:\n1. Standard generation: 'generate an image of [description]' with optional parameters:\n - model: Choose from flux-schnell (default), flux-dev, sdxl, sd3, sd15\n - dimensions: width and height (default: 512x512)\n - steps: Number of diffusion steps (default: 20, lower for faster generation)\n - cfg_scale: Guidance scale (default: 7.0, lower for more creative freedom)\n - seed: For reproducible results (-1 for random)\n - sampling_method: euler, euler_a (default), heun, dpm2, dpm++2s_a, dpm++2m, dpm++2mv2, lcm\n - negative_prompt: Specify elements to avoid in the image\n2. Quick Flux generation: 'generate a flux image of [description]' for faster results with fewer steps (default: 4)"
},
"cursorOptions": {
"autoApprove": true,
"category": "Image Generation",
"icon": "🖼️",
"displayName": "DiffuGen"
},
"windsurfOptions": {
"displayName": "DiffuGen",
"icon": "🖼️",
"category": "Creative Tools"
},
"default_params": {
"steps": {
"flux-schnell": 8,
"flux-dev": 20,
"sdxl": 20,
"sd3": 20,
"sd15": 20
},
"cfg_scale": {
"flux-schnell": 1.0,
"flux-dev": 1.0,
"sdxl": 7.0,
"sd3": 7.0,
"sd15": 7.0
},
"sampling_method": {
"flux-schnell": "euler",
"flux-dev": "euler",
"sdxl": "euler",
"sd3": "euler",
"sd15": "euler"
}
}
}
}
}
🔧 Instrucciones de Configuración para IDE
Configuración con Cursor
- Descarga e instala Cursor
- Ve a Configuración de Cursor > MCP y haz clic en "Agregar nuevo servidor MCP global"
- Copia el contenido del archivo
diffugen.jsonde tu DiffuGen y pégalo en~/.cursor/mcp.json - Actualiza los servidores MCP en Configuración > MCP
- Usa DiffuGen abriendo el panel de chat de IA (Ctrl+K o Cmd+K) y solicitando la generación de imágenes
Configuración con Windsurf
- Descarga e instala Windsurf
- Navega a Windsurf > Configuración > Configuración avanzada o Paleta de comandos > Abrir página de configuración de Windsurf
- Desplázate hasta la sección Cascade y haz clic en "Agregar servidor" > "Agregar servidor personalizado +"
- Copia el contenido del archivo
diffugen.jsonde tu DiffuGen y pégalo en~/.codeium/windsurf/mcp_config.json - Usa DiffuGen a través de la interfaz de chat de Cascade
Configuración con Roo Code
- Descarga e instala Roo Code
- Localiza el archivo de configuración MCP para Roo Code
- Copia el contenido del archivo
diffugen.jsonde tu DiffuGen en la configuración MCP de Roo Code - Usa DiffuGen a través de la función de asistente de IA
Configuración con Cline
- Descarga e instala Cline
- Copia el contenido del archivo
diffugen.jsonde tu DiffuGen en la configuración MCP de Cline - Usa DiffuGen a través del chat de IA o la interfaz de comandos
Configuración con Claude en la Consola de Anthropic
Claude puede usar DiffuGen si lo has configurado como servidor MCP en tu sistema. Al pedirle a Claude que genere imágenes, sé específico sobre el uso de DiffuGen y proporciona los parámetros que deseas usar.
🎮 Uso
Para iniciar el servidor DiffuGen manualmente:
cd /path/to/diffugen
./diffugen.sh
O usando Python directamente:
cd /path/to/diffugen
python -m diffugen
Deberías ver: DiffuGen ready cuando el servidor se haya iniciado correctamente.
Uso del Servidor OpenAPI
El servidor OpenAPI proporciona una interfaz API REST para acceso HTTP directo a las capacidades de generación de imágenes de DiffuGen. Esto es adicional a la integración MCP y puede ser útil para:
- Acceso directo a la API HTTP
- Integración con otras herramientas que no soportan MCP
- Aplicaciones personalizadas que necesitan acceso programático
Para instrucciones detalladas de configuración y opciones avanzadas, consulta la Guía de Integración OpenAPI.
Para iniciar el servidor OpenAPI:
python diffugen_openapi.py
El servidor puede configurarse para usar un host o puerto diferente si es necesario. Por defecto, se ejecuta en:
- Host: 0.0.0.0
- Puerto: 8080
El servidor estará disponible en http://0.0.0.0:8080 con documentación interactiva en http://0.0.0.0:8080/docs.
Las imágenes generadas se guardan en el directorio /output por defecto. Si este directorio no es accesible, el servidor creará automáticamente un directorio output en el directorio de trabajo actual. Las imágenes se sirven a través del endpoint /images.
Integración con OpenWebUI
- Abre la configuración de OpenWebUI (icono de engranaje)
- Navega a la sección "Tools"
- Haz clic en el botón "+" para añadir un nuevo servidor de herramientas
- Introduce los siguientes detalles:
- URL: http://0.0.0.0:5199
- API Key: (déjalo vacío)
- Haz clic en "Guardar"
Una vez añadido, DiffuGen aparecerá en la lista de herramientas disponibles al hacer clic en el icono de herramientas en la interfaz de chat. Los siguientes endpoints estarán disponibles:
generate_stable_image_generate_stable_post: Generar con Stable Diffusiongenerate_flux_image_endpoint_generate_flux_post: Generar con modelos Fluxlist_models_models_get: Listar modelos disponibles
Ejemplo usando curl:
curl -X POST "http://0.0.0.0:5199/generate/flux" \
-H "Content-Type: application/json" \
-d '{"prompt": "A beautiful sunset", "model": "flux-schnell"}'
Ejemplo usando requests de Python:
import requests
response = requests.post(
"http://0.0.0.0:5199/generate/flux",
json={
"prompt": "A beautiful sunset",
"model": "flux-schnell"
}
)
result = response.json()
Parámetros predeterminados por modelo
Cada modelo tiene parámetros predeterminados específicos optimizados para obtener los mejores resultados:
| Modelo | Pasos predeterminados | Escala CFG predeterminada | Mejor para |
|---|---|---|---|
| flux-schnell | 8 | 1.0 | Borradores rápidos, imágenes conceptuales |
| flux-dev | 20 | 1.0 | Generaciones flux de mejor calidad |
| sdxl | 20 | 7.0 | Imágenes detalladas de alta calidad |
| sd3 | 20 | 7.0 | Última generación con buena calidad |
| sd15 | 20 | 7.0 | Modelo base clásico |
Estos parámetros predeterminados se pueden personalizar añadiendo una sección default_params al archivo de configuración MCP de tu IDE:
"default_params": {
"steps": {
"flux-schnell": 12, // Customize steps for better quality
"sdxl": 30 // Increase steps for more detailed SDXL images
},
"cfg_scale": {
"sd15": 9.0 // Higher cfg_scale for stronger prompt adherence
}
}
Solo necesitas especificar los parámetros que quieras sobrescribir; cualquier valor no especificado usará los valores predeterminados integrados.
Nota: Para ejemplos de línea de comandos y recomendaciones específicos de cada modelo, consulta la sección Recomendaciones de parámetros específicos por modelo.
Pedir a un LLM que genere imágenes
Aquí tienes ejemplos de cómo pedir a un asistente de IA que genere imágenes con DiffuGen:
Solicitudes básicas:
Generate an image of a cat playing with yarn
Create a picture of a futuristic cityscape with flying cars
Con especificación de modelo:
Generate an image of a medieval castle using the sdxl model
Create a flux image of a sunset over mountains
Con parámetros avanzados:
Generate an image of a cyberpunk street scene, model=flux-dev, width=768, height=512, steps=25, cfg_scale=1.0, seed=42
Create an illustration of a fantasy character with model=sd15, width=512, height=768, steps=30, cfg_scale=7.5, sampling_method=dpm++2m, negative_prompt=blurry, low quality, distorted
Referencia de parámetros
DiffuGen se puede usar desde la línea de comandos con la siguiente sintaxis básica:
./diffugen.sh "Your prompt here" [options]
Ejemplo:
./diffugen.sh "A futuristic cityscape with flying cars"
Este comando genera una imagen usando los parámetros predeterminados (modelo flux-schnell, resolución 512x512, etc.) y la guarda en el directorio de salida configurado.
A continuación se muestran los parámetros que se pueden usar con DiffuGen (aplicables tanto a la interfaz MCP como a la línea de comandos):
| Parámetro | Descripción | Predeterminado | Valores válidos | Indicador de línea de comandos |
|---|---|---|---|---|
| model | El modelo a usar para la generación | flux-schnell/sd15 | flux-schnell, flux-dev, sdxl, sd3, sd15 | --model |
| width | Ancho de la imagen en píxeles | 512 | 256-2048 | --width |
| height | Alto de la imagen en píxeles | 512 | 256-2048 | --height |
| steps | Número de pasos de difusión | específico del modelo | 1-100 | --steps |
| cfg_scale | Escala de guía sin clasificador | específico del modelo | 0.1-30.0 | --cfg-scale |
| seed | Semilla aleatoria para reproducibilidad | -1 (aleatorio) | -1 o cualquier entero | --seed |
| sampling_method | Método de muestreo de difusión | euler | euler, euler_a, heun, dpm2, dpm++2s_a, dpm++2m, dpm++2mv2, lcm | --sampling-method |
| negative_prompt | Elementos a evitar en la imagen | "" (vacío) | Cualquier cadena de texto | --negative-prompt |
| output_dir | Directorio para guardar imágenes | Definido en la configuración | Ruta válida | --output-dir |
Estos parámetros se pueden especificar al pedir a un asistente de IA que genere imágenes o al usar la interfaz de línea de comandos. Los parámetros se pasan en diferentes formatos según la interfaz:
- En MCP/Asistente de IA:
parameter=value(p. ej.,model=sdxl, width=768, height=512) - En línea de comandos:
--parameter value(p. ej.,--model sdxl --width 768 --height 512)
Los valores predeterminados se eligen para proporcionar buenos resultados de forma inmediata con un tiempo de espera mínimo. Para imágenes de mayor calidad, considera aumentar los pasos o cambiar a modelos como sdxl.
Recomendaciones de parámetros específicos por modelo
Nota: Estas recomendaciones se basan en la sección Parámetros predeterminados por modelo y proporcionan ejemplos prácticos.
Para obtener los mejores resultados al usar modelos específicos mediante la línea de comandos:
Modelos Flux (flux-schnell, flux-dev)
# Flux-Schnell (fastest)
./diffugen.sh "Vibrant colorful abstract painting" \
--model flux-schnell \
--cfg-scale 1.0 \
--sampling-method euler \
--steps 8
# Flux-Dev (better quality)
./diffugen.sh "Detailed fantasy landscape with mountains and castles" \
--model flux-dev \
--cfg-scale 1.0 \
--sampling-method euler \
--steps 20
Modelos SD estándar (sdxl, sd3, sd15)
# SDXL (highest quality)
./diffugen.sh "Hyperrealistic portrait of a Celtic warrior" \
--model sdxl \
--cfg-scale 7.0 \
--sampling-method dpm++2m \
--steps 30
# SD15 (classic model)
./diffugen.sh "Photorealistic landscape at sunset" \
--model sd15 \
--cfg-scale 7.0 \
--sampling-method euler_a \
--steps 20
Cambios en los parámetros predeterminados
La interfaz de línea de comandos de DiffuGen usa los siguientes valores predeterminados si no se especifica lo contrario en la configuración:
- Modelo predeterminado: si no se especifica, se usan modelos apropiados para la función (flux-schnell para funciones Flux, sd15 para funciones SD)
- Método de muestreo predeterminado:
euler(mejor para modelos Flux) - Escala CFG predeterminada:
1.0para modelos Flux,7.0para modelos SD estándar - Pasos predeterminados:
8para flux-schnell,20para otros modelos - Dimensiones predeterminadas: 512x512 píxeles
Al usar la línea de comandos, no necesitas especificar estos parámetros a menos que quieras sobrescribir los valores predeterminados. Si usas con frecuencia parámetros específicos, considera añadirlos a tu archivo de configuración en lugar de especificarlos en cada línea de comandos.
Notas de uso de la línea de comandos
- Las imágenes generadas se guardan en el directorio de salida configurado con nombres de archivo basados en la marca de tiempo y los parámetros
- Puedes generar varias imágenes en secuencia ejecutando el comando varias veces
- Para procesamiento por lotes, considera crear un script de shell que llame a DiffuGen con diferentes parámetros
- Para ver todas las opciones disponibles de línea de comandos, ejecuta
./diffugen.sh --help - El mismo motor impulsa tanto la interfaz MCP como la herramienta de línea de comandos, por lo que la calidad y las capacidades son idénticas
⚙️ Configuración
Enfoque de configuración
DiffuGen usa un único enfoque de configuración centrado en el archivo diffugen.json:
- Archivo de configuración principal:
diffugen.jsonen el directorio raíz de DiffuGen es la única fuente de verdad para todos los ajustes - Integración con IDE: Copia el contenido de
diffugen.jsonal archivo de configuración MCP de tu IDE - Variables de entorno: Para uso avanzado, puedes sobrescribir los ajustes con variables de entorno
Sobrescritura de variables de entorno
Para uso avanzado, puedes sobrescribir los ajustes usando variables de entorno:
SD_CPP_PATH: Sobrescribe la ruta a stable-diffusion.cppDIFFUGEN_OUTPUT_DIR: Sobrescribe el directorio de salidaDIFFUGEN_DEFAULT_MODEL: Sobrescribe el modelo predeterminadoDIFFUGEN_VRAM_USAGE: Sobrescribe los ajustes de uso de VRAMCUDA_VISIBLE_DEVICES: Controla qué GPUs se usan para la generación
Configuraciones específicas por IDE
DiffuGen te permite tener diferentes configuraciones para diferentes IDEs usando variables de entorno en la configuración MCP de cada IDE. Esto te permite mantener una única base diffugen.json mientras personalizas los parámetros por IDE.
La prioridad de configuración funciona de la siguiente manera:
- Variables de entorno (prioridad más alta)
- Ajustes del archivo local
diffugen.json(configuración base)
Ejemplo: Diferentes directorios de salida para diferentes IDEs
Para Cursor (en ~/.cursor/mcp.json):
"env": {
"CUDA_VISIBLE_DEVICES": "0",
"SD_CPP_PATH": "/path/to/stable-diffusion.cpp",
"DIFFUGEN_OUTPUT_DIR": "/cursor/specific/output/directory",
"default_model": "flux-schnell"
}
Para Windsurf (en ~/.codeium/windsurf/mcp_config.json):
"env": {
"CUDA_VISIBLE_DEVICES": "0",
"SD_CPP_PATH": "/path/to/stable-diffusion.cpp",
"DIFFUGEN_OUTPUT_DIR": "/windsurf/specific/output/directory",
"default_model": "sdxl"
}
Ejemplo: Diferentes modelos predeterminados y ajustes de VRAM
"env": {
"CUDA_VISIBLE_DEVICES": "0",
"SD_CPP_PATH": "/path/to/stable-diffusion.cpp",
"default_model": "flux-dev",
"DIFFUGEN_VRAM_USAGE": "maximum"
}
Este enfoque te permite personalizar el comportamiento de DiffuGen por IDE mientras sigues usando la misma instalación subyacente.
Elementos clave de configuración
Comando y argumentos
- command: Ruta completa al script
diffugen.sh(debe ser una ruta absoluta) - args: Argumentos adicionales de línea de comandos para pasar al script (normalmente se deja vacío)
Variables de entorno
-
CUDA_VISIBLE_DEVICES: Controla qué GPUs se usan para la generación
"0": Usa solo la primera GPU"1": Usa solo la segunda GPU"0,1": Usa tanto la primera como la segunda GPU"-1": Desactiva CUDA y usa solo la CPU
-
SD_CPP_PATH: Ruta al directorio de instalación de stable-diffusion.cpp
- Se usa para localizar el binario y los modelos de stable-diffusion.cpp
-
default_model: El modelo predeterminado a usar cuando no se especifica ninguno
Configuración de recursos
-
models_dir: Directorio que contiene los archivos de modelo
- Debe apuntar al directorio
modelsdentro de tu instalación de stable-diffusion.cpp
- Debe apuntar al directorio
-
output_dir: Directorio donde se guardarán las imágenes generadas
- Debe ser escribible por el usuario que ejecuta DiffuGen
-
vram_usage: Controla la estrategia de uso de VRAM
"adaptive": Ajusta automáticamente el uso de memoria según la VRAM disponible"minimal": Usa la mínima VRAM a costa de la velocidad"balanced": Equilibra el uso de memoria y la velocidad (predeterminado)"maximum": Usa la máxima VRAM disponible para el mejor rendimiento
Opciones específicas por IDE
Cada IDE tiene opciones específicas que puedes personalizar en el archivo diffugen.json:
Opciones de Cursor
"cursorOptions": {
"autoApprove": true,
"category": "Image Generation",
"icon": "🖼️",
"displayName": "DiffuGen"
}
Opciones de Windsurf
"windsurfOptions": {
"displayName": "DiffuGen",
"icon": "🖼️",
"category": "Creative Tools"
}
Personalización de parámetros predeterminados
Puedes personalizar los parámetros predeterminados de cada modelo en la sección default_params:
"default_params": {
"steps": {
"flux-schnell": 12,
"sdxl": 30
},
"cfg_scale": {
"sd15": 9.0
},
"sampling_method": {
"flux-schnell": "euler",
"sdxl": "dpm++2m"
}
}
Actualización de archivos de configuración
Al usar el script de configuración automática, se crea un archivo diffugen.json correctamente configurado con las rutas adecuadas para tu sistema cuando ejecutas la opción 5. Para integrar DiffuGen con tu IDE:
- Ejecuta la opción 5 en
setup_diffugen.shpara actualizar las rutas endiffugen.json - Copia todo el contenido del archivo
diffugen.jsongenerado - Pégalo en el archivo de configuración MCP de tu IDE (p. ej.,
~/.cursor/mcp.json) - Reinicia tu IDE para aplicar los cambios
La principal ventaja de este enfoque es una única fuente de verdad para la configuración, lo que facilita el mantenimiento y la actualización de tu instalación de DiffuGen.
📃 Uso avanzado
El módulo Python de DiffuGen se puede importar y usar programáticamente en tus propios scripts de Python:
from diffugen import generate_image
# Generate an image programmatically
result = generate_image(
prompt="A starry night over a quiet village",
model="sdxl",
width=1024,
height=768,
steps=30,
cfg_scale=7.0,
seed=42,
sampling_method="dpm++2m",
negative_prompt="blurry, low quality"
)
print(f"Image saved to: {result['file_path']}")
Uso del servidor OpenAPI
También puedes usar el servidor OpenAPI programáticamente en tus aplicaciones:
import requests
def generate_image_via_api(prompt, model="flux-schnell", width=512, height=512):
response = requests.post(
"http://0.0.0.0:5199/generate/flux",
json={
"prompt": prompt,
"model": model,
"width": width,
"height": height
}
)
return response.json()
# Example usage
result = generate_image_via_api(
prompt="A magical forest at night",
model="flux-schnell",
width=768,
height=512
)
print(f"Generated image: {result['file_path']}")
🔍 Solución de problemas
Problemas comunes y soluciones
-
Modelos faltantes o rutas incorrectas
- Asegúrate de que todos los archivos de modelo estén descargados y colocados en los directorios correctos
- Comprueba que las rutas en el archivo de configuración estén correctamente establecidas
- Verifica que los permisos de archivo permitan el acceso de lectura a los archivos de modelo
-
Problemas de CUDA/GPU
- Asegúrate de que tus controladores NVIDIA estén actualizados
- Establece
CUDA_VISIBLE_DEVICESpara apuntar a una GPU específica - Si te quedas sin VRAM, intenta usar un modelo más pequeño o reducir las dimensiones
-
Problemas de calidad de imagen
- Aumenta los pasos para mejor calidad (a costa del tiempo de generación)
- Ajusta la escala CFG: más alta para mayor adherencia al prompt, más baja para creatividad
- Prueba diferentes métodos de muestreo (dpm++2m a menudo proporciona buenos resultados)
- Usa prompts más detallados con descripciones de estilo específicas
-
Errores de permisos de archivo
- Asegúrate de que el directorio de salida sea escribible por el usuario que ejecuta DiffuGen
- Comprueba que todos los scripts tengan permisos de ejecución (
chmod +x diffugen.sh)
Obtener ayuda
Si encuentras problemas no cubiertos aquí, puedes:
- Consultar el repositorio de GitHub para problemas y soluciones
- Ejecutar con registro de depuración habilitado:
DEBUG=1 ./diffugen.sh "your prompt" - Contactar a los desarrolladores a través de los issues de GitHub
🌟 Contribuciones
¡Las contribuciones a DiffuGen son bienvenidas! Para contribuir:
- Haz un fork del repositorio
- Crea una rama de características
- Realiza tus cambios
- Envía un pull request
Asegúrate de que tu código siga los estándares de codificación del proyecto e incluya las pruebas adecuadas.
📄 Licencia
Este proyecto está licenciado bajo la Licencia Apache; consulta el archivo LICENSE para más detalles.
- Todos los modelos están licenciados bajo su respectiva distribución y no están de ninguna manera licenciados ni proporcionados por CLOUDWERX.DEV
- HuggingFace.co se usa para descargar modelos y no está afiliado de ninguna manera con CLOUDWERX.DEV
🙏 Agradecimientos
- stable-diffusion.cpp por la implementación optimizada en C++
- Stability AI por los modelos de Stable Diffusion
- Black Forest Labs por sus modelos Flux
- Hugging Face por los enlaces de descarga
- Todos los contribuyentes al protocolo MCP
📬 Contacto
- GitHub: CLOUDWERX-DEV
- Sitio web: cloudwerx.dev
- Correo: sysop@cloudwerx.dev
- Discord: Únete a nuestro servidor
______ __ ___ ___ _______
| _ \ |__|.' _|.' _|.--.--.| _ |.-----.-----.
|. | \| || _|| _|| | ||. |___|| -__| |
|. | \__||__| |__| |_____||. | ||_____|__|__|
|: 1 / |: 1 |
|::.. . / |::.. . |
`------' `-------'
Hecho con ❤️ por CLOUDWERX LAB