DiffuGen

by CLOUDWERX-DEV
Verified

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 つの主要なツールを公開します。

  1. generate_stable_diffusion_image : 安定拡散モデルで生成する
  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は、安定拡散アルゴリズムの高度に最適化された 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 をインストールする最も簡単な方法は、提供されているセットアップ スクリプトを使用することです。

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モデルも必要です)
  • システムのファイルパスを構成する

手動インストール

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

  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 構成ファイルにコピーします。

ファイルには必要な設定がすべて含まれています。

  • ファイルパス (コマンド、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 セットアップ手順

カーソルを使った設定

  1. カーソルをダウンロードしてインストールする
  2. カーソル設定 > MCP に移動し、「新しいグローバル MCP サーバーを追加」をクリックします。
  3. DiffuGen のdiffugen.jsonファイルの内容をコピーし~/.cursor/mcp.jsonに貼り付けます。
  4. 設定 > MCP で MCP サーバーを更新します。
  5. DiffuGenを使用するには、AIチャットパネル(Ctrl+KまたはCmd+K)を開いて画像生成をリクエストします。

Windsurfのセットアップ

  1. Windsurfをダウンロードしてインストールする
  2. Windsurf > 設定 > 詳細設定またはコマンドパレット > Windsurf 設定ページを開くに移動します。
  3. カスケードセクションまでスクロールし、「サーバーの追加」>「カスタムサーバーの追加+」をクリックします。
  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を設定する

DiffuGen をシステム上で 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 統合ガイドを参照してください。

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. 「ツール」セクションに移動します
  3. 「+」ボタンをクリックして新しいツールサーバーを追加します
  4. 次の詳細を入力してください。
  5. 「保存」をクリック

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

  • generate_stable_image_generate_stable_post : 安定拡散で生成
  • 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 リクエストを使用した例:

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スケール最適な用途
フラックスシュネル81.0素早い草稿、コンセプトイメージ
フラックス開発201.0より高品質なフラックス生成
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"

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

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

パラメータ説明デフォルト有効な値コマンドラインフラグ
モデル生成に使用するモデルフラックスシュネル/SD15フラックスシュネル、フラックス開発、sdxl、sd3、sd15- モデル
画像の幅(ピクセル単位)512256-2048- 幅
身長画像の高さ(ピクセル単位)512256-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)

# 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
  • デフォルトのステップ数: フラックスシュネルの場合は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/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" : 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固有のオプション

各 IDE には、 diffugen.jsonファイルでカスタマイズできる特定のオプションがあります。

カーソルオプション

"cursorOptions": { "autoApprove": true, "category": "Image Generation", "icon": "🖼️", "displayName": "DiffuGen" }

ウィンドサーフィンのオプション

"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. diffugen.jsonのパスを更新するには、 setup_diffugen.shのオプション 5 を実行します。
  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 ファイルを参照してください。

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

🙏 謝辞

📬 お問い合わせ

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