使用说明
StableDiffusion MCP 服务器
概要
StableDiffusion MCP 服务器模型上下文协议(MCP)来修改标记元素的显示属性StableDiffusion等图像生成模型Claude等LLM中所述修改相应参数的值。通过使用此服务器LLM可以根据自然语言的指示实时生成图像。
主要功能
- 从文本生成图像
- 从现有图像生成新图像
- 多个StableDiffusion支持型号(从SD1.5SD3.5),模板名称将采用不同的格式
- Stable Diffusion 3/3.5模型对应
- 动态切换和进度显示模型
- 快速启动模式(以轻量模型启动,然后装入较重的模型)
- 生成图像的保存和管理
- MCP通过协议LLM协作
必要要件
- Python 3.10以上
- CUDA支持的显卡(推荐)、Apple Silicon的神经引擎(MPS),或者CPU
- 依赖包:
- fastmcp>=2.0.0
- diffusers >= 0.28.0(SD3/3.5模型支持)
- 变压器>=4.36.0
- 火炬>=2.0.0
- 枕头>=10.0.0
- 加速>=0.25.0
WSL在环境中使用
WSL(Windows Subsystem for Linux)中选择新的扶手类型,来修改默认的扶手Stable Diffusion建议分配足够的内存来加载模型(如SD3.5)。
配置内存分配
.wslconfig 文件(C:\Users\<ユーザー名>\.wslconfig),以增加内存和交换大小:
[wsl2]
memory=48GB
swap=8GB
推奨设定:
- 内存:32GB以上(对于大型模型为48GB以上建议)
- 交换:8GB以上
在动态输入提示中单击PowerShell或者在命令提示符下运行以下命令WSL重新启动:
wsl --shutdown
下次WSL中所述修改相应参数的值。
安装
# リポジトリをクローン
git clone https://github.com/hawkymisc/stable-diffusion-mcp.git
cd stable-diffusion-mcp
# 依存パッケージのインストール
pip install -r requirements.txt
用法
启动服务器
使用标准输入/输出(stdio)(Claude Desktop等客户端)
python sdxl_mcp_server.py
SSE使用传输(从Web应用程序等使用时)
python sdxl_mcp_server.py --transport sse --host 0.0.0.0 --port 8080
快速启动模式
默认情况下,服务器处于快速启动模式。这将在启动时首先加载轻量级的“SD-1.5”模型,系统可访问后,将异步加载设置的默认模型(同样是“SD-1.5”)。这个功能config.py可设置为:
QUICK_STARTUP = True # 高速起動モードを有効化/無効化
STARTUP_MODEL = "sd-1.5" # 起動時に使用する軽量モデル
DEFAULT_MODEL = "sd-1.5" # 最終的にロードするデフォルトモデル
默认模型也可以更改为更高性能的“sd3.5-large-turbo”等。
MCP作为服务器Claude注册
Claude Desktop等客户端MCP必须注册服务器。例如Claude Desktop那么设置如下:
- Claude Desktop打开配置菜单
- MCP打开设置
- 新的MCP添加服务器
- 在工作空间的边缘
python /path/to/sdxl_mcp_server.py的双曲正切值 - 保存并开始使用
使用示例(Claude对话)
ユーザー:夕日の海岸線の美しい写真を生成してください。波が打ち寄せるシーンがいいです。
Claude:夕日の海岸線の写真を生成します。波が打ち寄せるシーンですね。
[ツールを使用: generate_image_from_text]
夕日の海岸線の美しい写真を生成しました。金色に輝く夕日が海面を照らし、波が砂浜に打ち寄せている様子が表現されています。
可用的工具和资源
工具
-
generate_image_from_text
- 从文本提示生成图像
- パラメータ:prompt、negative_prompt、width、height、num_inference_steps、guidance_scale、seed、model_id
- 注意: 如果服务器正在加载模型或正在执行其他图像生成过程,则该工具返回错误。在动态输入提示中单击
enqueue_image请使用工具。
-
transform_image_from_image
- 以现有图像为基础生成新图像
- パラメータ:input_image、prompt、negative_prompt、strength、num_inference_steps、guidance_scale、seed、model_id
- 注意: 如果服务器正在加载模型或正在执行其他图像生成过程,则该工具返回错误。在动态输入提示中单击
enqueue_image请使用工具。
-
switch_model
- 使用StableDiffusion切换模型(在后台启动加载并立即返回响应)
- 参数:model_id
- 注意:实际加载进度和完成情况 list_available_models 工具和 check_loading_status 请调用工具确认
-
list_available_models
- 获取所有可用模型及其信息
-
check_loading_status
- 返回当前模型加载进度。
-
check_system_status
- 返回整个服务器的处理状态(IDLE、LOADING、GENERATING)。
-
enqueue_image
- 在队列中注册来自文本提示的图像生成请求。
- パラメータ:prompt、negative_prompt、width、height、num_inference_steps、guidance_scale、seed、model_id
- 返回值:
request_id和当前队列大小
-
get_queue_status
- 返回队列中的请求状态(pending,processing,completed,error)。
-
获取请求状态
- 指定的
request_id中所述修改相应参数的值。
- 指定的
资源
-
images/{image_id}
- 指定的ID画像
-
images/{image_id}/元数据
- 指定的ID获取图像的元数据
-
图片/{page}/list
- 获取保存的图像列表
- 参数:page, limit, skip
-
模型/{filter}/list
- 获取所有可用模型信息
-
models/{model_id}/current
- 获取当前使用的模型信息
支持的模型
目前支持以下型号:
- SD-1.5:快速轻便的基本模型(默认启动模型)
- SD-2.1:平衡画质和速度的模型
- SDXL底座:可生成高品质图像XL模型
- SD3中等: Stable Diffusion 3系统的中间模型
- SD3.5中等: Stable Diffusion 3.5 Medium模型(高质量图像生成)
- SD3.5大型涡轮机:最新SD3.5系统的快速模型(默认主模型)
添加/设置模型
config.py通过编辑文件,可以更改可用的模型和各种设置。
# モデル関連の設定
MODELS = {
"sdxl-base": {
"name": "stabilityai/stable-diffusion-xl-base-1.0",
"description": "Stable Diffusion XL Base 1.0 モデル",
"type": "txt2img",
"width": 1024,
"height": 1024,
},
"sd3.5-medium": {
"name": "stabilityai/stable-diffusion-3.5-medium",
"description": "Stable Diffusion 3.5 Medium モデル",
"type": "txt2img_img2img",
"width": 1024,
"height": 1024,
"recommended_dtype": "bfloat16",
},
"sd3.5-large-turbo": {
"name": "stabilityai/stable-diffusion-3.5-large-turbo",
"description": "Stable Diffusion 3.5 Large Turbo モデル",
"type": "txt2img",
"width": 1024,
"height": 1024,
"recommended_dtype": "bfloat16",
},
# 他のモデルを追加
}
许可证
这个项目MIT在许可证下提供。了解更多信息LICENSE请参见文件。