⭐ 新功能:现在包括OpenAPI服务器支持和OpenWebUI OpenAPI工具(需要OWUI版本0.60.0)集成,实现聊天界面中无缝图像生成和显示!OpenAPI与MCP服务器分离,允许您将其整合到自己的项目中!
DiffuGen是一个基于MCP的强大图像生成系统,它将前沿的AI模型直接带入您的开发工作流。它无缝集成了Flux模型(Flux Schnell,Flux Dev)和Stable Diffusion变种(SDXL,SD3,SD1.5),提供统一的界面,让您能够充分利用每个模型家族的独特优势,而无需切换工具。凭借全面的参数控制和多GPU支持,DiffuGen从在适度硬件上的快速概念草图到高性能系统上的生产质量视觉效果都能胜任。
基于高度优化的stable-diffusion.cpp实现,即使在适度硬件上,DiffuGen也能提供卓越性能并保持高质量输出。
MCP(模型上下文协议)是一种使大型语言模型(LLMs)能够访问自定义工具和服务的协议。简单来说,一个MCP客户端(如Cursor,Windsurf,Roo Code或Cline)可以向MCP服务器发送请求以访问它们提供的工具。
DiffuGen作为一个MCP服务器,提供了文本到图像生成的能力。它实现了MCP协议,允许兼容的IDE发送生成请求并接收生成的图像。
该服务器暴露了两个主要工具:
generate_stable_diffusion_image:使用Stable Diffusion模型生成generate_flux_image:使用Flux模型生成DiffuGen由几个关键组件组成:
系统的工作方式如下:
stable-diffusion.cpp是Stable Diffusion算法的高度优化的C++实现。与Python参考实现相比,它提供了:
这使得DiffuGen能够在适度硬件设置下提供高质量图像生成和卓越性能。
最简单的安装DiffuGen的方法是使用提供的设置脚本:
git clone https://github.com/CLOUDWERX-DEV/diffugen.git
cd DiffuGen
chmod +x diffugen.sh
chmod +x setup_diffugen.sh
./setup_diffugen.sh
按照交互式提示完成安装。
设置脚本将:
如果您希望手动安装,请遵循以下步骤:
git clone https://github.com/CLOUDWERX-DEV/diffugen.git
cd DiffuGen
git clone --recursive https://github.com/leejet/stable-diffusion.cpp
cd stable-diffusion.cpp
mkdir -p build && cd build
使用CUDA:
cmake .. -DCMAKE_BUILD_TYPE=Release -DSD_CUDA=ON
make -j$(nproc)
cd ../..
不使用CUDA:
cmake .. -DCMAKE_BUILD_TYPE=
make -j$(nproc)
cd ../..
python3 -m venv diffugen_env
source diffugen_env/bin/activate # 在Windows上:diffugen_env\Scripts\activate
pip install -r requirements.txt
stable-diffusion.cpp/models/
├── ae.sft # VAE模型
├── clip_l.safetensors # CLIP模型
├── flux/
│ ├── flux1-schnell-q8_0.gguf # Flux Schnell模型(默认)
│ └── flux1-dev-q8_0.gguf # Flux Dev模型
├── sd3-medium.safetensors # SD3模型
├── sdxl-1.0-base.safetensors # SDXL模型
├── sdxl_vae-fp16-fix.safetensors # SDXL VAE
├── t5xxl_fp16.safetensors # T5模型
└── v1-5-pruned-emaonly.safetensors # SD1.5模型
可以从以下来源下载模型:
# 创建模型目录
mkdir -p stable-diffusion.cpp/models/flux
# Flux模型
# Flux Schnell - 快速生成模型(Q8量化,需要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 - 开发模型,质量更好(Q8量化,需要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
# Flux所需的模型
# T5XXL文本编码器
curl -L https://huggingface.co/Sanami/flux1-dev-gguf/resolve/main/t5xxl_fp16.safetensors -o stable-diffusion.cpp/models/t5xxl_fp16.safetensors
# CLIP-L文本编码器
curl -L https://huggingface.co/Sanami/flux1-dev-gguf/resolve/main/clip_l.safetensors -o stable-diffusion.cpp/models/clip_l.safetensors
# 图像解码的VAE
curl -L https://huggingface.co/pretentioushorsefly/flux-models/resolve/main/models/vae/ae.safetensors -o stable-diffusion.cpp/models/ae.sft
# Stable Diffusion模型
# SDXL 1.0基础模型(需要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(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(独立)
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(独立)
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
注意:根据您的互联网连接情况,模型下载可能需要很长时间。SDXL模型大约6GB,SD3约13GB,SD1.5约4GB,每个Flux模型8-13GB。
设置shell脚本为可执行:
chmod +x diffugen.sh
配置方法:
DiffuGen使用单个配置文件(diffugen.json)作为所有设置的事实来源。工作流程如下:
diffugen.json文件,设置您想要的设置setup_diffugen.sh中的选项5,自动更新此文件中的路径diffugen.json的内容复制到IDE的MCP配置文件中该文件包含所有必要的设置:
{
"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": "嵌入代码中的AI艺术工作室。通过这个强大的MCP服务器,您可以生成、迭代和完善视觉概念,适用于Cursor,Windsurf和其他兼容IDE,利用前沿的Flux和Stable Diffusion模型,而不影响您的开发流程。",
"author": "CLOUDWERX LAB",
"homepage": "https://github.com/CLOUDWERX-DEV/diffugen",
"usage": "使用两种主要方法生成图像:\n1. 标准生成:'生成[描述]的图像',带有可选参数:\n - 模型:从flux-schnell(默认)、flux-dev、sdxl、sd3、sd15中选择\n - 尺寸:宽度和高度(默认:512x512)\n - 步骤:扩散步数(默认:20,较低值可加快生成速度)\n - cfg_scale:指导比例(默认:7.0,较低值可增加创意自由度)\n - 种子:用于可重复结果(-1表示随机)\n - 采样方法:euler,euler_a(默认),heun,dpm2,dpm++2s_a,dpm++2m,dpm++2mv2,lcm\n - 负面提示:指定要避免的图像元素\n2. 快速Flux生成:'生成[描述]的Flux图像',以较少的步骤(默认:4)获得更快的结果"
},
"cursorOptions": {
"autoApprove": true,
"category": "图像生成",
"icon": "🖼️",
"displayName": "DiffuGen"
},
"windsurfOptions": {
"displayName": "DiffuGen",
"icon": "🖼️",
"category": "创意工具"
},
"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",
"sd