summaryrefslogtreecommitdiff
path: root/src/mcp_sd15/config.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/mcp_sd15/config.py')
-rw-r--r--src/mcp_sd15/config.py14
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),