DiffuGen

by CLOUDWERX-DEV
Verified

local-only server

The server can only run on the client’s local machine because it depends on local resources.

Integrations

  • Powers the optimized Stable Diffusion backend through the stable-diffusion.cpp implementation

  • Package manager used for installing dependencies on Windows systems during the setup process

  • Desktop environment used during the development of DiffuGen on Linux Mint

DiffuGen: generador avanzado de imágenes locales con integración MCP

Nuevo : Ahora incluye compatibilidad con el servidor OpenAPI e integración con OpenWebUI OpenAPI Tools (se requiere la versión 0.60.0 de OWUI) para una generación y visualización de imágenes fluidas en las interfaces de chat. OpenAPI es independiente del servidor MCP y permite la integración en tus propios proyectos.

📃 Índice de contenidos

🚀 Introducción

DiffuGen es un potente sistema de generación de imágenes basado en MCP que integra modelos de IA de vanguardia directamente en su flujo de trabajo de desarrollo. Integra a la perfección los modelos Flux (Flux Schnell, Flux Dev) y las variantes de Stable Diffusion (SDXL, SD3, SD1.5) en una interfaz unificada, lo que le permite aprovechar las ventajas únicas de cada familia de modelos sin cambiar de herramienta. Con un control integral de parámetros y compatibilidad con múltiples GPU, DiffuGen escala desde bocetos conceptuales rápidos en hardware de bajo consumo hasta imágenes con 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 manteniendo 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 (Grandes Modelos de Lenguaje) acceder a herramientas y servicios personalizados. En resumen, un cliente MCP (como Cursor, Windsurf, Roo Code o Cline) puede realizar solicitudes a los 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 IDE compatibles envíen solicitudes de generación y reciban imágenes generadas.

El servidor expone dos herramientas principales:

  1. generate_stable_diffusion_image : Generar con modelos de difusión estable
  2. generate_flux_image : Generar con modelos Flux

Arquitectura técnica

DiffuGen consta de varios componentes clave:

  • setup-diffugen.sh : La utilidad de instalación completa y el 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 iniciador de scripts de shell que configura el entorno e inicia el servidor Python
  • diffugen.json : archivo de configuración de plantilla para la integración de MCP con varios IDE (para copiar en la configuración de MCP del IDE)
  • stable-diffusion.cpp : La implementación optimizada en C++ de Stable Diffusion utilizada para la generación de imágenes reales

El sistema funciona mediante:

  1. Recibir datos de solicitud y parámetros de un cliente MCP
  2. Procesando la solicitud a través del servidor Python
  3. Llamar al binario stable-diffusion.cpp con los parámetros apropiados
  4. Guardar la imagen generada en un directorio de salida configurado
  5. Devolver la ruta y los metadatos de la imagen generada al cliente

Acerca de stable-diffusion.cpp

stable-diffusion.cpp es una implementación en C++ altamente optimizada del algoritmo Stable Diffusion. En comparación con la implementación de referencia de Python, ofrece:

  • Velocidad de inferencia significativamente más rápida (hasta 3-4 veces más rápida)
  • Menor uso de memoria (funciona en GPU con tan solo 4 GB de VRAM)
  • Núcleos CUDA optimizados para GPU NVIDIA
  • Compatibilidad con diversos métodos de muestreo y formatos de modelos
  • Soporte para cuantificación de modelos para un mejor rendimiento
  • No hay dependencias de Python para el proceso de generación del núcleo

Esto permite a DiffuGen proporcionar una generación de imágenes de alta calidad con un rendimiento excepcional, incluso en configuraciones de hardware modestas.

✨ Características

  • Compatibilidad con múltiples modelos : genere imágenes utilizando varios modelos, incluidos Flux Schnell, Flux Dev, SDXL, SD3 y SD1.5
  • Integración con MCP : se integra perfectamente con IDE que admiten MCP (Cursor, Windsurf, Roo Code, Cline, etc.)
  • Servidor OpenAPI : interfaz API REST adicional para acceso HTTP directo a capacidades de generación de imágenes
  • Multiplataforma : funciona en Linux, macOS y Windows (vía nativa o WSL)
  • Control de parámetros : ajuste sus generaciones con controles para:
    • Dimensiones de la imagen (ancho/alto)
    • Pasos del muestreo
    • Escala CFG
    • Valores de semilla
    • Indicaciones negativas (solo para modelos SD, Flux no admite indicaciones negativas).
    • Métodos de muestreo
  • Aceleración CUDA : utiliza la aceleración de GPU para una generación de imágenes más rápida
  • Interfaz de lenguaje natural : genere imágenes utilizando comandos simples de lenguaje natural
  • Recuperación inteligente de errores : gestión robusta de errores con procedimientos de recuperación que tienen en cuenta las operaciones
  • Configuración fácil de usar : script de configuración interactivo con manejo de interrupciones mejorado
  • Seguimiento de recursos : gestión de recursos con reconocimiento de sesiones para una limpieza eficiente
  • Interfaz personalizable : compatibilidad con logotipos artísticos 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 : 8 GB de memoria del sistema
  • Almacenamiento : 5 GB de espacio libre en disco (se prefiere SSD para una carga más rápida del modelo)
  • Python : 3.8 o más reciente
  • 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 o más núcleos (Intel i7/i9 o AMD Ryzen 7/9)
  • RAM : 16 GB+ de memoria del sistema
  • GPU : GPU NVIDIA con 6 GB+ de VRAM (RTX 2060 o superior para un rendimiento óptimo)
  • Almacenamiento : más de 20 GB de espacio libre en SSD
  • Python : 3.10 o más reciente (3.11 ofrece el mejor rendimiento)
  • Red : Conexión de alta velocidad (más de 20 Mbps) para descargas de modelos eficientes

📥 Instalación

Instalación automática (recomendada)

La forma más sencilla de instalar DiffuGen es utilizando el script de instalació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

Siga las instrucciones interactivas para completar la instalación.

El script de configuración hará lo siguiente:

  • Instalar las dependencias necesarias
  • Clonar y compilar stable-diffusion.cpp
  • Configurar un entorno virtual de Python
  • Descargar modelos seleccionados (Nota: algunos modelos también requieren modelos Clip\VAE)
  • Configurar rutas de archivos para su sistema

Instalación manual

Si prefiere instalarlo manualmente, siga estos pasos:

  1. Clonar los repositorios:
git clone https://github.com/CLOUDWERX-DEV/diffugen.git cd DiffuGen git clone --recursive https://github.com/leejet/stable-diffusion.cpp
  1. Construya 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 ../..
  1. Crear y activar 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
  1. Descargue los modelos requeridos (estructura que se muestra a continuación):
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

Puede descargar los modelos de 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 del modelo puede tardar un poco dependiendo de tu conexión a internet. El modelo SDXL tiene aproximadamente 6 GB, el SD3 unos 13 GB, el SD1.5 unos 4 GB y los modelos Flux entre 8 y 13 GB cada uno.

  1. Actualizar rutas de archivos en la configuración:

Establecer 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 confianza para todas las configuraciones. El flujo de trabajo es el siguiente:

  1. Edite diffugen.json en el directorio raíz de DiffuGen con la configuración deseada
  2. Ejecute la opción 5 en setup_diffugen.sh para actualizar automáticamente las rutas en este archivo
  3. Copie el contenido de diffugen.json al archivo de configuración MCP de su IDE

El archivo contiene todas las configuraciones necesarias:

  • Rutas de archivo (comando, SD_CPP_PATH, models_dir, output_dir)
  • Parámetros del modelo predeterminados (pasos, cfg_scale, sampling_method)
  • Configuración de uso de VRAM
  • Metadatos para la integración 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 de IDE

Configuración con cursor

  1. Descargar e instalar Cursor
  2. Vaya a Configuración del cursor > MCP y haga clic en "Agregar nuevo servidor MCP global".
  3. Copie el contenido del archivo diffugen.json de su DiffuGen y péguelo en ~/.cursor/mcp.json
  4. Actualizar servidores MCP en Configuración > MCP
  5. Utilice 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

  1. Descargar e instalar Windsurf
  2. Vaya a Windsurf > Configuración > Configuración avanzada o Paleta de comandos > Abrir página de configuración de Windsurf
  3. Desplácese hacia abajo hasta la sección Cascada y haga clic en "Agregar servidor" > "Agregar servidor personalizado +"
  4. Copie el contenido del archivo diffugen.json de su DiffuGen y péguelo en ~/.codeium/windsurf/mcp_config.json
  5. Utilice DiffuGen a través de la interfaz de chat de Cascade

Configuración con Roo Code

  1. Descargar e instalar Roo Code
  2. Localice el archivo de configuración MCP para Roo Code
  3. Copie el contenido del archivo diffugen.json de su DiffuGen en la configuración MCP de Roo Code
  4. Utilice DiffuGen a través de la función de asistente de IA

Configuración con Cline

  1. Descargue e instale Cline
  2. Copie el contenido del archivo diffugen.json de DiffuGen en la configuración MCP de Cline
  3. Utilice DiffuGen a través del chat de IA o la interfaz de comandos

Configuración con Claude en Anthropic Console

Claude puede usar DiffuGen si lo ha configurado como servidor MCP en su sistema. Al solicitarle a Claude que genere imágenes, especifique el uso de DiffuGen y proporcione los parámetros que desea 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ía 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 funciones de generación de imágenes de DiffuGen. Esto se suma a la integración con MCP y puede ser útil para:

  • Acceso directo a la API HTTP
  • Integración con otras herramientas que no admiten MCP
  • Aplicaciones personalizadas que necesitan acceso programático

Para obtener instrucciones de configuración detalladas y opciones de configuración avanzadas, consulte la Guía de integración de OpenAPI .

Para iniciar el servidor OpenAPI:

python diffugen_openapi.py

El servidor se puede configurar para usar un host o puerto diferente si es necesario. Por defecto, se ejecuta en:

  • Anfitrión: 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 de forma predeterminada. Si no se puede acceder a este directorio, el servidor creará automáticamente un directorio output en el directorio de trabajo actual. Las imágenes se sirven a través del punto de conexión /images .

Integración con OpenWebUI

  1. Abra la configuración de OpenWebUI (icono de engranaje)
  2. Vaya a la sección "Herramientas"
  3. Haga clic en el botón "+" para agregar un nuevo servidor de herramientas
  4. Introduzca los siguientes datos:
  5. Haga 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 puntos finales estarán disponibles:

  • generate_stable_image_generate_stable_post : Generar con difusión estable
  • generate_flux_image_endpoint_generate_flux_post : Generar con modelos Flux
  • list_models_models_get : Lista de 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 solicitudes 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 mejores resultados:

ModeloPasos predeterminadosEscala CFG predeterminadaMejor para
Flux-schnell81.0Borradores rápidos, imágenes conceptuales
desarrollo de flujo201.0Generaciones de flujo de mejor calidad
sdxl207.0Imágenes detalladas de alta calidad
sd3207.0Última generación con buena calidad.
sd15207.0Modelo de línea base clásico

Estos parámetros predeterminados se pueden personalizar agregando una sección default_params al archivo de configuración MCP de su 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 necesita especificar los parámetros que desea anular: cualquier valor no especificado utilizará los valores predeterminados integrados.

Nota : Para obtener ejemplos y recomendaciones de líneas de comandos específicas del modelo, consulte la sección Recomendaciones de parámetros específicos del modelo .

Solicitar a un LLM que genere imágenes

A continuación se muestran ejemplos de cómo pedirle 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 del 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 utilizar 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 utilizando 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 utilizar con DiffuGen (aplicables tanto a la interfaz MCP como a la línea de comandos):

ParámetroDescripciónPor defectoValores válidosBandera de línea de comandos
modeloEl modelo a utilizar para la generaciónflujo-schnell/sd15flujo-schnell, flujo-dev, sdxl, sd3, sd15--modelo
anchoAncho de la imagen en píxeles512256-2048--ancho
alturaAltura de la imagen en píxeles512256-2048--altura
pasosNúmero de pasos de difusiónespecífico del modelo1-100--pasos
escala cfgEscala de orientación sin clasificadorespecífico del modelo0,1-30,0--cfg-scale
semillaSemilla aleatoria para reproducibilidad-1 (aleatorio)-1 o cualquier número entero--semilla
método de muestreoMétodo de muestreo por difusiónEulereuler, euler_a, heun, dpm2, dpm++2s_a, dpm++2m, dpm++2mv2, mcm--método de muestreo
mensaje negativoElementos a evitar en la imagen"" (vacío)Cualquier cadena de texto--mensaje negativo
directorio_de_salidaDirectorio para guardar imágenesDefinido por configuraciónRuta válida--directorio-de-salida

Estos parámetros se pueden especificar al solicitar 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/AI Assistant : parameter=value (p. ej., model=sdxl, width=768, height=512 )
  • En la línea de comandos : --parameter value (por ejemplo, --model sdxl --width 768 --height 512 )

Los valores predeterminados se seleccionan para ofrecer buenos resultados desde el primer momento con un tiempo de espera mínimo. Para obtener imágenes de mayor calidad, considere aumentar los pasos o cambiar a modelos como sdxl.

Recomendaciones de parámetros específicos del modelo

Nota : Estas recomendaciones se basan en la sección Parámetros predeterminados por modelo y proporcionan ejemplos prácticos.

Para obtener mejores resultados al utilizar modelos específicos a través de la línea de comando:

Modelos de flujo (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 de parámetros predeterminados

La interfaz de línea de comandos de DiffuGen utiliza los siguientes valores predeterminados si no se especifica lo contrario en la configuración:

  • Modelo predeterminado: si no se especifica, se utilizan modelos apropiados para la función (flux-schnell para funciones Flux, sd15 para funciones SD)
  • Método de muestreo predeterminado: euler (mejor para modelos de flujo)
  • Escala CFG predeterminada: 1.0 para modelos Flux, 7.0 para modelos SD estándar
  • Pasos predeterminados: 8 para flux-schnell, 20 para otros modelos
  • Dimensiones predeterminadas: 512 x 512 píxeles

Al usar la línea de comandos, no es necesario especificar estos parámetros a menos que desee sobrescribir los predeterminados. Si utiliza parámetros específicos con frecuencia, considere agregarlos a su 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.
  • Puede generar múltiples imágenes en secuencia ejecutando el comando varias veces
  • Para el procesamiento por lotes, considere crear un script de shell que llame a DiffuGen con diferentes parámetros
  • Para ver todas las opciones de línea de comandos disponibles, ejecute ./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 utiliza un único enfoque de configuración centrado en el archivo diffugen.json :

  1. Archivo de configuración principal : diffugen.json en el directorio raíz de DiffuGen es la única fuente de verdad para todas las configuraciones
  2. Integración IDE : copie el contenido de diffugen.json al archivo de configuración MCP de su IDE
  3. Variables de entorno : para un uso avanzado, puede anular la configuración con variables de entorno

Anulaciones de variables de entorno

Para un uso avanzado, puede anular la configuración mediante variables de entorno:

  • SD_CPP_PATH : Anula la ruta a stable-diffusion.cpp
  • DIFFUGEN_OUTPUT_DIR : Anula el directorio de salida
  • DIFFUGEN_DEFAULT_MODEL : Anular el modelo predeterminado
  • DIFFUGEN_VRAM_USAGE : Anular la configuración de uso de VRAM
  • CUDA_VISIBLE_DEVICES : Controla qué GPU se utilizan para la generación

Configuración de configuraciones específicas de IDE

DiffuGen permite tener diferentes configuraciones para distintos IDE mediante el uso de variables de entorno en la configuración MCP de cada IDE. Esto permite mantener un único archivo diffugen.json base y personalizar los parámetros por IDE.

La prioridad de configuración funciona de la siguiente manera:

  1. Variables de entorno (máxima prioridad)
  2. Configuración del archivo diffugen.json local (configuración base)

Ejemplo: diferentes directorios de salida para diferentes IDE

Para el 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 configuraciones 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 le permite personalizar el comportamiento de DiffuGen por IDE mientras sigue utilizando la misma instalación subyacente.

Elementos clave de configuración

Comando y argumentos

  • comando : Ruta completa al script diffugen.sh (debe ser la ruta absoluta)
  • args : argumentos adicionales de la línea de comandos para pasar al script (normalmente se dejan vacíos)

Variables de entorno

  • CUDA_VISIBLE_DEVICES : Controla qué GPU se utilizan para la generación
    • "0" : utiliza solo la primera GPU
    • "1" : utiliza solo la segunda GPU
    • "0,1" : utilizar tanto la primera como la segunda GPU
    • "-1" : Deshabilitar CUDA y usar solo CPU
  • SD_CPP_PATH : Ruta al directorio de instalación de stable-diffusion.cpp
    • Esto se utiliza para localizar el binario stable-diffusion.cpp y los modelos
  • default_model : El modelo predeterminado que se utilizará cuando no se especifique ninguno

Configuración de recursos

  • models_dir : Directorio que contiene los archivos del modelo
    • Debe apuntar al directorio models dentro de su instalación stable-diffusion.cpp
  • 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 la memoria según la VRAM disponible
    • "minimal" : utiliza una VRAM mínima a costa de la velocidad
    • "balanced" : Equilibrar el uso de la memoria y la velocidad (predeterminado)
    • "maximum" : utiliza la máxima VRAM disponible para obtener el mejor rendimiento

Opciones específicas de IDE

Cada IDE tiene opciones específicas que puedes personalizar en el archivo diffugen.json :

Opciones del 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

Puede personalizar los parámetros predeterminados para 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 utilizar el script de configuración automática, se crea un archivo diffugen.json configurado correctamente con las rutas correctas para su sistema cuando ejecuta la opción 5. Para integrar DiffuGen con su IDE:

  1. Ejecute la opción 5 en setup_diffugen.sh para actualizar las rutas en diffugen.json
  2. Copiar todo el contenido del archivo diffugen.json generado
  3. Péguelo en el archivo de configuración MCP de su IDE (por ejemplo, ~/.cursor/mcp.json )
  4. Reinicie su 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 la configuración de DiffuGen.

📃 Uso avanzado

El módulo Python DiffuGen se puede importar y utilizar programáticamente en sus 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 utilizar el servidor OpenAPI mediante programación 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

  1. Modelos faltantes o rutas incorrectas
    • Asegúrese de que todos los archivos del modelo se descarguen y se coloquen en los directorios correctos
    • Compruebe que las rutas en el archivo de configuración estén configuradas correctamente
    • Verificar que los permisos de archivo permitan el acceso de lectura a los archivos del modelo
  2. Problemas con CUDA/GPU
    • Asegúrese de que sus controladores NVIDIA estén actualizados
    • Establezca CUDA_VISIBLE_DEVICES para apuntar a una GPU específica
    • Si se queda sin VRAM, intente utilizar un modelo más pequeño o reducir las dimensiones.
  3. Problemas de calidad de la imagen
    • Aumentar pasos para una mejor calidad (a costa del tiempo de generación)
    • Ajuste la escala CFG: más alta para una adherencia más rápida, más baja para la creatividad
    • Pruebe diferentes métodos de muestreo (dpm++2m suele proporcionar buenos resultados)
    • Utilice indicaciones más detalladas con descripciones de estilo específicas
  4. Errores de permisos de archivos
    • Asegúrese de que el directorio de salida pueda ser escrito por el usuario que ejecuta DiffuGen
    • Compruebe que todos los scripts tengan permisos de ejecución ( chmod +x diffugen.sh )

Obtener ayuda

Si encuentra problemas que no se abordan aquí, puede:

  • Consulte el repositorio de GitHub para encontrar problemas y soluciones
  • Ejecutar con el registro de depuración habilitado: DEBUG=1 ./diffugen.sh "your prompt"
  • Contacte a los desarrolladores a través de problemas de GitHub

🌟 Contribuyendo

¡Agradecemos sus contribuciones a DiffuGen! Para contribuir:

  1. Bifurcar el repositorio
  2. Crear una rama de características
  3. Realiza tus cambios
  4. Enviar una solicitud de extracción

Asegúrese de que su código siga los estándares de codificación del proyecto e incluya pruebas adecuadas.

📄 Licencia

Este proyecto está licenciado bajo la licencia Apache: consulte el archivo de LICENCIA para obtener más detalles.

  • Todos los modelos tienen licencia de su respectiva distribución y no están autorizados ni proporcionados de ninguna manera por CLOUDWERX.DEV.
  • HuggingFace.co se utiliza para descargar modelos y no está afiliado de ninguna manera con CLOUDWERX.DEV

🙏 Agradecimientos

📬 Contacto

______ __ ___ ___ _______ | _ \ |__|.' _|.' _|.--.--.| _ |.-----.-----. |. | \| || _|| _|| | ||. |___|| -__| | |. | \__||__| |__| |_____||. | ||_____|__|__| |: 1 / |: 1 | |::.. . / |::.. . | `------' `-------'
ID: i88tidr5w9