diff options
Diffstat (limited to 'src/mcp_sd15/config.py')
| -rw-r--r-- | src/mcp_sd15/config.py | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/src/mcp_sd15/config.py b/src/mcp_sd15/config.py index e41bdfd..39f31c9 100644 --- a/src/mcp_sd15/config.py +++ b/src/mcp_sd15/config.py @@ -44,6 +44,8 @@ class GenerationConfig: cfg_scale: float = 7.0 scheduler: str = "dpmpp_2m_karras" default_size: str = "square_512" + clip_skip: int = 0 + pad_last_block: bool = False @dataclass(frozen=True) @@ -218,6 +220,14 @@ def load_config(path: str | Path, *, validate_paths: bool = True) -> AppConfig: default_size = _string(generation_raw, "default_size") or "square_512" if default_size not in VALID_SIZES: raise ConfigError(f"unsupported default_size: {default_size}") + clip_skip_value = generation_raw.get("clip_skip", 0) + if ( + isinstance(clip_skip_value, bool) + or not isinstance(clip_skip_value, int) + or not 0 <= clip_skip_value <= 12 + ): + raise ConfigError("generation.clip_skip must be an integer between 0 and 12") + pad_last_block = _bool(generation_raw, "pad_last_block", False) control_raw = _table(raw, "controlnet") controlnet = ControlNetConfig( @@ -258,7 +268,9 @@ def load_config(path: str | Path, *, validate_paths: bool = True) -> AppConfig: config = AppConfig( model=ModelConfig(root, checkpoint, vae, tuple(loras)), - generation=GenerationConfig(steps_value, cfg_scale, scheduler, default_size), + generation=GenerationConfig( + steps_value, cfg_scale, scheduler, default_size, clip_skip_value, pad_last_block + ), controlnet=controlnet, output=OutputConfig(output_dir.resolve(), _bool(output_raw, "enabled", False)), server=ServerConfig(transport, host, port_value), |
