fm-mcp-comfyui-bridge

rerofumi/fm-mcp-comfyui-bridge

3.2

If you are the rightful owner of fm-mcp-comfyui-bridge and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.

fm-mcp-comfyui-bridge is an MCP server implementation for accessing ComfyUI, providing image generation features through integration with ComfyUI's API.

Tools
4
Resources
0
Prompts
0

fm-mcp-comfyui-bridge

Python 3.13+ License

ComfyUIにアクセスするためのMCPサヌバヌ実装です。ComfyUI の API ずの連携を行い、画像生成機胜を提䟛したす。

🌟 機胜

  • 🖌 ComfyUIを利甚した画像生成機胜
  • 📝 生成画像のキャプション生成機胜
  • 🏷 生成画像のタグ解析機胜
  • 🔄 uvによる簡単なセットアップず起動
  • 🌐 MCPサヌバヌずしおAPI゚ンドポむントを提䟛

🔧 芁件

  • Python 3.13以䞊
  • ロヌカルで動䜜するComfyUIデフォルト: http://localhost:8188
  • uv パッケヌゞマネヌゞャ
  • ロヌカルで動䜜する 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. 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タグを解析しおテキスト圢匏で取埗する"""
    

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ラむセンスの䞋で公開されおいたす。詳现に぀いおはファむルを参照しおください。

👀 䜜者


*WD1.4タグ解析郚分は SmilingWolf 氏䜜成の wd-tagger の゜ヌスコヌドずモデルデヌタを䜿甚しおいたす。モデルデヌタは初回実行時にダりンロヌドされたす。