mcpField
D
DiffuGen - Advanced Local Image Generator with MCP Integration

DiffuGen - Advanced Local Image Generator with MCP Integration

ローカル
cloudwerx.devメディア・デザイン2081 週間前に更新

DiffuGen - Advanced Local Image Generator with MCP Integration について

DiffuGen は、Cursor や Windsurf などの IDE から利用できるローカル画像生成 MCP サーバーで、開発作業を離れずに画像を生成できます。stable-diffusion.cpp を基盤とし、Flux と複数の Stable Diffusion モデルに対応します。別途提供される OpenAPI サーバーも利用できます。

主な機能

  1. 01Flux と Stable Diffusion 系モデルに対応
  2. 02SD と Flux の生成ツールを個別に提供
  3. 03サイズ、ステップ数、CFG スケール、シードを調整
  4. 04NVIDIA GPU での CUDA アクセラレーション
  5. 05独立した OpenAPI サーバーを提供

活用シーン

  1. 01IDE のチャットからの UI モックアップ生成
  2. 02OpenWebUI のチャットでの生成画像の表示
  3. 03異なるパラメーターによるローカルでの画像生成

MCP 対応

DiffuGen は MCP サーバーとして、generate_stable_diffusion_image と generate_flux_image の 2 つのツールを Cursor、Windsurf、Roo Code、Cline などの MCP クライアントに提供し、生成画像のパスとメタデータを返します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

DiffuGen - MCP 統合対応の高度なローカル画像生成ツール

DiffuGen のロゴ

コードに直接組み込まれた AI アートスタジオです。この強力な MCP サーバーを使えば、Cursor、Windsurf、その他の互換性のある IDE から、開発プロセスを中断することなく、最先端の Flux モデルや Stable Diffusion モデルを利用して、ビジュアルのアイデアを生成、反復、完成させることができます。

スターのバッジ フォークのバッジ イシューのバッジ ライセンスのバッジ

⭐ 新機能:OpenAPI サーバーのサポートと OpenWebUI OpenAPI Tools(OWUI バージョン 0.60.0 が必要)との統合が追加され、チャットインターフェースで画像をシームレスに生成・表示できるようになりました!OpenAPI は MCP サーバーとは別であり、ご自身のプロジェクトにも統合できます!

📃 目次

🚀 はじめに

DiffuGen は、最先端の AI モデルを開発ワークフローに直接取り込む、強力な MCP ベースの画像生成システムです。Flux モデル(Flux Schnell、Flux Dev)と Stable Diffusion の各種モデル(SDXL、SD3、SD1.5)をシームレスに統合した単一のインターフェースを提供するため、ツールを切り替えることなく、それぞれのモデルファミリーの強みを活用できます。包括的なパラメーター制御とマルチ GPU サポートにより、控えめなハードウェアでの素早いコンセプトスケッチから、高性能システムでの本番品質のビジュアル制作まで対応します。

高度に最適化された stable-diffusion.cpp 実装をベースとして構築された DiffuGen は、高品質な出力を維持しながら、控えめなハードウェアでも優れたパフォーマンスを発揮します。

🧠 MCP と DiffuGen について

MCP とは?

MCP(Model Context Protocol)は、LLM(大規模言語モデル)がカスタムツールやサービスにアクセスできるようにするプロトコルです。簡単に言うと、Cursor、Windsurf、Roo Code、Cline などの MCP クライアントは、MCP サーバーにリクエストを送信して、サーバーが提供するツールにアクセスできます。

MCP サーバーとしての DiffuGen

DiffuGen は、テキストから画像を生成する機能を提供する MCP サーバーとして動作します。MCP プロトコルを実装しており、対応する IDE から生成リクエストを送信し、生成された画像を受け取ることができます。

サーバーは、次の 2 つの主要なツールを公開します。

  1. generate_stable_diffusion_image:Stable Diffusion モデルを使用して生成します
  2. 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++ 実装

システムは次のように動作します。

  1. MCP クライアントからプロンプトとパラメーターのデータを受信します
  2. Python サーバーでリクエストを処理します
  3. 適切なパラメーターを指定して stable-diffusion.cpp バイナリを呼び出します
  4. 生成された画像を設定済みの出力ディレクトリに保存します
  5. 生成された画像のパスとメタデータをクライアントに返します
stable-diffusion.cpp について

stable-diffusion.cpp は、Stable Diffusion アルゴリズムを高度に最適化した C++ 実装です。Python のリファレンス実装と比較して、次の利点があります。

  • 推論速度が大幅に向上(最大 3~4 倍高速)
  • メモリ使用量が少ない(VRAM がわずか 4GB の GPU でも動作)
  • NVIDIA GPU 向けに最適化された CUDA カーネル
  • さまざまなサンプリング方法とモデル形式に対応
  • パフォーマンス向上のためのモデル量子化に対応
  • 中核となる生成処理に Python の依存関係が不要

これにより、DiffuGen は、控えめなハードウェア構成でも優れたパフォーマンスで高品質な画像生成を実現できます。

✨ 特長

  • 複数のモデルに対応:Flux Schnell、Flux Dev、SDXL、SD3、SD1.5 など、さまざまなモデルを使用して画像を生成します
  • MCP 連携:MCP に対応する IDE(Cursor、Windsurf、Roo Code、Cline など)とシームレスに連携します
  • 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:VRAM 6GB 以上の NVIDIA GPU(最適なパフォーマンスには RTX 2060 以上を推奨)
  • ストレージ:SSD の空き容量 20GB 以上
  • Python:3.10 以降(3.11 が最高のパフォーマンスを発揮します)
  • ネットワーク:モデルを効率よくダウンロードするための高速接続(20 Mbps 以上)

📥 インストール

自動インストール(推奨)

DiffuGen を最も簡単にインストールする方法は、付属のセットアップスクリプトを使用することです。

git clone https://github.com/CLOUDWERX-DEV/diffugen.git
cd DiffuGen
chmod +x diffugen.sh
chmod +x setup_diffugen.sh
./setup_diffugen.sh

対話形式のプロンプトに従って、インストールを完了してください。

セットアップスクリプトでは、次の処理が行われます:

  • 必要な依存関係をインストールします
  • stable-diffusion.cpp をクローンしてビルドします
  • Python 仮想環境をセットアップします
  • 選択したモデルをダウンロードします(注:モデルによっては Clip\VAE Models も必要です)
  • システムに合わせてファイルパスを設定します
手動インストール

手動でインストールする場合は、次の手順に従ってください。

  1. リポジトリをクローンします:
git clone https://github.com/CLOUDWERX-DEV/diffugen.git
cd DiffuGen
git clone --recursive https://github.com/leejet/stable-diffusion.cpp
  1. stable-diffusion.cpp をビルドします:
cd stable-diffusion.cpp
mkdir -p build && cd build

CUDA を使用する場合:

cmake .. -DCMAKE_BUILD_TYPE=Release -DSD_CUDA=ON
make -j$(nproc)
cd ../..

CUDA を使用しない場合:

cmake .. -DCMAKE_BUILD_TYPE=Release
make -j$(nproc)
cd ../..
  1. Python 仮想環境を作成して有効化します:
python3 -m venv diffugen_env
source diffugen_env/bin/activate  # On Windows: diffugen_env\Scripts\activate
pip install -r requirements.txt
  1. 必要なモデルをダウンロードします(以下に構成を示します):
stable-diffusion.cpp/models/
├── ae.sft                           # VAE model
├── clip_l.safetensors               # CLIP model
├── flux/
│   ├── flux1-schnell-q8_0.gguf     # Flux Schnell model (default)
│   └── flux1-dev-q8_0.gguf          # Flux Dev model
├── sd3-medium.safetensors           # SD3 model
├── sdxl-1.0-base.safetensors        # SDXL model
├── sdxl_vae-fp16-fix.safetensors    # SDXL VAE
├── t5xxl_fp16.safetensors           # T5 model
└── v1-5-pruned-emaonly.safetensors  # SD1.5 model

モデルは次のソースからダウンロードできます:

# Create model directories
mkdir -p stable-diffusion.cpp/models/flux

# Flux models
# Flux Schnell - Fast generation model (Q8 Quantized,requires t5xxl, clip-l, vae)
curl -L https://huggingface.co/leejet/FLUX.1-schnell-gguf/resolve/main/flux1-schnell-q8_0.gguf -o stable-diffusion.cpp/models/flux/flux1-schnell-q8_0.gguf

# Flux Dev - Development model with better quality (Q8 QUantized, requires t5xxl, clip-l, vae)
curl -L https://huggingface.co/leejet/FLUX.1-dev-gguf/resolve/main/flux1-dev-q8_0.gguf -o stable-diffusion.cpp/models/flux/flux1-dev-q8_0.gguf

# Required models for Flux
# T5XXL Text Encoder
curl -L https://huggingface.co/Sanami/flux1-dev-gguf/resolve/main/t5xxl_fp16.safetensors -o stable-diffusion.cpp/models/t5xxl_fp16.safetensors

# CLIP-L Text Encoder
curl -L https://huggingface.co/Sanami/flux1-dev-gguf/resolve/main/clip_l.safetensors -o stable-diffusion.cpp/models/clip_l.safetensors

# VAE for image decoding
curl -L https://huggingface.co/pretentioushorsefly/flux-models/resolve/main/models/vae/ae.safetensors -o stable-diffusion.cpp/models/ae.sft

# Stable Diffusion models
# SDXL 1.0 Base Model (requires sdxl-vae)
curl -L https://huggingface.co/stabilityai/stable-diffusion-xl-base-1.0/resolve/main/sd_xl_base_1.0.safetensors -o stable-diffusion.cpp/models/sd_xl_base_1.0.safetensors

# SDXL VAE (required for SDXL)
curl -L https://huggingface.co/madebyollin/sdxl-vae-fp16-fix/resolve/main/sdxl_vae-fp16-fix.safetensors -o stable-diffusion.cpp/models/sdxl_vae-fp16-fix.safetensors

# Stable Diffusion 1.5 (standalone)
curl -L https://huggingface.co/runwayml/stable-diffusion-v1-5/resolve/main/v1-5-pruned-emaonly.safetensors -o stable-diffusion.cpp/models/v1-5-pruned-emaonly.safetensors

# Stable Diffusion 3 Medium (standalone)
curl -L https://huggingface.co/leo009/stable-diffusion-3-medium/resolve/main/sd3_medium_incl_clips_t5xxlfp16.safetensors -o stable-diffusion.cpp/models/sd3_medium_incl_clips_t5xxlfp16.safetensors

注:モデルのダウンロードには、インターネット接続の速度によっては長時間かかる場合があります。SDXL モデルは約 6GB、SD3 は約 13GB、SD1.5 は約 4GB、Flux モデルはそれぞれ 8~13GB です。

  1. 設定のファイルパスを更新します:

シェルスクリプトを実行可能にします

chmod +x diffugen.sh

設定方法: DiffuGen では、すべての設定の信頼できる情報源として単一の設定ファイル(diffugen.json)を使用します。ワークフローは次のとおりです。

  1. DiffuGen のルートディレクトリにある diffugen.json を、希望する設定に編集します
  2. setup_diffugen.sh のオプション 5 を実行して、このファイル内のパスを自動更新します
  3. diffugen.json の内容を IDE の MCP 設定ファイルにコピーします

このファイルには、必要な設定がすべて含まれています:

  • ファイルパス(command、SD_CPP_PATH、models_dir、output_dir)
  • デフォルトのモデルパラメーター(steps、cfg_scale、sampling_method)
  • VRAM 使用量の設定
  • IDE 連携用のメタデータ
{
  "mcpServers": {
    "diffugen": {
      "command": "/home/cloudwerxlab/Desktop/Servers/MCP/Tools/DiffuGen/diffugen.sh",
      "args": [],
      "env": {
        "CUDA_VISIBLE_DEVICES": "0",
        "SD_CPP_PATH": "path/to/stable-diffusion.cpp",
        "default_model": "flux-schnell"
      },
      "resources": {
        "models_dir": "path/to/stable-diffusion.cpp/models",
        "output_dir": "path/to/outputs",
        "vram_usage": "adaptive"
      },
      "metadata": {
        "name": "DiffuGen",
        "version": "1.0",
        "description": "Your AI art studio embedded directly in code. Generate, iterate, and perfect visual concepts through this powerful MCP server for Cursor, Windsurf, and other compatible IDEs, utilizing cutting-edge Flux and Stable Diffusion models without disrupting your development process.",
        "author": "CLOUDWERX LAB",
        "homepage": "https://github.com/CLOUDWERX-DEV/diffugen",
        "usage": "Generate images using two primary methods:\n1. Standard generation: 'generate an image of [description]' with optional parameters:\n   - model: Choose from flux-schnell (default), flux-dev, sdxl, sd3, sd15\n   - dimensions: width and height (default: 512x512)\n   - steps: Number of diffusion steps (default: 20, lower for faster generation)\n   - cfg_scale: Guidance scale (default: 7.0, lower for more creative freedom)\n   - seed: For reproducible results (-1 for random)\n   - sampling_method: euler, euler_a (default), heun, dpm2, dpm++2s_a, dpm++2m, dpm++2mv2, lcm\n   - negative_prompt: Specify elements to avoid in the image\n2. Quick Flux generation: 'generate a flux image of [description]' for faster results with fewer steps (default: 4)"
      },
      "cursorOptions": {
        "autoApprove": true,
        "category": "Image Generation",
        "icon": "🖼️",
        "displayName": "DiffuGen"
      },
      "windsurfOptions": {
        "displayName": "DiffuGen",
        "icon": "🖼️",
        "category": "Creative Tools"
      },
      "default_params": {
        "steps": {
          "flux-schnell": 8,
          "flux-dev": 20,
          "sdxl": 20,
          "sd3": 20,
          "sd15": 20
        },
        "cfg_scale": {
          "flux-schnell": 1.0,
          "flux-dev": 1.0,
          "sdxl": 7.0,
          "sd3": 7.0, 
          "sd15": 7.0
        },
        "sampling_method": {
          "flux-schnell": "euler",
          "flux-dev": "euler",
          "sdxl": "euler",
          "sd3": "euler",
          "sd15": "euler"
        }
      }
    }
  }
}

🔧 IDE のセットアップ手順

Cursor でのセットアップ
  1. Cursor をダウンロードしてインストールします
  2. Cursor Settings > MCP に移動し、「Add new global MCP server」をクリックします
  3. DiffuGen の diffugen.json ファイルの内容をコピーして、~/.cursor/mcp.json に貼り付けます
  4. Settings > MCP で MCP サーバーを更新します
  5. AI チャットパネル(Ctrl+K または Cmd+K)を開き、画像の生成を依頼して DiffuGen を使用します
Windsurf でのセットアップ
  1. Windsurf をダウンロードしてインストールします
  2. Windsurf > Settings > Advanced Settings または Command Palette > Open Windsurf Settings Page に移動します
  3. Cascade セクションまでスクロールし、「Add Server」>「Add custom server +」をクリックします
  4. DiffuGen の diffugen.json ファイルの内容をコピーして、~/.codeium/windsurf/mcp_config.json に貼り付けます
  5. Cascade チャットインターフェースから DiffuGen を使用します
Roo Code でのセットアップ
  1. Roo Code をダウンロードしてインストールします
  2. Roo Code の MCP 設定ファイルを見つけます
  3. DiffuGen の diffugen.json ファイルの内容をコピーして、Roo Code の MCP 設定に貼り付けます
  4. AI アシスタント機能から DiffuGen を使用します
Cline でのセットアップ
  1. Cline をダウンロードしてインストールします
  2. DiffuGen の diffugen.json ファイルの内容をコピーして、Cline の MCP 設定に貼り付けます
  3. AI チャットまたはコマンドインターフェースから DiffuGen を使用します
Anthropic Console の Claude でのセットアップ

システム上で MCP サーバーとしてセットアップしていれば、Claude で DiffuGen を使用できます。Claude に画像生成を依頼する際は、DiffuGen を使用するよう明確に伝え、使用するパラメーターを指定してください。

🎮 使用方法

DiffuGen サーバーを手動で起動するには:

cd /path/to/diffugen
./diffugen.sh

または、Python を直接使用します:

cd /path/to/diffugen
python -m diffugen

サーバーが正常に起動すると、DiffuGen ready と表示されます。

OpenAPI サーバーの使用方法

OpenAPI サーバーは、DiffuGen の画像生成機能に HTTP で直接アクセスするための REST API インターフェースを提供します。MCP との連携に加えて、次のような用途に便利です。

  • HTTP API への直接アクセス
  • MCP に対応していない他のツールとの連携
  • プログラムからのアクセスが必要なカスタムアプリケーション

詳細なセットアップ手順と高度な設定オプションについては、OpenAPI Integration Guide を参照してください。

OpenAPI サーバーを起動するには、次のコマンドを実行します。

python diffugen_openapi.py

必要に応じて、サーバーのホストやポートを変更できます。デフォルトでは、次の設定で実行されます。

  • ホスト:0.0.0.0
  • ポート:8080

サーバーは http://0.0.0.0:8080 で利用でき、http://0.0.0.0:8080/docs でインタラクティブなドキュメントを確認できます。

生成された画像は、デフォルトで /output ディレクトリに保存されます。このディレクトリにアクセスできない場合、サーバーは現在の作業ディレクトリに output ディレクトリを自動的に作成します。画像は /images エンドポイント経由で提供されます。

OpenWebUI との連携
  1. OpenWebUI の設定を開きます(歯車アイコン)。
  2. 「Tools」セクションに移動します。
  3. 「+」ボタンをクリックして、新しいツールサーバーを追加します。
  4. 次の詳細を入力します。
  5. 「Save」をクリックします。

追加すると、チャットインターフェースでツールアイコンをクリックしたときに表示される利用可能なツールの一覧に DiffuGen が表示されます。次のエンドポイントを利用できます。

  • generate_stable_image_generate_stable_post:Stable Diffusion で生成
  • generate_flux_image_endpoint_generate_flux_post:Flux モデルで生成
  • list_models_models_get:利用可能なモデルを一覧表示

curl を使用する例:

curl -X POST "http://0.0.0.0:5199/generate/flux" \
     -H "Content-Type: application/json" \
     -d '{"prompt": "A beautiful sunset", "model": "flux-schnell"}'

Python requests を使用する例:

import requests

response = requests.post(
    "http://0.0.0.0:5199/generate/flux",
    json={
        "prompt": "A beautiful sunset",
        "model": "flux-schnell"
    }
)
result = response.json()
モデルごとのデフォルトパラメーター

各モデルには、最適な結果が得られるように調整された固有のデフォルトパラメーターがあります。

モデルデフォルトのステップ数デフォルトの CFG スケール最適な用途
flux-schnell81.0高速な下書き、コンセプト画像
flux-dev201.0より高品質な Flux 画像の生成
sdxl207.0高品質で詳細な画像
sd3207.0高品質な最新世代のモデル
sd15207.0クラシックなベースラインモデル

IDE の MCP 設定ファイルに default_params セクションを追加すると、これらのデフォルトパラメーターをカスタマイズできます。

"default_params": {
  "steps": {
    "flux-schnell": 12,  // Customize steps for better quality
    "sdxl": 30           // Increase steps for more detailed SDXL images
  },
  "cfg_scale": {
    "sd15": 9.0          // Higher cfg_scale for stronger prompt adherence
  }
}

上書きしたいパラメーターだけを指定してください。指定しなかった値には、組み込みのデフォルト値が使用されます。

注:モデル固有のコマンドラインの例と推奨事項については、モデル固有のパラメーターに関する推奨事項セクションを参照してください。

LLM に画像を生成するよう依頼する

DiffuGen で画像を生成するよう AI アシスタントに依頼する方法の例を以下に示します。

基本的なリクエスト:
Generate an image of a cat playing with yarn
Create a picture of a futuristic cityscape with flying cars
モデルを指定する場合:
Generate an image of a medieval castle using the sdxl model
Create a flux image of a sunset over mountains
高度なパラメーターを指定する場合:
Generate an image of a cyberpunk street scene, model=flux-dev, width=768, height=512, steps=25, cfg_scale=1.0, seed=42
Create an illustration of a fantasy character with model=sd15, width=512, height=768, steps=30, cfg_scale=7.5, sampling_method=dpm++2m, negative_prompt=blurry, low quality, distorted
パラメーターリファレンス

DiffuGen は、次の基本構文でコマンドラインから使用できます。

./diffugen.sh "Your prompt here" [options]

例:

./diffugen.sh "A futuristic cityscape with flying cars"

このコマンドは、デフォルトのパラメーター(flux-schnell モデル、512x512 解像度など)を使用して画像を生成し、設定された出力ディレクトリに保存します。

以下は、DiffuGen で使用できるパラメーターです(MCP インターフェースとコマンドラインの両方に適用されます)。

パラメーター説明デフォルト有効な値コマンドラインフラグ
model生成に使用するモデルflux-schnell/sd15flux-schnell, flux-dev, sdxl, sd3, sd15--model
width画像の幅(ピクセル単位)512256-2048--width
height画像の高さ(ピクセル単位)512256-2048--height
steps拡散ステップ数モデル固有1-100--steps
cfg_scaleClassifier-Free Guidance スケールモデル固有0.1-30.0--cfg-scale
seed再現性を確保するためのランダムシード-1(ランダム)-1 または任意の整数--seed
sampling_method拡散サンプリング方式eulereuler, euler_a, heun, dpm2, dpm++2s_a, dpm++2m, dpm++2mv2, lcm--sampling-method
negative_prompt画像内で避ける要素""(空)任意のテキスト文字列--negative-prompt
output_dir画像の保存先ディレクトリ設定で定義有効なパス--output-dir

これらのパラメーターは、AI アシスタントに画像の生成を依頼するとき、またはコマンドラインインターフェースを使用するときに指定できます。パラメーターの指定形式は、インターフェースによって異なります。

  • MCP/AI アシスタントの場合:parameter=value(例:model=sdxl, width=768, height=512)
  • コマンドラインの場合:--parameter value(例:--model sdxl --width 768 --height 512)

デフォルト値は、待ち時間を最小限に抑えながら、すぐに良好な結果が得られるように設定されています。より高品質な画像を得るには、steps の値を増やすか、sdxl などのモデルに切り替えることを検討してください。

モデル固有のパラメーターに関する推奨事項

注:以下の推奨事項は、モデル別のデフォルトパラメーターのセクションを補足する実用例です。

コマンドラインから特定のモデルを使用する場合、最良の結果を得るには次の設定をおすすめします。

Flux モデル(flux-schnell、flux-dev)
# Flux-Schnell (fastest)
./diffugen.sh "Vibrant colorful abstract painting" \
  --model flux-schnell \
  --cfg-scale 1.0 \
  --sampling-method euler \
  --steps 8

# Flux-Dev (better quality)
./diffugen.sh "Detailed fantasy landscape with mountains and castles" \
  --model flux-dev \
  --cfg-scale 1.0 \
  --sampling-method euler \
  --steps 20
標準的な SD モデル(sdxl、sd3、sd15)
# SDXL (highest quality)
./diffugen.sh "Hyperrealistic portrait of a Celtic warrior" \
  --model sdxl \
  --cfg-scale 7.0 \
  --sampling-method dpm++2m \
  --steps 30

# SD15 (classic model)
./diffugen.sh "Photorealistic landscape at sunset" \
  --model sd15 \
  --cfg-scale 7.0 \
  --sampling-method euler_a \
  --steps 20
デフォルトパラメーターの変更

DiffuGen のコマンドラインインターフェースでは、設定で別途指定されていない場合、次の値がデフォルトとして使用されます。

  • デフォルトモデル:指定がない場合、関数に適したモデルが使用されます(Flux 関数では flux-schnell、SD 関数では sd15)
  • デフォルトのサンプリング方式:euler(Flux モデルに最適)
  • デフォルトの CFG スケール:Flux モデルでは 1.0、標準的な SD モデルでは 7.0
  • デフォルトのステップ数:flux-schnell では 8、その他のモデルでは 20
  • デフォルトの寸法:512x512 ピクセル

コマンドラインを使用する場合、デフォルト値を変更しない限り、これらのパラメーターを指定する必要はありません。特定のパラメーターを頻繁に使用する場合は、コマンドを実行するたびに指定するのではなく、設定ファイルに追加することを検討してください。

コマンドライン使用上の注意
  • 生成された画像は設定済みの出力ディレクトリに保存され、ファイル名にはタイムスタンプとパラメーターが使用されます
  • コマンドを複数回実行することで、複数の画像を連続して生成できます
  • バッチ処理には、異なるパラメーターで DiffuGen を呼び出すシェルスクリプトの作成を検討してください
  • 使用可能なコマンドラインオプションをすべて確認するには、./diffugen.sh --help を実行してください
  • MCP インターフェースとコマンドラインツールは同じエンジンを使用するため、品質と機能は同一です

⚙️ 設定

設定方法

DiffuGen では、diffugen.json ファイルを中心とした単一の設定方法を採用しています。

  1. 主要な設定ファイル:DiffuGen のルートディレクトリにある diffugen.json が、すべての設定の唯一の信頼できる情報源です。
  2. IDE との連携:diffugen.json の内容を IDE の MCP 設定ファイルにコピーします。
  3. 環境変数:高度な使い方では、環境変数を使って設定を上書きできます。
環境変数による上書き

高度な使い方では、環境変数を使って設定を上書きできます。

  • 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 ごとにパラメーターをカスタマイズできます。

設定の優先順位は次のとおりです。

  1. 環境変数(最優先)
  2. ローカルの diffugen.json ファイルの設定(ベース設定)

例:IDE ごとに出力ディレクトリを変更する

Cursor の場合(~/.cursor/mcp.json 内):

"env": {
  "CUDA_VISIBLE_DEVICES": "0",
  "SD_CPP_PATH": "/path/to/stable-diffusion.cpp",
  "DIFFUGEN_OUTPUT_DIR": "/cursor/specific/output/directory",
  "default_model": "flux-schnell"
}

Windsurf の場合(~/.codeium/windsurf/mcp_config.json 内):

"env": {
  "CUDA_VISIBLE_DEVICES": "0",
  "SD_CPP_PATH": "/path/to/stable-diffusion.cpp",
  "DIFFUGEN_OUTPUT_DIR": "/windsurf/specific/output/directory",
  "default_model": "sdxl"
}

例:デフォルトモデルと VRAM 設定を変更する

"env": {
  "CUDA_VISIBLE_DEVICES": "0",
  "SD_CPP_PATH": "/path/to/stable-diffusion.cpp",
  "default_model": "flux-dev", 
  "DIFFUGEN_VRAM_USAGE": "maximum"
}

この方法を使うと、同じインストール環境を使用しながら、IDE ごとに DiffuGen の動作をカスタマイズできます。

主な設定項目
コマンドと引数
  • command:diffugen.sh スクリプトのフルパス(絶対パスである必要があります)
  • args:スクリプトに渡す追加のコマンドライン引数(通常は空のままにします)
環境変数
  • CUDA_VISIBLE_DEVICES:生成に使用する GPU を制御します。

    • "0":最初の GPU のみを使用します。
    • "1":2 番目の GPU のみを使用します。
    • "0,1":最初と 2 番目の GPU を使用します。
    • "-1":CUDA を無効にして、CPU のみを使用します。
  • SD_CPP_PATH:stable-diffusion.cpp のインストールディレクトリへのパスです。

    • stable-diffusion.cpp のバイナリとモデルの場所を特定するために使用します。
  • default_model:モデルが指定されていない場合に使用するデフォルトモデルです。

リソース設定
  • models_dir:モデルファイルを含むディレクトリです。

    • stable-diffusion.cpp のインストール先にある models ディレクトリを指定します。
  • output_dir:生成された画像の保存先ディレクトリです。

    • DiffuGen の実行ユーザーが書き込み可能である必要があります。
  • vram_usage:VRAM 使用量の方式を制御します。

    • "adaptive":利用可能な VRAM に応じてメモリ使用量を自動調整します。
    • "minimal":速度を犠牲にして VRAM 使用量を最小限に抑えます。
    • "balanced":メモリ使用量と速度のバランスを取ります(デフォルト)。
    • "maximum":最高のパフォーマンスを得るため、利用可能な VRAM を最大限に使用します。
IDE 固有のオプション

diffugen.json ファイルで、各 IDE 固有のオプションをカスタマイズできます。

Cursor のオプション
"cursorOptions": {
  "autoApprove": true,
  "category": "Image Generation",
  "icon": "🖼️",
  "displayName": "DiffuGen"
}
Windsurf のオプション
"windsurfOptions": {
  "displayName": "DiffuGen",
  "icon": "🖼️",
  "category": "Creative Tools"
}
デフォルトパラメーターのカスタマイズ

default_params セクションで、各モデルのデフォルトパラメーターをカスタマイズできます。

"default_params": {
  "steps": {
    "flux-schnell": 12,
    "sdxl": 30
  },
  "cfg_scale": {
    "sd15": 9.0
  },
  "sampling_method": {
    "flux-schnell": "euler",
    "sdxl": "dpm++2m"
  }
}
設定ファイルの更新

自動セットアップスクリプトを使用する場合、オプション 5 を実行すると、システムに適したパスが設定された diffugen.json ファイルが作成されます。DiffuGen を IDE と連携するには、次の手順を実行します。

  1. setup_diffugen.sh でオプション 5 を実行し、diffugen.json のパスを更新します。
  2. 生成された diffugen.json ファイルの内容をすべてコピーします。
  3. IDE の MCP 設定ファイル(例:~/.cursor/mcp.json)に貼り付けます。
  4. IDE を再起動して変更を適用します。

この方法の主な利点は、設定の唯一の信頼できる情報源を一つにまとめられるため、DiffuGen の設定を簡単に管理、更新できることです。

📃 高度な使い方

DiffuGen の Python モジュールは、自作の Python スクリプトにインポートして、プログラムから使用できます。

from diffugen import generate_image

# Generate an image programmatically
result = generate_image(
    prompt="A starry night over a quiet village",
    model="sdxl",
    width=1024,
    height=768,
    steps=30,
    cfg_scale=7.0,
    seed=42,
    sampling_method="dpm++2m",
    negative_prompt="blurry, low quality"
)

print(f"Image saved to: {result['file_path']}")
OpenAPI サーバーの使用

アプリケーションで OpenAPI サーバーをプログラムから使用することもできます。

import requests

def generate_image_via_api(prompt, model="flux-schnell", width=512, height=512):
    response = requests.post(
        "http://0.0.0.0:5199/generate/flux",
        json={
            "prompt": prompt,
            "model": model,
            "width": width,
            "height": height
        }
    )
    return response.json()

# Example usage
result = generate_image_via_api(
    prompt="A magical forest at night",
    model="flux-schnell",
    width=768,
    height=512
)
print(f"Generated image: {result['file_path']}")

🔍 トラブルシューティング

よくある問題と解決策
  1. モデルが見つからない、またはパスが正しくない

    • すべてのモデルファイルがダウンロードされ、正しいディレクトリに配置されていることを確認してください
    • 設定ファイル内のパスが正しく設定されていることを確認してください
    • モデルファイルへの読み取りアクセスが許可されていることを確認してください
  2. CUDA/GPU の問題

    • NVIDIA ドライバーが最新であることを確認してください
    • 特定の GPU を指定するには、CUDA_VISIBLE_DEVICES を設定してください
    • VRAM が不足する場合は、小さなモデルを使用するか、次元数を減らしてみてください
  3. 画像品質の問題

    • 品質を高めるには、ステップ数を増やしてください(生成時間は長くなります)
    • CFG スケールを調整してください。プロンプトへの準拠度を高めるには大きくし、創造性を高めるには小さくします
    • 別のサンプリング方法を試してください(dpm++2m は良好な結果が得られることがよくあります)
    • スタイルを具体的に記述した、より詳細なプロンプトを使用してください
  4. ファイル権限エラー

    • DiffuGen を実行するユーザーが出力ディレクトリに書き込めることを確認してください
    • すべてのスクリプトに実行権限があることを確認してください(chmod +x diffugen.sh)
ヘルプを受ける

ここに記載されていない問題が発生した場合は、次の方法をお試しください。

  • GitHub リポジトリで問題と解決策を確認する
  • デバッグログを有効にして実行する:DEBUG=1 ./diffugen.sh "your prompt"
  • GitHub の Issues を通じて開発者に問い合わせる

🌟 貢献

DiffuGen への貢献を歓迎します!貢献するには、次の手順に従ってください。

  1. リポジトリをフォークする
  2. フィーチャーブランチを作成する
  3. 変更を加える
  4. プルリクエストを送信する

コードがプロジェクトのコーディング規約に従い、適切なテストを含んでいることを確認してください。

📄 ライセンス

このプロジェクトは Apache License の下でライセンスされています。詳細は LICENSE ファイルを参照してください。

  • すべてのモデルはそれぞれの配布条件に基づいてライセンスされており、CLOUDWERX.DEV によってライセンスまたは提供されているものではありません
  • HuggingFace.co はモデルのダウンロードに使用されており、CLOUDWERX.DEV とは一切関係ありません

🙏 謝辞

📬 お問い合わせ

                   ______   __   ___   ___         _______              
                  |   _  \ |__|.'  _|.'  _|.--.--.|   _   |.-----.-----.
                  |.  |   \|  ||   _||   _||  |  ||.  |___||  -__|     |
                  |.  |    \__||__|  |__|  |_____||.  |   ||_____|__|__|
                  |:  1    /                      |:  1   |             
                  |::.. . /                       |::.. . |             
                  `------'                        `-------'             

CLOUDWERX LAB が ❤️ を込めて制作

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。