ComfyUI图像生成服务

一个提供ComfyUI API集成的MCP服务器实现,支持图像生成、标题生成和标签解析功能。

  • by rerofumi
  • Python
  • 本地部署
  • 3 星标
  • 更新于
在 GitHub 查看 rerofumi/fm-mcp-comfyui-bridge

使用说明

fm-mcp康菲伊大桥

ComfyUI访问MCP服务器实现。ComfyUI 的,之API 的合作,提供图像生成功能。

🌟 机能

  • 🖼️ ComfyUI利用画像生成机能
  • 📝 生成图像的说明生成功能
  • 🏷️ 生成图像的标记解析功能
  • 🔄 uv易于安装和启动
  • 🌐 MCP作为服务器API提供端点

🔧 要件

  • Python 3.13以上
  • 在本地运行ComfyUI(默认值:http://localhost:8188)
  • 紫外线 包管理器
  • 在本地运行ollama 画像识别vision model

📥 安装

uv 中所述修改相应参数的值。

uv使用安装

# リポジトリをクローン
git clone https://github.com/rerofumi/fm-mcp-comfyui-bridge.git
cd fm-mcp-comfyui-bridge

# uvを使用して依存関係をインストール
uv pip install -e .

ComfyUI 的,之workflow 确认是否动作

src\fm_mcp_comfyui_bridge\config\workflow\ 在下面json 打开文件ComfyUI 中描述的场景,使用以下步骤创建明细表,以便在概念设计中分析体量的体积。 如果有不够的自定义节点,请安装。

🚀 使用方法

MCP设置为服务器

使用代理工具的MCP请按以下方式设置设置

{
  "mcpServers": {
    "fm-mcp-comfyui-bridge": {
      "command": "uv",
      "args": [
        "--directory",
        "(インストールしたディレクトリ)/fm-mcp-comfyui-bridge",
        "run",
        "fm-mcp-comfyui-bridge"
      ],
    }
  }
}

ComfyUI端点设置

默认情况下ComfyUI的终点是 http://localhost:8188 中所述修改相应参数的值。根据需要 main.py 中所述修改相应参数的值。

Lora配置

必须创建用于图像生成的模型设置文件。请按照以下步骤进行设置:

  1. 复制示例配置文件:

    cp src/fm_mcp_comfyui_bridge/config/sample_config.yaml src/fm_mcp_comfyui_bridge/config/config.yaml
    
  2. 复制的 config.yaml 编辑文件并设置要使用的模型名称:

    checkpoint: (使いたいチェックポイントモデル名).safetensors
    image-size:
      height: 1024
      width: 1024
    lora:
    - enabled: false
      model: (使いたいLoRAモデル名).safetensors
      strength: 1.0
      trigger: 
    sampling:
      cfg: 5
      steps: 24
    vpred: true
    
  3. 设置项目说明:

    • checkpoint:要使用的基本模型的文件名(例如:animagine-xl-3.0.safetensors)
    • image-size:设置要生成的图像的大小
    • lora: LoRA模型设置
      • enabled: LoRA是否启用(true在工作空间的边缘false)
      • model:使用LoRA模型文件名
      • strength: LoRA的适用强度(0.0~1.0)
      • trigger: LoRA触发字
    • sampling:采样设置
      • cfg: CFG缩放值
      • steps:生成步骤数
    • vpred: v-prediction是否使用

模型文件是ComfyUI中所述修改相应参数的值。

ollama配置

获取生成图像的说明ollama 使用vision 必须创建模型配置文件。请按照以下步骤进行设置:

ollama.yaml 编辑

  • vision_model:在图像分析中生成说明ollama 的,之vision 对应模型名称

可用工具

  1. 生成图片 -根据提示生成图像

    @mcp.tool()
    def generate_picture(prompt: str) -> str:
        """生成したいプロンプトを渡すことで画像生成を依頼し、生成された image の url を返す"""
    
  2. get_picture -指定图像的PNG获取二进制数据

    @mcp.tool()
    def get_picture(subfolder: str, filename: str) -> Image:
        """subfolder と filename を指定して画像の PNG バイナリを取得する"""
    
  3. get_caption -以文本格式获取图像说明

    @mcp.tool()
    def get_caption(subfolder: str, filename: str) -> str:
        """subfolder と filename を指定して生成した画像のキャプションをテキスト形式で取得する"""
    
  4. get_tag -从图像WD1.4分析和检索标记

    @mcp.tool()
    def get_tag(subfolder: str, filename: str) -> str:
        """subfolder と filename を指定して生成した画像からWD1.4タグを解析してテキスト形式で取得する"""
    

custom workflow 利用期间

src\fm_mcp_comfyui_bridge\config\workflow\ 在…下面API 格式workflow 可以放置文件并将其作为自定义工作流运行。

src\fm_mcp_comfyui_bridge\config\custom.yaml 将条目添加到文档注册表。 如果不存在,则执行默认工作流。

example/ 在目录中放置示例自定义工作流文件。 config 中描述的场景,使用以下步骤创建明细表,以便在概念设计中分析体量的体积。Flux1-dev 进行动态观察时的轴心点。

有关自定义工作流的详细信息,请参见README_custom_workflow.md。

示例提示

"1girl, cute cat ear maid" で画像を生成してください

画像生成後 画像のキャプションを表示

WD14タグを表示

画像生成のプロンプトが以下に添付されています。
まずはユーザーがこのプロンプトでどんな絵を描かせようとしているかを分析してください。
ユーザーの意図に対しプロンプトが不向き、もしくはより良い表現がある場合は意図を崩さない範囲で修正を加えて構いません。

ユーザーが与えたプロンプトを comfyui MCP を使って画像にしてください、comfyui に与える prompt は英語しか受け付けないのでプロンプトは必ず英語、それもできるだけ danbooru tag に翻訳して generate を依頼してください。generate の実行結果として返る文字列はURLです、生成の結果としてその URL を以下の markdown フォーマットで表示してください。
![{生成結果URL}]({生成結果URL})

danbooru tag におけるクオリティタグは以下です、頭に必ず追加するようにしてください。
"masterpiece, best quality, newest,"

生成されたリンクは画像ファイルへのリンクです。リンクのパラメータにある subfolder と filename を使って comfyui MCP の get_caption と get_tag 両方を取得して、画像に何が映っていたかを確認してください。それらキャプション&タグ情報と目指しているプロンプトを分析し異なっていたら、元のプロンプトの意図へ近づけるよう、より良いプロンプトになるよう編集し、画像生成を繰り返してください。プロンプトで指示してもその単語が認識されないことがあります。一つの表現に固執するのではなく、目指しているものを別の表現で実現することを目指してみてください。
最大で 8回繰り返しながらより良いプロンプトを構築していきます。
## prompt
女の子と猫とリビング。窓から暖かい春の日差しが差し込んでいて、その暖かい光を受けて猫と女の子が居眠りをしている。部屋はフローリングだが、ラグとクッションがあり、そのクッションを枕にしている。寝る女の子の頭に猫がすり寄っていて、仲がよさそう。穏やかな日常の風景。

API资源

@mcp.resource("info://about")
def get_info() -> str:
    """サーバー情報"""

@mcp.resource("help://tools")
def get_tools_help() -> str:
    """ツールのヘルプ"""

@mcp.resource("docs://{topic}")
def get_documents(topic: str) -> str:
    """tool のドキュメント"""

📚 依存关系

主要依赖关系如下:

  • mcp[cli]>=1.6.0 - MCP服务器框架
  • requests>=2.32.3 - HTTP请求处理
  • huggingface-hub>=0.25.2 - Hugging Face模型存储库访问
  • numpy>=2.1.2 -数字计算库
  • ollama>=0.3.3 -本地LLM支持
  • onnxruntime>=1.19.2 - ONNX模型执行环境
  • pandas>=2.2.3 -数据分析库

📄 许可证

这个项目MIT在许可证下公开。了解更多信息许可证请参见文件。

👤 作者

  • 铁路 - GitHub - rero2@yuumu.org

*WD1.4标记分析部分SmilingWolf 创建 wd标记器 中所述修改相应参数的值。模型数据将在首次运行时下载。