图像生成服务器

StableDiffusion MCP 服务器通过 Model Context Protocol (MCP) 协议,使 Claude 等 LLM 能够利用 StableDiffusion 等图像生成模型,实现自然语言指令下的实时图像生成。

  • by hawkymisc
  • Python
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 hawkymisc/stable-diffusion-mcp

使用说明

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那么设置如下:

  1. Claude Desktop打开配置菜单
  2. MCP打开设置
  3. 新的MCP添加服务器
  4. 在工作空间的边缘 python /path/to/sdxl_mcp_server.py 的双曲正切值
  5. 保存并开始使用

使用示例(Claude对话)

ユーザー:夕日の海岸線の美しい写真を生成してください。波が打ち寄せるシーンがいいです。

Claude:夕日の海岸線の写真を生成します。波が打ち寄せるシーンですね。
[ツールを使用: generate_image_from_text]

夕日の海岸線の美しい写真を生成しました。金色に輝く夕日が海面を照らし、波が砂浜に打ち寄せている様子が表現されています。

可用的工具和资源

工具

  1. generate_image_from_text

    • 从文本提示生成图像
    • パラメータ:prompt、negative_prompt、width、height、num_inference_steps、guidance_scale、seed、model_id
    • 注意: 如果服务器正在加载模型或正在执行其他图像生成过程,则该工具返回错误。在动态输入提示中单击enqueue_image 请使用工具。
  2. transform_image_from_image

    • 以现有图像为基础生成新图像
    • パラメータ:input_image、prompt、negative_prompt、strength、num_inference_steps、guidance_scale、seed、model_id
    • 注意: 如果服务器正在加载模型或正在执行其他图像生成过程,则该工具返回错误。在动态输入提示中单击enqueue_image 请使用工具。
  3. switch_model

    • 使用StableDiffusion切换模型(在后台启动加载并立即返回响应)
    • 参数:model_id
    • 注意:实际加载进度和完成情况 list_available_models 工具和 check_loading_status 请调用工具确认
  4. list_available_models

    • 获取所有可用模型及其信息
  5. check_loading_status

    • 返回当前模型加载进度。
  6. check_system_status

    • 返回整个服务器的处理状态(IDLE、LOADING、GENERATING)。
  7. enqueue_image

    • 在队列中注册来自文本提示的图像生成请求。
    • パラメータ:prompt、negative_prompt、width、height、num_inference_steps、guidance_scale、seed、model_id
    • 返回值:request_id 和当前队列大小
  8. get_queue_status

    • 返回队列中的请求状态(pending,processing,completed,error)。
  9. 获取请求状态

    • 指定的 request_id 中所述修改相应参数的值。

资源

  1. images/{image_id}

    • 指定的ID画像
  2. images/{image_id}/元数据

    • 指定的ID获取图像的元数据
  3. 图片/{page}/list

    • 获取保存的图像列表
    • 参数:page, limit, skip
  4. 模型/{filter}/list

    • 获取所有可用模型信息
  5. 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请参见文件。

参考资料