image-gen MCP Server について
image-gen は、Stable Diffusion WebUI API(ForgeUI/AUTOMATIC-1111)を通じてテキストから画像を生成する MCP サーバーです。--api フラグを有効にして起動した WebUI インスタンスが必要で、自前の SD 環境を MCP クライアントから利用したい方に向いています。
主な機能
- 01generate_image ツールによるテキストからの画像生成
- 02SD モデルの一覧取得と切り替え
- 03アップスケーラーの一覧取得と画像の一括アップスケール
- 04出力先ディレクトリとアップスケールの既定値の設定
活用シーン
- 01MCP クライアントからプロンプトに基づいて画像を生成する
- 02生成済みの画像を一括でアップスケールする
- 03セルフホストした WebUI でモデルを切り替える
MCP 対応
本プロジェクトは MCP サーバーであり、generate_image、get_sd_models、set_sd_model、get_sd_upscalers、upscale_images をツールとして MCP クライアントに公開します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
image-gen MCP サーバー
Stable Diffusion WebUI API(ForgeUI/AUTOMATIC-1111)を使用したテキストから画像を生成する機能を提供する MCP サーバーです。
インストール
前提条件
- Node.js
- API が有効になっている Stable Diffusion WebUI インスタンスへのアクセス
- WebUI の起動時に
--apiフラグを有効にする必要があります
セットアップ
- リポジトリをクローンします:
git clone https://github.com/Ichigo3766/image-gen-mcp.git
cd image-gen-mcp
- 依存関係をインストールします:
npm install
- サーバーをビルドします:
npm run build
- サーバー設定を環境に追加します:
{
"mcpServers": {
"image-gen": {
"command": "node",
"args": [
"/path/to/image-gen-mcp/build/index.js"
],
"env": {
"SD_WEBUI_URL": "http://your-sd-webui-url:7860",
"SD_AUTH_USER": "your-username", // Optional: if authentication is enabled
"SD_AUTH_PASS": "your-password", // Optional: if authentication is enabled
"SD_OUTPUT_DIR": "/path/to/output/directory",
"SD_RESIZE_MODE": "0", // Optional: upscaling mode (0=multiplier, 1=dimensions)
"SD_UPSCALE_MULTIPLIER": "4", // Optional: default upscale multiplier
"SD_UPSCALE_WIDTH": "512", // Optional: default upscale width
"SD_UPSCALE_HEIGHT": "512", // Optional: default upscale height
"SD_UPSCALER_1": "R-ESRGAN 4x+", // Optional: default primary upscaler
"SD_UPSCALER_2": "None" // Optional: default secondary upscaler
}
}
}
}
環境変数を各自の値に置き換えてください:
SD_WEBUI_URL:Stable Diffusion WebUI インスタンスの URLSD_AUTH_USER:ベーシック認証のユーザー名(有効な場合)SD_AUTH_PASS:ベーシック認証のパスワード(有効な場合)SD_OUTPUT_DIR:生成された画像の保存先ディレクトリSD_RESIZE_MODE:デフォルトのアップスケールモード(倍率の場合は 0、サイズ指定の場合は 1)SD_UPSCALE_MULTIPLIER:resize_mode が 0 の場合のデフォルトのアップスケール倍率SD_UPSCALE_WIDTH:resize_mode が 1 の場合のデフォルトの目標幅SD_UPSCALE_HEIGHT:resize_mode が 1 の場合のデフォルトの目標高さSD_UPSCALER_1:デフォルトのメインアップスケーラーモデルSD_UPSCALER_2:デフォルトのサブアップスケーラーモデル
機能
ツール
-
generate_image- Stable Diffusion を使用して画像を生成します- パラメーター:
prompt(必須):生成したい画像のテキストによる説明negative_prompt:画像に含めないものsteps:サンプリングのステップ数(デフォルト:4、範囲:1~150)width:画像の幅(デフォルト:1024、範囲:512~2048)height:画像の高さ(デフォルト:1024、範囲:512~2048)cfg_scale:CFG スケール(デフォルト:1、範囲:1~30)sampler_name:サンプリングアルゴリズム(デフォルト:"Euler")scheduler_name:スケジューラーアルゴリズム(デフォルト:"Simple")seed:ランダムシード(ランダムの場合は -1)batch_size:生成する画像の枚数(デフォルト:1、最大:4)restore_faces:顔の修復を有効にしますtiling:タイル状に配置できる画像を生成しますoutput_path:生成した画像のカスタム出力パス
- パラメーター:
-
get_sd_models- 利用可能な Stable Diffusion モデルの一覧を取得します- パラメーターは不要です
- モデル名の配列を返します
-
set_sd_model- アクティブな Stable Diffusion モデルを設定します- パラメーター:
model_name(必須):アクティブに設定するモデルの名前
- パラメーター:
-
get_sd_upscalers- 利用可能なアップスケーラーモデルの一覧を取得します- パラメーターは不要です
- アップスケーラー名の配列を返します
-
upscale_images- Stable Diffusion を使用して 1 枚以上の画像をアップスケールします- パラメーター:
images(必須):アップスケールする画像ファイルパスの配列resize_mode:倍率モードの場合は 0、サイズ指定モードの場合は 1(デフォルト:環境変数から取得)upscaling_resize:resize_mode=0 の場合のアップスケール倍率(デフォルト:環境変数から取得)upscaling_resize_w:resize_mode=1 の場合の目標幅(ピクセル単位、デフォルト:環境変数から取得)upscaling_resize_h:resize_mode=1 の場合の目標高さ(ピクセル単位、デフォルト:環境変数から取得)upscaler_1:メインアップスケーラーモデル(デフォルト:環境変数から取得)upscaler_2:サブアップスケーラーモデル(デフォルト:環境変数から取得)output_path:アップスケールした画像のカスタム出力ディレクトリ
- パラメーター:
開発
自動再ビルドを有効にした開発の場合:
npm run watch
エラー処理
よくある問題と解決方法:
- Stable Diffusion WebUI が
--apiフラグを指定して実行されていることを確認してください - MCP サーバーの実行環境から WebUI の URL にアクセスできることを確認してください
- 認証を使用している場合は、認証情報が正しいことを確認してください
- 出力ディレクトリが存在し、書き込み権限があることを確認してください
- アップスケールする場合は、入力画像ファイルが存在し、読み取り可能であることを確認してください
ライセンス
この MCP サーバーは MIT License の下でライセンスされています。MIT License の条項に従う限り、このソフトウェアを自由に使用、変更、配布できます。詳しくは、プロジェクトリポジトリの LICENSE ファイルをご覧ください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。