DiffuGen
一个强大的图像生成系统,利用多个 Stable Diffusion 模型(flux-schnell、flux-dev、sdxl、sd3、sd15)来创建具有精确定制的高质量 AI 生成图像。
README
DiffuGen - 带有 MCP 集成的高级本地图像生成器
<p align="center"> <img src="diffugen.png" alt="DiffuGen Logo" width="400"/> </p>
<p align="center"> <em>您的 AI 艺术工作室直接嵌入在代码中。通过这个强大的 MCP 服务器,为 Cursor、Windsurf 和其他兼容的 IDE 生成、迭代和完善视觉概念,利用最先进的 Flux 和 Stable Diffusion 模型,而不会中断您的开发过程。</em> </p>
<p align="center"> <a href="https://github.com/CLOUDWERX-DEV/diffugen/stargazers"><img src="https://img.shields.io/github/stars/CLOUDWERX-DEV/diffugen" alt="Stars Badge"/></a> <a href="https://github.com/CLOUDWERX-DEV/diffugen/network/members"><img src="https://img.shields.io/github/forks/CLOUDWERX-DEV/diffugen" alt="Forks Badge"/></a> <a href="https://github.com/CLOUDWERX-DEV/diffugen/issues"><img src="https://img.shields.io/github/issues/CLOUDWERX-DEV/diffugen" alt="Issues Badge"/></a> <a href="https://github.com/CLOUDWERX-DEV/diffugen/blob/master/LICENSE"><img src="https://img.shields.io/github/license/CLOUDWERX-DEV/diffugen" alt="License Badge"/></a> </p>
⭐ 新功能: 现在包括 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 可以从适度硬件上的快速概念草图扩展到高性能系统上的生产质量视觉效果。
DiffuGen 构建在高度优化的 stable-diffusion.cpp 实现之上,即使在适度的硬件上也能提供出色的性能,同时保持高质量的输出。
🧠 了解 MCP 和 DiffuGen
什么是 MCP?
MCP(模型上下文协议)是一种使 LLM(大型语言模型)能够访问自定义工具和服务的协议。简单来说,MCP 客户端(如 Cursor、Windsurf、Roo Code 或 Cline)可以向 MCP 服务器发出请求,以访问它们提供的工具。
DiffuGen 作为 MCP 服务器
DiffuGen 充当 MCP 服务器,提供文本到图像的生成功能。它实现了 MCP 协议,允许兼容的 IDE 发送生成请求并接收生成的图像。
该服务器公开了两个主要工具:
generate_stable_diffusion_image: 使用 Stable Diffusion 模型生成generate_flux_image: 使用 Flux 模型生成
技术架构
DiffuGen 由几个关键组件组成:
- setup-diffugen.sh: 完整的安装实用程序以及模型下载器和管理器
- diffugen.py: 实现 MCP 服务器功能并定义生成工具的核心 Python 脚本
- diffugen.sh: 设置环境并启动 Python 服务器的 shell 脚本启动器
- diffugen.json: 用于 MCP 与各种 IDE 集成的模板配置文件(要复制到 IDE 的 MCP 配置中)
- stable-diffusion.cpp: 用于实际图像生成的 Stable Diffusion 的优化 C++ 实现
系统的工作方式是:
- 从 MCP 客户端接收提示和参数数据
- 通过 Python 服务器处理请求
- 使用适当的参数调用 stable-diffusion.cpp 二进制文件
- 将生成的图像保存到配置的输出目录
- 将生成的图像的路径和元数据返回给客户端
关于 stable-diffusion.cpp
stable-diffusion.cpp 是 Stable Diffusion 算法的高度优化 C++ 实现。与 Python 参考实现相比,它提供:
- 显着更快的推理速度(高达 3-4 倍)
- 更低的内存使用量(可在 VRAM 低至 4GB 的 GPU 上运行)
- 针对 NVIDIA GPU 优化的 CUDA 内核
- 支持各种采样方法和模型格式
- 支持模型量化以获得更好的性能
- 核心生成过程没有 Python 依赖项
这使得 DiffuGen 即使在适度的硬件设置上也能提供具有卓越性能的高质量图像生成。
✨ 特性
- 多模型支持: 使用各种模型生成图像,包括 Flux Schnell、Flux Dev、SDXL、SD3 和 SD1.5
- MCP 集成: 与支持 MCP 的 IDE(Cursor、Windsurf、Roo Code、Cline 等)无缝集成
- OpenAPI 服务器: 额外的 REST API 接口,用于直接 HTTP 访问图像生成功能
- 跨平台: 适用于 Linux、macOS 和 Windows(通过原生或 WSL)
- 参数控制: 通过以下控制微调您的生成:
- 图像尺寸(宽度/高度)
- 采样步数
- CFG 比例
- 种子值
- 负面提示(仅适用于 SD 模型,Flux 不支持负面提示。)
- 采样方法
- CUDA 加速: 利用 GPU 加速实现更快的图像生成
- 自然语言界面: 使用简单的自然语言命令生成图像
- 智能错误恢复: 具有操作感知恢复程序的强大错误处理
- 用户友好的设置: 具有改进的中断处理的交互式设置脚本
- 资源跟踪: 用于高效清理的会话感知资源管理
- 可自定义的界面: 支持自定义 ANSI 艺术徽标和视觉增强
💻 系统要求
最低要求:
- CPU: 4 核处理器(Intel i5/AMD Ryzen 5 或同等产品)
- RAM: 8GB 系统内存
- 存储: 5GB 可用磁盘空间(首选 SSD 以加快模型加载速度)
- Python: 3.8 或更高版本
- GPU: 集成显卡或入门级独立 GPU(可选)
- 网络: 用于模型下载的宽带连接(5+ Mbps)
推荐要求:
- CPU: 8+ 核处理器(Intel i7/i9 或 AMD Ryzen 7/9)
- RAM: 16GB+ 系统内存
- GPU: 具有 6GB+ VRAM 的 NVIDIA GPU(RTX 2060 或更高版本以获得最佳性能)
- 存储: 20GB+ 可用 SSD 空间
- Python: 3.10 或更高版本(3.11 提供最佳性能)
- 网络: 高速连接(20+ Mbps)以实现高效的模型下载
📥 安装
自动安装(推荐)
安装 DiffuGen 的最简单方法是使用提供的设置脚本:
git clone https://github.com/CLOUDWERX-DEV/diffugen.git
cd DiffuGen
chmod +x diffugen.sh
chmod +x setup_diffugen.sh
./setup_diffugen.sh
按照交互式提示完成安装。
设置脚本将:
- 安装必要的依赖项
- 克隆并构建 stable-diffusion.cpp
- 设置 Python 虚拟环境
- 下载选定的模型(注意:某些模型也需要 Clip\VAE 模型)
- 配置系统的文件路径
手动安装
如果您喜欢手动安装,请按照以下步骤操作:
- 克隆存储库:
git clone https://github.com/CLOUDWERX-DEV/diffugen.git
cd DiffuGen
git clone --recursive https://github.com/leejet/stable-diffusion.cpp
- 构建 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=Release
make -j$(nproc)
cd ../..
- 创建并激活 Python 虚拟环境:
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 根目录中编辑
diffugen.json,设置所需的设置 - 在
setup_diffugen.sh中运行选项 5 以自动更新此文件中的路径 - 将
diffugen.json的内容复制到 IDE 的 MCP 配置文件
该文件包含所有必要的设置:
- 文件路径(command、SD_CPP_PATH、models_dir、output_dir)
- 默认模型参数(steps、cfg_scale、sampling_method)
- VRAM 使用设置
- 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": "您的 AI 艺术工作室直接嵌入在代码中。通过这个强大的 MCP 服务器,为 Cursor、Windsurf 和其他兼容的 IDE 生成、迭代和完善视觉概念,利用最先进的 Flux 和 Stable Diffusion 模型,而不会中断您的开发过程。",
"author": "CLOUDWERX LAB",
"homepage": "https://github.com/CLOUDWERX-DEV/diffugen",
"usage": "使用两种主要方法生成图像:\n1. 标准生成:'生成 [描述] 的图像',带有可选参数:\n - model:从 flux-schnell(默认)、flux-dev、sdxl、sd3、sd15 中选择\n - dimensions:宽度和高度(默认:512x512)\n - steps:扩散步数(默认:20,较低的值可加快生成速度)\n - cfg_scale:引导比例(默认:7.0,较低的值可获得更大的创作自由)\n - seed:用于可重现的结果(-1 表示随机)\n - sampling_method:euler、euler_a(默认)、heun、dpm2、dpm++2s_a、dpm++2m、dpm++2mv2、lcm\n - negative_prompt:指定要避免在图像中出现的元素\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",
"sd3": "euler",
"sd15": "euler"
}
}
}
}
}
🔧 IDE 设置说明
使用 Cursor 设置
- 下载并安装 Cursor
- 转到 Cursor 设置 > MCP,然后单击“添加新的全局 MCP 服务器”
- 复制 DiffuGen 的
diffugen.json文件的内容 并将其粘贴到~/.cursor/mcp.json中 - 在设置 > MCP 中刷新 MCP 服务器
- 通过打开 AI 聊天面板(Ctrl+K 或 Cmd+K)并请求图像生成来使用 DiffuGen
使用 Windsurf 设置
- 下载并安装 Windsurf
- 导航到 Windsurf > 设置 > 高级设置或命令面板 > 打开 Windsurf 设置页面
- 向下滚动到 Cascade 部分,然后单击“添加服务器”>“添加自定义服务器 +”
- 复制 DiffuGen 的
diffugen.json文件的内容 并将其粘贴到~/.codeium/windsurf/mcp_config.json中 - 通过 Cascade 聊天界面使用 DiffuGen
使用 Roo Code 设置
- 下载并安装 Roo Code
- 找到 Roo Code 的 MCP 配置文件
- 将 DiffuGen 的
diffugen.json文件的内容复制 到 Roo Code 的 MCP 配置中 - 通过 AI 助手功能使用 DiffuGen
使用 Cline 设置
- 下载并安装 Cline
- 将 DiffuGen 的
diffugen.json文件的内容复制 到 Cline 的 MCP 设置中 - 通过 AI 聊天或命令界面使用 DiffuGen
在 Anthropic Console 中使用 Claude 设置
如果您已将其设置为系统上的 MCP 服务器,则 Claude 可以使用 DiffuGen。 当要求 Claude 生成图像时,请明确说明使用 DiffuGen 并提供要使用的参数。
🎮 使用
要手动启动 DiffuGen 服务器:
cd /path/to/diffugen
./diffugen.sh
或者直接使用 Python:
cd /path/to/diffugen
python -m diffugen
服务器成功启动后,您应该会看到:DiffuGen ready。
OpenAPI 服务器使用
OpenAPI 服务器提供了一个 REST API 接口,用于直接 HTTP 访问 DiffuGen 的图像生成功能。 这是对 MCP 集成的补充,可用于:
- 直接 HTTP API 访问
- 与不支持 MCP 的其他工具集成
- 需要以编程方式访问的自定义应用程序
有关详细的设置说明和高级配置选项,请参阅 OpenAPI 集成指南。
要启动 OpenAPI 服务器:
python diffugen_openapi.py
如果需要,可以将服务器配置为使用不同的主机或端口。 默认情况下,它在以下位置运行:
- 主机:0.0.0.0
- 端口:8080
服务器将在 http://0.0.0.0:8080 上可用,交互式文档位于 http://0.0.0.0:8080/docs。
生成的图像默认保存到 /output 目录。 如果无法访问此目录,服务器将自动在当前工作目录中创建一个 output 目录。 图像通过 /images 端点提供。
OpenWebUI 集成
- 打开 OpenWebUI 设置(齿轮图标)
- 导航到“工具”部分
- 单击“+”按钮以添加新的工具服务器
- 输入以下详细信息:
- URL:http://0.0.0.0:5199
- API 密钥:(留空)
- 单击“保存”
添加后,当单击聊天界面中的工具图标时,DiffuGen 将出现在可用工具列表中。 以下端点将可用:
generate_stable_image_generate_stable_post: 使用 Stable Diffusion 生成generate_flux_image_endpoint_generate_flux_post: 使用 Flux 模型生成list_models_models_get: 列出可用模型
使用 curl 的示例:
curl -X POST "http://0.0.0.0:5199/generate/flux" \
-H "Content-Type: application/json" \
-d '{"prompt": "美丽的日落", "model": "flux-schnell"}'
使用 Python requests 的示例:
import requests
response = requests.post(
"http://0.0.0.0:5199/generate/flux",
json={
"prompt": "美丽的日落",
"model": "flux-schnell"
}
)
result = response.json()
按模型的默认参数
每个模型都有特定的默认参数,这些参数经过优化以获得最佳结果:
| 模型 | 默认步数 | 默认 CFG 比例 | 最适合 |
|---|---|---|---|
| flux-schnell | 8 | 1.0 | 快速草稿,概念图像 |
| flux-dev | 20 | 1.0 | 更好的质量 flux 生成 |
| sdxl | 20 | 7.0 | 高质量的详细图像 |
| sd3 | 20 | 7.0 | 具有良好质量的最新一代 |
| sd15 | 20 | 7.0 | 经典基线模型 |
可以通过将 default_params 部分添加到 IDE 的 MCP 配置文件来自定义这些默认参数:
"default_params": {
"steps": {
"flux-schnell": 12, // 自定义步数以获得更好的质量
"sdxl": 30 // 增加步数以获得更详细的 SDXL 图像
},
"cfg_scale": {
"sd15": 9.0 // 更高的 cfg_scale 以获得更强的提示遵循
}
}
您只需要指定要覆盖的参数 - 任何未指定的值都将使用内置的默认值。
注意: 有关特定于模型的命令行示例和建议,请参阅 模型特定参数建议 部分。
要求 LLM 生成图像
以下是如何要求 AI 助手使用 DiffuGen 生成图像的示例:
基本请求:
生成一张猫玩纱线的图像
创建一张带有飞行汽车的未来城市景观的图片
带有模型规范:
使用 sdxl 模型生成一张中世纪城堡的图像
创建一张山脉上日落的 flux 图像
带有高级参数:
生成一张赛博朋克街景的图像,model=flux-dev, width=768, height=512, steps=25, cfg_scale=1.0, seed=42
创建一张带有 model=sd15, width=512, height=768, steps=30, cfg_scale=7.5, sampling_method=dpm++2m, negative_prompt=blurry, low quality, distorted 的奇幻角色的插图
参数参考
DiffuGen 可以通过以下基本语法从命令行使用:
./diffugen.sh "您的提示在此处" [选项]
示例:
./diffugen.sh "带有飞行汽车的未来城市景观"
此命令使用默认参数(flux-schnell 模型、512x512 分辨率等)生成图像,并将其保存到配置的输出目录。
以下是可以与 DiffuGen 一起使用的参数(适用于 MCP 界面和命令行):
| 参数 | 描述 | 默认值 | 有效值 | 命令行标志 |
|---|---|---|---|---|
| model | 用于生成的模型 | flux-schnell/sd15 | flux-schnell, flux-dev, sdxl, sd3, sd15 | --model |
| width | 图像宽度(以像素为单位) | 512 | 256-2048 | --width |
| height | 图像高度(以像素为单位) | 512 | 256-2048 | --height |
| steps | 扩散步数 | 模型特定 | 1-100 | --steps |
| cfg_scale | 无分类器引导比例 | 模型特定 | 0.1-30.0 | --cfg-scale |
| seed | 用于可重现性的随机种子 | -1(随机) | -1 或任何整数 | --seed |
| sampling_method | 扩散采样方法 | euler | euler, euler_a, heun, dpm2, dpm++2s_a, dpm++2m, dpm++2mv2, lcm | --sampling-method |
| negative_prompt | 要避免在图像中出现的元素 | ""(空) | 任何文本字符串 | --negative-prompt |
| output_dir | 保存图像的目录 | 配置定义 | 有效路径 | --output-dir |
可以在要求 AI 助手生成图像或使用命令行界面时指定这些参数。 参数根据界面以不同的格式传递:
- 在 MCP/AI 助手 中:
parameter=value(例如,model=sdxl, width=768, height=512) - 在命令行中:
--parameter value(例如,--model sdxl --width 768 --height 512)
选择默认值是为了提供开箱即用的良好结果,并最大限度地缩短等待时间。 为了获得更高质量的图像,请考虑增加步数或切换到像 sdxl 这样的模型。
模型特定参数建议
注意: 这些建议建立在 按模型的默认参数 部分的基础上,并提供实际示例。
为了在使用命令行通过特定模型获得最佳结果:
Flux 模型 (flux-schnell, flux-dev)
# Flux-Schnell (最快)
./diffugen.sh "充满活力的彩色抽象画" \
--model flux-schnell \
--cfg-scale 1.0 \
--sampling-method euler \
--steps 8
# Flux-Dev (更好的质量)
./diffugen.sh "带有山脉和城堡的详细奇幻景观" \
--model flux-dev \
--cfg-scale 1.0 \
--sampling-method euler \
--steps 20
标准 SD 模型 (sdxl, sd3, sd15)
# SDXL (最高质量)
./diffugen.sh "凯尔特战士的超现实主义肖像" \
--model sdxl \
--cfg-scale 7.0 \
--sampling-method dpm++2m \
--steps 30
# SD15 (经典模型)
./diffugen.sh "日落时的照片级真实景观" \
--model sd15 \
--cfg-scale 7.0 \
--sampling-method euler_a \
--steps 20
默认参数更改
如果未在配置中另行指定,DiffuGen 的命令行界面使用以下默认值:
- 默认模型:如果未指定,则使用适合功能的模型(Flux 功能使用 flux-schnell,SD 功能使用 sd15)
- 默认采样方法:
euler(最适合 Flux 模型) - 默认 CFG 比例:Flux 模型为
1.0,标准 SD 模型为7.0 - 默认步数:flux-schnell 为
8,其他模型为20 - 默认尺寸:512x512 像素
使用命令行时,除非您想覆盖默认值,否则无需指定这些参数。 如果您经常使用特定参数,请考虑将它们添加到您的配置文件中,而不是在每个命令行上指定它们。
命令行使用说明
- 生成的图像将保存到配置的输出目录中,文件名基于时间戳和参数
- 您可以通过多次运行命令来按顺序生成多个图像
- 对于批量处理,请考虑创建一个 shell 脚本,该脚本使用不同的参数调用 DiffuGen
- 要查看所有可用的命令行选项,请运行
./diffugen.sh --help - 同一个引擎为 MCP 界面和命令行工具提供支持,因此质量和功能是相同的
⚙️ 配置
配置方法
DiffuGen 使用围绕 diffugen.json 文件的单一配置方法:
- 主配置文件: DiffuGen 根目录中的
diffugen.json是所有设置的单一真实来源 - IDE 集成: 将
diffugen.json的内容复制到 IDE 的 MCP 配置文件 - 环境变量: 对于高级用法,您可以使用环境变量覆盖设置
环境变量覆盖
对于高级用法,您可以使用环境变量覆盖设置:
SD_CPP_PATH: 覆盖 stable-diffusion.cpp 的路径DIFFUGEN_OUTPUT_DIR: 覆盖输出目录DIFFUGEN_DEFAULT_MODEL: 覆盖默认模型DIFFUGEN_VRAM_USAGE: 覆盖 VRAM 使用设置CUDA_VISIBLE_DEVICES: 控制用于生成的 GPU
设置 IDE 特定配置
DiffuGen 允许您通过在每个 IDE 的 MCP 配置中使用环境变量来为不同的 IDE 设置不同的配置。 这使您可以维护单个基本 diffugen.json,同时为每个 IDE 自定义参数。
配置优先级的工作方式如下:
- 环境变量(最高优先级)
- 来自本地
diffugen.json文件的设置(基本配置)
示例:不同 IDE 的不同输出目录
对于 Cursor(在 ~/.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"
}
对于 Windsurf(在 ~/.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"
}
示例:不同的默认模型和 VRAM 设置
"env": {
"CUDA_VISIBLE_DEVICES": "0",
"SD_CPP_PATH": "/path/to/stable-diffusion.cpp",
"default_model": "flux-dev",
"DIFFUGEN_VRAM_USAGE": "maximum"
}
这种方法使您可以自定义 DiffuGen 在每个 IDE 中的行为,同时仍然使用相同的底层安装。
关键配置元素
命令和参数
- command:
diffugen.sh脚本的完整路径(必须是绝对路径) - args: 要传递给脚本的其他命令行参数(通常留空)
环境变量
-
CUDA_VISIBLE_DEVICES: 控制用于生成的 GPU
"0": 仅使用第一个 GPU"1": 仅使用第二个 GPU"0,1": 同时使用第一个和第二个 GPU"-1": 禁用 CUDA 并仅使用 CPU
-
SD_CPP_PATH: stable-diffusion.cpp 安装目录的路径
- 用于查找 stable-diffusion.cpp 二进制文件和模型
-
default_model: 未指定时要使用的默认模型
资源配置
-
models_dir: 包含模型文件的目录
- 应指向 stable-diffusion.cpp 安装中的
models目录
- 应指向 stable-diffusion.cpp 安装中的
-
output_dir: 将保存生成的图像的目录
- 必须可由运行 DiffuGen 的用户写入
-
vram_usage: 控制 VRAM 使用策略
"adaptive": 根据可用的 VRAM 自动调整内存使用量"minimal": 以速度为代价使用最少的 VRAM"balanced": 平衡内存使用量和速度(默认)"maximum": 使用最大可用 VRAM 以获得最佳性能
IDE 特定选项
每个 IDE 都有可以在 diffugen.json 文件中自定义的特定选项:
Cursor 选项
"cursorOptions": {
"autoApprove": true,
"category": "图像生成",
"icon": "🖼️",
"displayName": "DiffuGen"
}
Windsurf 选项
"windsurfOptions": {
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。