fm-mcp-comfyui-bridge

fm-mcp-comfyui-bridge

LLM MCP server for image generation with ComfyUI

rerofumi

Developer Tools
Visit Server

README

fm-mcp-comfyui-bridge

Python 3.13+ License

ComfyUIにアクセスするためのMCPサーバー実装です。このサーバーはfm_comfyui_bridgeモジュールを使用してComfyUIとの連携を行い、画像生成機能を提供します。

🌟 機能

  • 🖼️ ComfyUIを利用した画像生成機能
  • 📝 生成画像のキャプション生成機能
  • 🏷️ 生成画像のタグ解析機能
  • 🔄 uvによる簡単なセットアップと起動
  • 🌐 MCPサーバーとしてAPIエンドポイントを提供

🔧 要件

  • Python 3.13以上
  • ローカルで動作するComfyUI(デフォルト: http://localhost:8188)
  • uv パッケージマネージャ

📥 インストール

uv がインストールされた環境を用意してください。

uvを使用したインストール

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

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

🚀 使用方法

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_lora.yaml src/fm_mcp_comfyui_bridge/config/lora.yaml
    
  2. コピーした lora.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
    vision_model: gemma3:27b
    
  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を使用するかどうか
    • vision_model: 画像解析でキャプションを生成する ollama の vision 対応モデル名

モデルファイルはComfyUIの適切なディレクトリに配置されている必要があります。

利用可能なツール

  1. generate_picture - プロンプトに基づいて画像を生成

    @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タグを解析してテキスト形式で取得する"""
    

サンプルプロンプト

"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 のドキュメント"""

📚 依存関係

主な依存関係は以下の通りです:

  • fm-comfyui-bridge>=0.7.0 - ComfyUIとの連携モジュール
  • 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ライセンスの下で公開されています。詳細についてはLICENSEファイルを参照してください。

👤 作者

  • rerofumi - GitHub - rero2@yuumu.org

fm-mcp-comfyui-bridgefm_comfyui_bridgeモジュールを活用したプロジェクトです。

WD1.4タグ解析部分は SmilingWolf 氏作成の wd-tagger のソースコードとモデルデータを使用しています。モデルデータは初回実行時にダウンロードされます。

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
MCP Package Docs Server

MCP Package Docs Server

Facilitates LLMs to efficiently access and fetch structured documentation for packages in Go, Python, and NPM, enhancing software development with multi-language support and performance optimization.

Featured
Local
TypeScript
Claude Code MCP

Claude Code MCP

An implementation of Claude Code as a Model Context Protocol server that enables using Claude's software engineering capabilities (code generation, editing, reviewing, and file operations) through the standardized MCP interface.

Featured
Local
JavaScript
@kazuph/mcp-taskmanager

@kazuph/mcp-taskmanager

Model Context Protocol server for Task Management. This allows Claude Desktop (or any MCP client) to manage and execute tasks in a queue-based system.

Featured
Local
JavaScript
Linear MCP Server

Linear MCP Server

Enables interaction with Linear's API for managing issues, teams, and projects programmatically through the Model Context Protocol.

Featured
JavaScript
mermaid-mcp-server

mermaid-mcp-server

A Model Context Protocol (MCP) server that converts Mermaid diagrams to PNG images.

Featured
JavaScript
Jira-Context-MCP

Jira-Context-MCP

MCP server to provide Jira Tickets information to AI coding agents like Cursor

Featured
TypeScript
Linear MCP Server

Linear MCP Server

A Model Context Protocol server that integrates with Linear's issue tracking system, allowing LLMs to create, update, search, and comment on Linear issues through natural language interactions.

Featured
JavaScript
Sequential Thinking MCP Server

Sequential Thinking MCP Server

This server facilitates structured problem-solving by breaking down complex issues into sequential steps, supporting revisions, and enabling multiple solution paths through full MCP integration.

Featured
Python