From a61cb74f739e9fadb5a3cfb0feb7d03254921985 Mon Sep 17 00:00:00 2001 From: tanaka takashi Date: Sat, 12 Sep 2026 22:35:10 +0900 Subject: アプリ名を mcp-sd15 から generate-image-sd15-mcp に変更 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 配布パッケージ名、CLIコマンド名、MCPサーバ名、文書中のアプリ名を 全て generate-image-sd15-mcp に統一した。Pythonパッケージ名 (mcp_sd15)とディレクトリ構造は変更せず、import文への影響なし。 変更内容: - pyproject.toml: name="mcp-sd15" → "generate-image-sd15-mcp" project.scripts: mcp-sd15 → generate-image-sd15-mcp - cli.py: argparse prog="mcp-sd15" → "generate-image-sd15-mcp" - server.py: MCPServer("mcp-sd15") → "generate-image-sd15-mcp" - README.md: 見出しと起動コマンドを更新 - doc/config.md: アプリ名と起動コマンド例を更新 - doc/mcp.md: 概要のアプリ名を更新 - doc/Design.md: モジュール構成、設定オブジェクト、スクリプト名を更新 - .github/copilot-instructions.md: リポジトリ指示のアプリ名を更新 - script/smoke_streamable_http.py: docstringのアプリ名を更新 - script/smoke_matrix.py: docstringのアプリ名を更新 - uv.lock: パッケージ名を更新 検証: - ruff format/check、pyright 0 errors、pytest 61 passed - uv run generate-image-sd15-mcp --version でコマンド名を確認 --- .github/copilot-instructions.md | 2 +- README.md | 4 +- doc/Design.md | 6 +-- doc/config.md | 4 +- doc/mcp.md | 2 +- pyproject.toml | 4 +- script/smoke_matrix.py | 2 +- script/smoke_streamable_http.py | 2 +- src/mcp_sd15/cli.py | 2 +- src/mcp_sd15/server.py | 2 +- uv.lock | 102 ++++++++++++++++++++-------------------- 11 files changed, 66 insertions(+), 66 deletions(-) diff --git a/.github/copilot-instructions.md b/.github/copilot-instructions.md index 4fc0e0b..1b8e604 100644 --- a/.github/copilot-instructions.md +++ b/.github/copilot-instructions.md @@ -1,4 +1,4 @@ -# mcp-sd15 repository instructions +# generate-image-sd15-mcp repository instructions ## 作業の進め方 diff --git a/README.md b/README.md index aafc072..774e3d7 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# mcp-sd15 +# generate-image-sd15-mcp ローカルの NVIDIA GPU と Stable Diffusion 1.x 互換 checkpoint を使う、stdio MCP サーバです。Text-to-Image、Depth/Openpose 誘導生成、ControlNet Inpaint を公開します。 @@ -8,7 +8,7 @@ 1. NVIDIA driverがCUDA 13.2対応PyTorchを実行できることを`nvidia-smi`で確認します。 2. `config.example.toml` をコピーし、モデルの root とファイル名を設定します。 3. `uv sync` を実行します。PyTorchは専用indexからCUDA 13.2版が導入されます。 -4. `uv run mcp-sd15 --config path/to/config.toml` で起動します。 +4. `uv run generate-image-sd15-mcp --config path/to/config.toml` で起動します。 トランスポートはTOMLの`[server]`で切り替えます。省略時は`stdio`です。 `streamable-http`を使う場合は次のように設定します。 diff --git a/doc/Design.md b/doc/Design.md index a603406..89f77aa 100644 --- a/doc/Design.md +++ b/doc/Design.md @@ -54,7 +54,7 @@ MCP Client / LLM ## 3. モジュール構成 ```text -mcp-sd15/ +generate-image-sd15-mcp/ ├─ pyproject.toml ├─ uv.lock ├─ .python-version @@ -390,12 +390,12 @@ GPU ```toml [project] -name = "mcp-sd15" +name = "generate-image-sd15-mcp" version = "0.1.0" requires-python = ">=3.11,<3.12" [project.scripts] -mcp-sd15 = "mcp_sd15.cli:main" +generate-image-sd15-mcp = "mcp_sd15.cli:main" ``` 運用は`pyproject.toml + uv.lock`を基準とする。 diff --git a/doc/config.md b/doc/config.md index 9fcdd55..6ea0f9a 100644 --- a/doc/config.md +++ b/doc/config.md @@ -2,10 +2,10 @@ ## 1. 概要 -`mcp-sd15`のモデル構成と生成設定はTOMLファイルで管理する。起動時に次のように指定する。 +`generate-image-sd15-mcp`のモデル構成と生成設定はTOMLファイルで管理する。起動時に次のように指定する。 ```powershell -uv run mcp-sd15 --config C:\path\to\config.toml +uv run generate-image-sd15-mcp --config C:\path\to\config.toml ``` `--config`を省略した場合は、現在のworking directoryにある`config.toml`を読み込む。 diff --git a/doc/mcp.md b/doc/mcp.md index 9edb3ca..1fea44a 100644 --- a/doc/mcp.md +++ b/doc/mcp.md @@ -2,7 +2,7 @@ ## 1. 概要 -`mcp-sd15` は`stdio`または`streamable-http`トランスポートで動作し、 +`generate-image-sd15-mcp` は`stdio`または`streamable-http`トランスポートで動作し、 Stable Diffusion 1.xによる画像生成を行う次の3ツールを公開する。 | ツール | 用途 | diff --git a/pyproject.toml b/pyproject.toml index bb5b190..431ce00 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -3,7 +3,7 @@ requires = ["hatchling"] build-backend = "hatchling.build" [project] -name = "mcp-sd15" +name = "generate-image-sd15-mcp" version = "0.1.0" description = "MCP server for local Stable Diffusion 1.x image generation" readme = "README.md" @@ -24,7 +24,7 @@ dependencies = [ ] [project.scripts] -mcp-sd15 = "mcp_sd15.cli:main" +generate-image-sd15-mcp = "mcp_sd15.cli:main" [dependency-groups] dev = [ diff --git a/script/smoke_matrix.py b/script/smoke_matrix.py index 7fc3ec2..de28a74 100644 --- a/script/smoke_matrix.py +++ b/script/smoke_matrix.py @@ -1,7 +1,7 @@ """Run generate_image across all checkpoint/VAE/LoRA/scheduler combinations. For each pattern, this script writes a temporary TOML config, starts the -``mcp-sd15`` server with ``streamable-http`` transport, calls ``generate_image`` +``generate-image-sd15-mcp`` server with ``streamable-http`` transport, calls ``generate_image`` through the HTTP endpoint, saves the PNG, and records the result. Usage:: diff --git a/script/smoke_streamable_http.py b/script/smoke_streamable_http.py index 5c762a2..a55f518 100644 --- a/script/smoke_streamable_http.py +++ b/script/smoke_streamable_http.py @@ -1,6 +1,6 @@ """Verify generate_image over the Streamable HTTP transport with the real GPU backend. -This script connects to a running ``mcp-sd15`` server that was started with +This script connects to a running ``generate-image-sd15-mcp`` server that was started with ``transport = "streamable-http"`` and calls ``generate_image`` through the HTTP endpoint. It exercises the full request path: HTTP connect → MCP initialize → tools/call → PNG response. diff --git a/src/mcp_sd15/cli.py b/src/mcp_sd15/cli.py index 3a3a9f7..abfde01 100644 --- a/src/mcp_sd15/cli.py +++ b/src/mcp_sd15/cli.py @@ -16,7 +16,7 @@ from .service import ImageGenerationService def parser() -> argparse.ArgumentParser: - result = argparse.ArgumentParser(prog="mcp-sd15") + result = argparse.ArgumentParser(prog="generate-image-sd15-mcp") result.add_argument("--config", type=Path, default=Path("config.toml")) result.add_argument("--version", action="version", version=f"%(prog)s {__version__}") return result diff --git a/src/mcp_sd15/server.py b/src/mcp_sd15/server.py index b8dc69d..ba1b99c 100644 --- a/src/mcp_sd15/server.py +++ b/src/mcp_sd15/server.py @@ -17,7 +17,7 @@ GuidanceMode = Literal["depth", "openpose", "openpose_full"] def create_server(service: ImageGenerationService) -> MCPServer: - server = MCPServer("mcp-sd15") + server = MCPServer("generate-image-sd15-mcp") @server.tool() async def generate_image( diff --git a/uv.lock b/uv.lock index c84563a..2ea9ed2 100644 --- a/uv.lock +++ b/uv.lock @@ -325,6 +325,57 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/fd/3c/6a2bf344106328fd04963664a60b9bb6496fc25df8e962fcdc1367285fb9/fsspec-2026.7.0-py3-none-any.whl", hash = "sha256:b57ddbafedfaef7018c1ecab32aa200a9d7ca26b77965f64e48b70061249d279", size = 206583, upload-time = "2026-07-28T16:34:49.538Z" }, ] +[[package]] +name = "generate-image-sd15-mcp" +version = "0.1.0" +source = { editable = "." } +dependencies = [ + { name = "accelerate" }, + { name = "controlnet-aux" }, + { name = "diffusers" }, + { name = "mcp" }, + { name = "numpy" }, + { name = "opencv-python-headless" }, + { name = "peft" }, + { name = "pillow" }, + { name = "safetensors" }, + { name = "torch" }, + { name = "torchvision" }, + { name = "transformers" }, +] + +[package.dev-dependencies] +dev = [ + { name = "pyright" }, + { name = "pytest" }, + { name = "pytest-asyncio" }, + { name = "ruff" }, +] + +[package.metadata] +requires-dist = [ + { name = "accelerate", specifier = ">=1.1" }, + { name = "controlnet-aux", specifier = ">=0.0.10" }, + { name = "diffusers", specifier = ">=0.35" }, + { name = "mcp", specifier = ">=2,<3" }, + { name = "numpy", specifier = ">=1.26,<3" }, + { name = "opencv-python-headless", specifier = ">=4.10" }, + { name = "peft", specifier = ">=0.13" }, + { name = "pillow", specifier = ">=10.4" }, + { name = "safetensors", specifier = ">=0.4" }, + { name = "torch", specifier = "==2.14.0+cu132", index = "https://download.pytorch.org/whl/cu132" }, + { name = "torchvision", specifier = "==0.29.0+cu132", index = "https://download.pytorch.org/whl/cu132" }, + { name = "transformers", specifier = ">=4.45,<5" }, +] + +[package.metadata.requires-dev] +dev = [ + { name = "pyright", specifier = ">=1.1.390" }, + { name = "pytest", specifier = ">=8.3" }, + { name = "pytest-asyncio", specifier = ">=0.24" }, + { name = "ruff", specifier = ">=0.8" }, +] + [[package]] name = "h11" version = "0.16.0" @@ -564,57 +615,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/1b/ff/8e7eade68b8a28f7da0ed1085544341b51f9c935dbf6b95c76b7edfea6a0/mcp-2.2.0-py3-none-any.whl", hash = "sha256:bde982589473a060ae145e3406e9a5333fe538c97229ba841f5a7f92be004f81", size = 365656, upload-time = "2026-09-07T16:06:19.711Z" }, ] -[[package]] -name = "mcp-sd15" -version = "0.1.0" -source = { editable = "." } -dependencies = [ - { name = "accelerate" }, - { name = "controlnet-aux" }, - { name = "diffusers" }, - { name = "mcp" }, - { name = "numpy" }, - { name = "opencv-python-headless" }, - { name = "peft" }, - { name = "pillow" }, - { name = "safetensors" }, - { name = "torch" }, - { name = "torchvision" }, - { name = "transformers" }, -] - -[package.dev-dependencies] -dev = [ - { name = "pyright" }, - { name = "pytest" }, - { name = "pytest-asyncio" }, - { name = "ruff" }, -] - -[package.metadata] -requires-dist = [ - { name = "accelerate", specifier = ">=1.1" }, - { name = "controlnet-aux", specifier = ">=0.0.10" }, - { name = "diffusers", specifier = ">=0.35" }, - { name = "mcp", specifier = ">=2,<3" }, - { name = "numpy", specifier = ">=1.26,<3" }, - { name = "opencv-python-headless", specifier = ">=4.10" }, - { name = "peft", specifier = ">=0.13" }, - { name = "pillow", specifier = ">=10.4" }, - { name = "safetensors", specifier = ">=0.4" }, - { name = "torch", specifier = "==2.14.0+cu132", index = "https://download.pytorch.org/whl/cu132" }, - { name = "torchvision", specifier = "==0.29.0+cu132", index = "https://download.pytorch.org/whl/cu132" }, - { name = "transformers", specifier = ">=4.45,<5" }, -] - -[package.metadata.requires-dev] -dev = [ - { name = "pyright", specifier = ">=1.1.390" }, - { name = "pytest", specifier = ">=8.3" }, - { name = "pytest-asyncio", specifier = ">=0.24" }, - { name = "ruff", specifier = ">=0.8" }, -] - [[package]] name = "mcp-types" version = "2.2.0" -- cgit v1.2.3