local-only server
The server can only run on the client’s local machine because it depends on local resources.
Integrations
Powers the optimized Stable Diffusion backend through the stable-diffusion.cpp implementation
Package manager used for installing dependencies on Windows systems during the setup process
Desktop environment used during the development of DiffuGen on Linux Mint
DiffuGen - MCP統合による高度なローカル画像ジェネレータ
⭐新機能:OpenAPI サーバーサポートと OpenWebUI OpenAPI ツール (OWUI バージョン 0.60.0 以降が必要) の統合により、チャットインターフェースでのシームレスな画像生成と表示が可能になりました。OpenAPI は MCP サーバーとは独立しており、独自のプロジェクトへの導入が可能です。
📃 目次
🚀 はじめに
DiffuGenは、最先端のAIモデルを開発ワークフローに直接組み込むことができる、MCPベースの強力な画像生成システムです。Fluxモデル(Flux Schnell、Flux Dev)とStable Diffusionバリアント(SDXL、SD3、SD1.5)の両方を統一されたインターフェースにシームレスに統合し、ツールを切り替えることなく各モデルファミリーの独自の強みを活用できます。包括的なパラメータ制御とマルチGPUサポートを備えたDiffuGenは、小規模なハードウェアでの迅速なコンセプトスケッチから、高性能システムでのプロダクション品質のビジュアルまで、幅広い用途に対応します。
DiffuGen は、高度に最適化されたstable-diffusion.cpp実装の上に構築されており、高品質の出力を維持しながら、適度なハードウェアでも優れたパフォーマンスを提供します。
🧠 MCPとDiffuGenについて
MCPとは何ですか?
MCP(モデルコンテキストプロトコル)は、LLM(大規模言語モデル)がカスタムツールやサービスにアクセスできるようにするプロトコルです。簡単に言うと、MCPクライアント(Cursor、Windsurf、Roo Code、Clineなど)は、MCPサーバーにリクエストを送信して、サーバーが提供するツールにアクセスできます。
MCP サーバーとしての DiffuGen
DiffuGenは、テキストから画像を生成する機能を提供するMCPサーバーとして機能します。MCPプロトコルを実装することで、互換性のあるIDEが生成リクエストを送信し、生成された画像を受信できるようになります。
サーバーは 2 つの主要なツールを公開します。
generate_stable_diffusion_image
: 安定拡散モデルで生成するgenerate_flux_image
: Flux モデルで生成する
技術アーキテクチャ
DiffuGen はいくつかの主要コンポーネントで構成されています。
- setup-diffugen.sh : 完全なインストールユーティリティとモデルダウンローダーおよびマネージャー
- diffugen.py : MCPサーバ機能を実装し、生成ツールを定義するコアPythonスクリプト
- diffugen.sh : 環境を設定し、Python サーバーを起動するシェル スクリプト ランチャー
- diffugen.json : さまざまな IDE との MCP 統合用のテンプレート構成ファイル (IDE の MCP 構成にコピーされます)
- stable-diffusion.cpp : 実際の画像生成に使用される Stable Diffusion の最適化された C++ 実装
システムは次のように機能します:
- MCPクライアントからプロンプトとパラメータデータを受信する
- Pythonサーバーを介してリクエストを処理する
- 適切なパラメータで stable-diffusion.cpp バイナリを呼び出す
- 生成された画像を設定された出力ディレクトリに保存する
- 生成された画像のパスとメタデータをクライアントに返す
stable-diffusion.cppについて
stable-diffusion.cppは、安定拡散アルゴリズムの高度に最適化された C++ 実装です。Python リファレンス実装と比較して、以下の特徴を備えています。
- 推論速度が大幅に向上(最大3~4倍高速)
- メモリ使用量の削減(4GB VRAM の GPU でも動作)
- NVIDIA GPU向けに最適化されたCUDAカーネル
- さまざまなサンプリング方法とモデル形式のサポート
- パフォーマンス向上のためのモデル量子化のサポート
- コア生成プロセスにPythonに依存しない
これにより、DiffuGen は、控えめなハードウェア セットアップでも、優れたパフォーマンスで高品質の画像生成を提供できます。
✨ 特徴
- 複数のモデルのサポート: Flux Schnell、Flux Dev、SDXL、SD3、SD1.5 などのさまざまなモデルを使用して画像を生成します。
- MCP 統合: MCP (Cursor、Windsurf、Roo Code、Cline など) をサポートする IDE とシームレスに統合します。
- OpenAPI サーバー: 画像生成機能への直接 HTTP アクセスのための追加の REST API インターフェース
- クロスプラットフォーム: Linux、macOS、Windows (ネイティブまたは WSL 経由) で動作します
- パラメータ制御: 以下のコントロールを使用して生成を微調整します。
- 画像のサイズ(幅/高さ)
- サンプリング手順
- CFGスケール
- シード値
- 否定プロンプト (SD モデルのみ、Flux は否定プロンプトをサポートしていません。)
- サンプリング方法
- CUDAアクセラレーション:GPUアクセラレーションを利用してより高速な画像生成を実現します
- 自然言語インターフェース: シンプルな自然言語コマンドを使用して画像を生成します
- スマートエラーリカバリ: 操作を考慮したリカバリ手順による堅牢なエラー処理
- ユーザーフレンドリーなセットアップ: 割り込み処理が改善された対話型セットアップ スクリプト
- リソーストラッキング: 効率的なクリーンアップのためのセッション対応リソース管理
- カスタマイズ可能なインターフェース: カスタム ANSI アート ロゴとビジュアル強化のサポート
💻 システム要件
最小要件:
- CPU : 4コアプロセッサ(Intel i5/AMD Ryzen 5または同等品)
- RAM : 8GBのシステムメモリ
- ストレージ: 5GB の空きディスク容量 (モデルの読み込みを高速化するには SSD が推奨)
- Python : 3.8以降
- GPU : 統合グラフィックスまたはエントリーレベルの専用GPU(オプション)
- ネットワーク: モデルのダウンロードにはブロードバンド接続 (5 Mbps 以上)
推奨要件:
- CPU : 8コア以上のプロセッサ(Intel i7/i9またはAMD Ryzen 7/9)
- RAM : 16GB以上のシステムメモリ
- GPU : 6GB以上のVRAMを搭載したNVIDIA GPU(最適なパフォーマンスを得るにはRTX 2060以上)
- ストレージ: 20GB以上のSSD空き容量
- Python : 3.10 以降 (3.11 が最高のパフォーマンスを提供します)
- ネットワーク: 効率的なモデルのダウンロードのための高速接続 (20 Mbps 以上)
📥 インストール
自動インストール(推奨)
DiffuGen をインストールする最も簡単な方法は、提供されているセットアップ スクリプトを使用することです。
対話型のプロンプトに従ってインストールを完了します。
セットアップ スクリプトは次の処理を実行します。
- 必要な依存関係をインストールする
- stable-diffusion.cpp をクローンしてビルドする
- Python仮想環境を設定する
- 選択したモデルをダウンロードします(注:一部のモデルではClip\VAEモデルも必要です)
- システムのファイルパスを構成する
手動インストール
手動でインストールする場合は、次の手順に従ってください。
- リポジトリをクローンします。
- stable-diffusion.cpp をビルドします。
CUDA の場合:
CUDAなし:
- Python 仮想環境を作成してアクティブ化します。
- 必要なモデルをダウンロードします (構造は以下に示します)。
モデルは次のソースからダウンロードできます。
注:モデルのダウンロードには、インターネット接続状況によっては時間がかかる場合があります。SDXLモデルは約6GB、SD3は約13GB、SD1.5は約4GB、Fluxモデルはそれぞれ8~13GBです。
- 構成内のファイル パスを更新します。
シェルスクリプトを実行可能ファイルとして設定する
設定方法:DiffuGenは、単一の設定ファイル( diffugen.json
)をすべての設定の信頼できる情報源として使用します。ワークフローは以下のとおりです。
- DiffuGenルートディレクトリの
diffugen.json
希望の設定で編集します。 setup_diffugen.sh
のオプション 5 を実行して、このファイル内のパスを自動的に更新します。diffugen.json
の内容を IDE の MCP 構成ファイルにコピーします。
ファイルには必要な設定がすべて含まれています。
- ファイルパス (コマンド、SD_CPP_PATH、models_dir、output_dir)
- デフォルトのモデルパラメータ(steps、cfg_scale、sampling_method)
- VRAM使用量設定
- IDE統合のためのメタデータ
🔧 IDE セットアップ手順
カーソルを使った設定
- カーソルをダウンロードしてインストールする
- カーソル設定 > MCP に移動し、「新しいグローバル MCP サーバーを追加」をクリックします。
- DiffuGen の
diffugen.json
ファイルの内容をコピーし、~/.cursor/mcp.json
に貼り付けます。 - 設定 > MCP で MCP サーバーを更新します。
- DiffuGenを使用するには、AIチャットパネル(Ctrl+KまたはCmd+K)を開いて画像生成をリクエストします。
Windsurfのセットアップ
- Windsurfをダウンロードしてインストールする
- Windsurf > 設定 > 詳細設定またはコマンドパレット > Windsurf 設定ページを開くに移動します。
- カスケードセクションまでスクロールし、「サーバーの追加」>「カスタムサーバーの追加+」をクリックします。
- DiffuGenの
diffugen.json
ファイルの内容をコピーし、~/.codeium/windsurf/mcp_config.json
に貼り付けます。 - Cascadeチャットインターフェースを通じてDiffuGenを使用する
Roo Codeでの設定
- Roo Codeをダウンロードしてインストールする
- Roo CodeのMCP構成ファイルを見つけます
- DiffuGenの
diffugen.json
ファイルの内容をRoo CodeのMCP構成にコピーします。 - AIアシスタント機能を通じてDiffuGenを使用する
Clineでの設定
- Clineをダウンロードしてインストールする
- DiffuGenの
diffugen.json
ファイルの内容をClineのMCP設定にコピーします。 - AIチャットまたはコマンドインターフェースを通じてDiffuGenを使用する
Anthropic ConsoleでClaudeを設定する
DiffuGen をシステム上で MCP サーバーとして設定しておけば、Claude は DiffuGen を使用できます。Claude に画像生成を依頼する際は、DiffuGen を使用することを具体的に指定し、使用するパラメータを指定してください。
🎮 使用方法
DiffuGen サーバーを手動で起動するには:
または Python を直接使用します:
サーバーが正常に起動すると、 DiffuGen ready
表示されます。
OpenAPI サーバーの使用
OpenAPIサーバーは、DiffuGenの画像生成機能に直接HTTPアクセスするためのREST APIインターフェースを提供します。これはMCPとの統合に加えて、以下の用途に役立ちます。
- 直接 HTTP API アクセス
- MCPをサポートしていない他のツールとの統合
- プログラムによるアクセスが必要なカスタムアプリケーション
詳細なセットアップ手順と高度な構成オプションについては、 OpenAPI 統合ガイドを参照してください。
OpenAPI サーバーを起動するには:
必要に応じて、サーバーは別のホストまたはポートを使用するように設定できます。デフォルトでは、以下のホストまたはポートで実行されます。
- ホスト: 0.0.0.0
- ポート: 8080
サーバーはhttp://0.0.0.0:8080で利用でき、インタラクティブなドキュメントはhttp://0.0.0.0:8080/docsで利用できます。
生成された画像はデフォルトで/output
ディレクトリに保存されます。このディレクトリにアクセスできない場合、サーバーは現在の作業ディレクトリに自動的にoutput
ディレクトリを作成します。画像は/images
エンドポイントを通じて提供されます。
OpenWebUI統合
- OpenWebUI設定を開く(歯車アイコン)
- 「ツール」セクションに移動します
- 「+」ボタンをクリックして新しいツールサーバーを追加します
- 次の詳細を入力してください。
- URL: http://0.0.0.0:5199
- APIキー: (空白のままにしてください)
- 「保存」をクリック
DiffuGenを追加すると、チャットインターフェースのツールアイコンをクリックしたときに、利用可能なツールリストにDiffuGenが表示されます。以下のエンドポイントが利用可能になります。
generate_stable_image_generate_stable_post
: 安定拡散で生成generate_flux_image_endpoint_generate_flux_post
: Flux モデルで生成list_models_models_get
: 利用可能なモデルの一覧表示
curl を使用した例:
Python リクエストを使用した例:
モデル別のデフォルトパラメータ
各モデルには、最良の結果を得るために最適化された特定のデフォルト パラメータがあります。
モデル | デフォルトの手順 | デフォルトのCFGスケール | 最適な用途 |
---|---|---|---|
フラックスシュネル | 8 | 1.0 | 素早い草稿、コンセプトイメージ |
フラックス開発 | 20 | 1.0 | より高品質なフラックス生成 |
sdxl | 20 | 7.0 | 高品質で詳細な画像 |
sd3 | 20 | 7.0 | 最新世代で品質が良い |
sd15 | 20 | 7.0 | クラシックベースラインモデル |
これらのデフォルト パラメータは、IDE の MCP 構成ファイルにdefault_params
セクションを追加することでカスタマイズできます。
上書きするパラメータのみを指定する必要があります。指定されていない値には組み込みのデフォルトが使用されます。
注: モデル固有のコマンド ラインの例と推奨事項については、 「モデル固有のパラメータの推奨事項」セクションを参照してください。
LLMに画像生成を依頼する
DiffuGen を使用して AI アシスタントに画像を生成するように依頼する方法の例を次に示します。
基本的なリクエスト:
モデル仕様あり:
詳細パラメータの場合:
パラメータリファレンス
DiffuGen は、次の基本構文を使用してコマンド ラインから使用できます。
例:
このコマンドは、デフォルトのパラメータ (フラックスシュネルモデル、512x512 解像度など) を使用して画像を生成し、構成された出力ディレクトリに保存します。
以下は、DiffuGen で使用できるパラメータです (MCP インターフェイスとコマンド ラインの両方に適用可能)。
パラメータ | 説明 | デフォルト | 有効な値 | コマンドラインフラグ |
---|---|---|---|---|
モデル | 生成に使用するモデル | フラックスシュネル/SD15 | フラックスシュネル、フラックス開発、sdxl、sd3、sd15 | - モデル |
幅 | 画像の幅(ピクセル単位) | 512 | 256-2048 | - 幅 |
身長 | 画像の高さ(ピクセル単位) | 512 | 256-2048 | - 身長 |
手順 | 拡散ステップ数 | モデル固有 | 1~100 | --ステップ |
cfg_scale | 分類器を使用しないガイダンススケール | モデル固有 | 0.1~30.0 | --cfg-スケール |
シード | 再現性のためのランダムシード | -1(ランダム) | -1または任意の整数 | - シード |
サンプリング方法 | 拡散サンプリング法 | オイラー | オイラー、オイラー_a、ヒューン、dpm2、dpm++2s_a、dpm++2m、dpm++2mv2、lcm | --サンプリング方法 |
否定的なプロンプト | 画像で避けるべき要素 | "" (空の) | 任意のテキスト文字列 | --否定プロンプト |
出力ディレクトリ | 画像を保存するディレクトリ | 構成定義 | 有効なパス | --出力ディレクトリ |
これらのパラメータは、AIアシスタントに画像生成を依頼する際、またはコマンドラインインターフェースを使用する際に指定できます。パラメータはインターフェースに応じて異なる形式で渡されます。
- MCP/AI アシスタントの場合:
parameter=value
(例:model=sdxl, width=768, height=512
) - コマンドラインの場合:
--parameter value
(例:--model sdxl --width 768 --height 512
)
デフォルト値は、待ち時間を最小限に抑え、すぐに良好な結果が得られるように設定されています。より高品質な画像が必要な場合は、ステップ数を増やすか、SDXLなどのモデルに切り替えることをご検討ください。
モデル固有のパラメータ推奨事項
注: これらの推奨事項は、「モデル別のデフォルト パラメータ」セクションに基づいており、実用的な例を示しています。
コマンドライン経由で特定のモデルを使用する場合に最良の結果を得るには:
フラックスモデル(flux-schnell、flux-dev)
標準 SD モデル (sdxl、sd3、sd15)
デフォルトパラメータの変更
DiffuGen のコマンドライン インターフェイスは、構成で特に指定がない限り、次のデフォルトを使用します。
- デフォルトモデル: 指定されていない場合は、関数に適したモデルが使用されます (Flux 関数の場合は flux-schnell、SD 関数の場合は sd15)
- デフォルトのサンプリング方法:
euler
(Flux モデルに最適) - デフォルトの CFG スケール: Flux モデルの場合は
1.0
、標準 SD モデルの場合は7.0
- デフォルトのステップ数: フラックスシュネルの場合は
8
、その他のモデルの場合は20
- デフォルトのサイズ: 512x512ピクセル
コマンドラインを使用する場合、デフォルトを上書きする場合を除き、これらのパラメータを指定する必要はありません。特定のパラメータを頻繁に使用する場合は、各コマンドラインで指定するのではなく、設定ファイルに追加することを検討してください。
コマンドラインの使用上の注意
- 生成された画像は、タイムスタンプとパラメータに基づいたファイル名で設定された出力ディレクトリに保存されます。
- コマンドを複数回実行することで、複数の画像を連続して生成することができます。
- バッチ処理の場合は、異なるパラメータでDiffuGenを呼び出すシェルスクリプトを作成することを検討してください。
- 利用可能なすべてのコマンドラインオプションを確認するには、
./diffugen.sh --help
を実行してください。 - MCPインターフェースとコマンドラインツールの両方に同じエンジンが搭載されているため、品質と機能は同一です。
⚙️ 構成
構成アプローチ
DiffuGen は、 diffugen.json
ファイルを中心とした単一の構成アプローチを使用します。
- プライマリ設定ファイル: DiffuGen ルートディレクトリの
diffugen.json
は、すべての設定の唯一の信頼できるソースです。 - IDE統合:
diffugen.json
の内容をIDEのMCP構成ファイルにコピーします。 - 環境変数: 高度な使用のために、環境変数で設定を上書きすることができます
環境変数のオーバーライド
高度な使用方法として、環境変数を使用して設定を上書きできます。
SD_CPP_PATH
: stable-diffusion.cpp へのパスを上書きします。DIFFUGEN_OUTPUT_DIR
: 出力ディレクトリを上書きするDIFFUGEN_DEFAULT_MODEL
: デフォルトモデルを上書きするDIFFUGEN_VRAM_USAGE
: VRAM使用量の設定を上書きするCUDA_VISIBLE_DEVICES
: 生成に使用するGPUを制御する
IDE固有の設定
DiffuGen では、各 IDE の MCP 設定で環境変数を使用することで、異なる IDE ごとに異なる設定を行うことができます。これにより、単一のベースdiffugen.json
維持しながら、IDE ごとにパラメータをカスタマイズできます。
構成の優先順位は次のように機能します。
- 環境変数(最優先)
- ローカルの
diffugen.json
ファイルからの設定(基本構成)
例: 異なる IDE ごとに異なる出力ディレクトリ
カーソルの場合( ~/.cursor/mcp.json
内):
Windsurf の場合 ( ~/.codeium/windsurf/mcp_config.json
内):
例: 異なるデフォルトモデルとVRAM設定
このアプローチにより、同じ基礎となるインストールを使用しながら、IDE ごとに DiffuGen の動作をカスタマイズできます。
主要な構成要素
コマンドと引数
- command :
diffugen.sh
スクリプトへのフルパス(絶対パスである必要があります) - args : スクリプトに渡す追加のコマンドライン引数(通常は空のまま)
環境変数
- CUDA_VISIBLE_DEVICES : 生成に使用するGPUを制御する
"0"
: 最初のGPUのみを使用する"1"
: 2番目のGPUのみを使用する"0,1"
: 1番目と2番目のGPUの両方を使用する"-1"
: CUDAを無効にしてCPUのみを使用する
- SD_CPP_PATH : stable-diffusion.cpp インストールディレクトリへのパス
- これは、stable-diffusion.cppバイナリとモデルを見つけるために使用されます。
- default_model : 何も指定されていない場合に使用するデフォルトのモデル
リソース構成
- models_dir : モデルファイルを含むディレクトリ
- stable-diffusion.cpp インストール内の
models
ディレクトリを指す必要があります
- stable-diffusion.cpp インストール内の
- output_dir : 生成された画像が保存されるディレクトリ
- DiffuGen を実行しているユーザーが書き込み可能である必要があります
- vram_usage : VRAMの使用戦略を制御する
"adaptive"
: 利用可能なVRAMに基づいてメモリ使用量を自動的に調整します"minimal"
: 速度を犠牲にして最小限のVRAMを使用する"balanced"
: メモリ使用量と速度のバランスをとる(デフォルト)"maximum"
: 最高のパフォーマンスを得るために利用可能なVRAMを最大限に活用します
IDE固有のオプション
各 IDE には、 diffugen.json
ファイルでカスタマイズできる特定のオプションがあります。
カーソルオプション
ウィンドサーフィンのオプション
デフォルトパラメータのカスタマイズ
default_params
セクションで各モデルのデフォルト パラメータをカスタマイズできます。
設定ファイルの更新
自動セットアップ スクリプトを使用する場合、オプション 5 を実行すると、システムの正しいパスを使用して適切に構成されたdiffugen.json
ファイルが作成されます。DiffuGen を IDE に統合するには、次の手順を実行します。
diffugen.json
のパスを更新するには、setup_diffugen.sh
のオプション 5 を実行します。- 生成された
diffugen.json
ファイルの内容全体をコピーします。 - IDE の MCP 構成ファイル (例:
~/.cursor/mcp.json
) に貼り付けます。 - 変更を適用するにはIDEを再起動してください
このアプローチの主な利点は、構成の信頼できる唯一の情報源となり、DiffuGen のセットアップの保守と更新が容易になることです。
📃 高度な使い方
DiffuGen Python モジュールは、独自の Python スクリプトにインポートしてプログラム的に使用できます。
OpenAPIサーバーの使用
アプリケーション内で OpenAPI サーバーをプログラム的に使用することもできます。
🔍 トラブルシューティング
よくある問題と解決策
- モデルが見つからないか、パスが間違っている
- すべてのモデルファイルがダウンロードされ、正しいディレクトリに配置されていることを確認します。
- 設定ファイル内のパスが正しく設定されているか確認する
- ファイル権限がモデルファイルへの読み取りアクセスを許可していることを確認します
- CUDA/GPUの問題
- NVIDIAドライバーが最新であることを確認してください
- 特定のGPUをターゲットにするには
CUDA_VISIBLE_DEVICES
設定します - VRAMが不足している場合は、より小さなモデルを使用するか、寸法を小さくしてみてください。
- 画像品質の問題
- 品質向上のためにステップ数を増やす(生成時間は長くなります)
- CFGスケールを調整します。高いほど迅速な順守、低いほど創造性が高まります。
- さまざまなサンプリング方法を試してください(dpm++2m は多くの場合良い結果をもたらします)
- 具体的なスタイルの説明を含む、より詳細なプロンプトを使用する
- ファイル権限エラー
- DiffuGenを実行しているユーザーが出力ディレクトリに書き込み可能であることを確認する
- すべてのスクリプトに実行権限があることを確認します(
chmod +x diffugen.sh
)
ヘルプの取得
ここで説明されていない問題が発生した場合は、次のことができます。
- GitHubリポジトリで問題と解決策を確認してください
- デバッグログを有効にして実行します:
DEBUG=1 ./diffugen.sh "your prompt"
- GitHubのissuesから開発者に問い合わせる
🌟 貢献
DiffuGenへの貢献を歓迎します!貢献するには:
- リポジトリをフォークする
- 機能ブランチを作成する
- 変更を加える
- プルリクエストを送信する
コードがプロジェクトのコーディング標準に準拠し、適切なテストが含まれていることを確認してください。
📄 ライセンス
このプロジェクトは Apache ライセンスに基づいてライセンスされています。詳細については、LICENSE ファイルを参照してください。
- すべてのモデルはそれぞれのディストリビューションに基づいてライセンスされており、CLOUDWERX.DEVによってライセンスまたは提供されるものではありません。
- HuggingFace.coはモデルのダウンロードに使用され、CLOUDWERX.DEVとは一切関係ありません。
🙏 謝辞
- 最適化された C++ 実装のstable-diffusion.cpp
- 安定拡散モデルのための安定性AI
- Black Forest Labsのフラックスモデル
- ダウンロードリンクはHugging Face
- MCPプロトコルのすべての貢献者
📬 お問い合わせ
- GitHub: CLOUDWERX-DEV
- ウェブサイト: cloudwerx.dev
- メール: sysop@cloudwerx.dev
- Discord:サーバーに参加する
This server cannot be installed
複数の安定拡散モデル (flux-schnell、flux-dev、sdxl、sd3、sd15) を活用した強力な画像生成システムで、正確なカスタマイズにより高品質の AI 生成画像を作成します。