diff options
Diffstat (limited to 'doc')
| -rw-r--r-- | doc/Design.md | 15 | ||||
| -rw-r--r-- | doc/Specifications.md | 17 | ||||
| -rw-r--r-- | doc/config.md | 34 |
3 files changed, 59 insertions, 7 deletions
diff --git a/doc/Design.md b/doc/Design.md index fd4ac63..96eb505 100644 --- a/doc/Design.md +++ b/doc/Design.md @@ -181,6 +181,19 @@ Pydanticは必須とせず、`tomllib + dataclass + 明示的validation`を基æœ | images per prompt | 1 | | CPU offload | 初期値OFF | +Schedulerの文字列変換は`PipelineFactory`へ集約し、Tool層とService層には分岐を置かない。 + +| 設定値 | Diffusers実装 | 追加設定 | +|---|---|---| +| `dpmpp_2m_karras` | `DPMSolverMultistepScheduler` | `algorithm_type="dpmsolver++"`, `solver_order=2`, `use_karras_sigmas=True` | +| `dpmpp_2m_sde_karras` | `DPMSolverMultistepScheduler` | `algorithm_type="sde-dpmsolver++"`, `solver_order=2`, `use_karras_sigmas=True` | +| `euler_a` | `EulerAncestralDiscreteScheduler` | pipeline scheduler configを継承 | +| `ddim` | `DDIMScheduler` | pipeline scheduler configを継承 | +| `lcm` | `LCMScheduler` | pipeline scheduler configを継承 | + +LCM-LoRAも通常のLoRAと同じ`[[model.lora]]`でロードする。`lcm`選択時にstepsやCFGを +自動調整せず、TOMLの`generation.steps`と`generation.cfg_scale`をそのままpipelineへ渡す。 + --- ## 9. ControlNet設計 @@ -387,7 +400,7 @@ mcp-sd15 = "mcp_sd15.cli:main" | テスト種別 | GPU | 内容 | |---|---:|---| -| Config parsing | 不要 | TOML読込・型検証 | +| Config parsing | 不要 | TOML読込・型検証・scheduler enum検証 | | Path resolution | 不要 | モデルパス解決 | | MCP schema | 不要 | Tool schema検証 | | Request validation | 不要 | mode / size / image必須条件 | diff --git a/doc/Specifications.md b/doc/Specifications.md index 0fb6451..1b98f96 100644 --- a/doc/Specifications.md +++ b/doc/Specifications.md @@ -169,7 +169,7 @@ weight = 0.5 [generation] steps = 25 cfg_scale = 7.0 -scheduler = "dpmpp_2m" +scheduler = "dpmpp_2m_karras" default_size = "square_512" [controlnet.depth] @@ -189,6 +189,21 @@ model = "control_v11p_sd15_inpaint.safetensors" directory = "./outputs" ``` +### 7.1 Scheduler + +`generation.scheduler`は次の5種類のみを許可し、既定値は`dpmpp_2m_karras`とする。 + +| 値 | 動作 | +|---|---| +| `dpmpp_2m_karras` | DPM++ 2M + Karras sigmas | +| `dpmpp_2m_sde_karras` | DPM++ 2M SDE + Karras sigmas | +| `euler_a` | Euler Ancestral | +| `ddim` | DDIM | +| `lcm` | Latent Consistency Model scheduler | + +`lcm`選択時も`steps`と`cfg_scale`は設定値をそのまま使用する。LoRAファイル名から +LCM-LoRAを推測したり、生成設定を自動変更したりしない。 + --- ## 8. CLI要件 diff --git a/doc/config.md b/doc/config.md index c619d2d..804fbf8 100644 --- a/doc/config.md +++ b/doc/config.md @@ -45,7 +45,7 @@ uv run mcp-sd15 --config C:\path\to\config.toml | `model.lora[].weight` | number | No | `1.0` | | `generation.steps` | integer | No | `25` | | `generation.cfg_scale` | number | No | `7.0` | -| `generation.scheduler` | string enum | No | `dpmpp_2m` | +| `generation.scheduler` | string enum | No | `dpmpp_2m_karras` | | `generation.default_size` | string enum | No | `square_512` | | `controlnet.depth.enabled` | boolean | No | `false` | | `controlnet.depth.model` | string | 有効時 | なし | @@ -125,7 +125,7 @@ weight = 0.5 [generation] steps = 25 cfg_scale = 7.0 -scheduler = "dpmpp_2m" +scheduler = "dpmpp_2m_karras" default_size = "square_512" ``` @@ -147,10 +147,34 @@ default_size = "square_512" | 値 | Diffusers scheduler | |---|---| -| `dpmpp_2m` | DPM-Solver++、solver order 2 | +| `dpmpp_2m_karras` | `DPMSolverMultistepScheduler`。DPM++ 2M、Karras sigmas | +| `dpmpp_2m_sde_karras` | `DPMSolverMultistepScheduler`。DPM++ 2M SDE、Karras sigmas | | `ddim` | DDIM | -| `euler` | Euler Discrete | | `euler_a` | Euler Ancestral Discrete | +| `lcm` | Latent Consistency Model scheduler | + +`dpmpp_2m_karras`は`algorithm_type="dpmsolver++"`、`solver_order=2`、 +`use_karras_sigmas=true`で構築する。`dpmpp_2m_sde_karras`は`algorithm_type`だけを +`sde-dpmsolver++`へ変更する。他のschedulerはpipeline scheduler configを引き継ぐ。 + +### LCM-LoRA設定例 + +LCM-LoRAも通常のLoRAと同じ方法で指定する。 + +```toml +[[model.lora]] +file = "lcm-lora-sdv1-5.safetensors" +weight = 1.0 + +[generation] +steps = 4 +cfg_scale = 1.0 +scheduler = "lcm" +default_size = "square_512" +``` + +`lcm`選択時も`steps`と`cfg_scale`はTOML値をそのまま使用する。LCM-LoRAのファイル名を +自動判定して設定を書き換えることはない。 ### `default_size` @@ -259,7 +283,7 @@ weight = 0.5 [generation] steps = 25 cfg_scale = 7.0 -scheduler = "dpmpp_2m" +scheduler = "dpmpp_2m_karras" default_size = "square_512" [controlnet.depth] |
