summaryrefslogtreecommitdiff
path: root/src/mcp_sd15
diff options
context:
space:
mode:
Diffstat (limited to 'src/mcp_sd15')
-rw-r--r--src/mcp_sd15/config.py4
-rw-r--r--src/mcp_sd15/pipeline_factory.py5
-rw-r--r--src/mcp_sd15/service.py1
3 files changed, 9 insertions, 1 deletions
diff --git a/src/mcp_sd15/config.py b/src/mcp_sd15/config.py
index 39f31c9..c82cb6e 100644
--- a/src/mcp_sd15/config.py
+++ b/src/mcp_sd15/config.py
@@ -11,7 +11,9 @@ from typing import Any
from .errors import ConfigError
VALID_SIZES = frozenset({"square_512", "landscape_512", "portrait_512"})
-VALID_SCHEDULERS = frozenset({"dpmpp_2m_karras", "dpmpp_2m_sde_karras", "euler_a", "ddim", "lcm"})
+VALID_SCHEDULERS = frozenset(
+ {"dpmpp_2m_karras", "dpmpp_2m_sde_karras", "euler_a", "ddim", "ddim_trailing", "lcm"}
+)
VALID_TRANSPORTS = frozenset({"stdio", "streamable-http"})
diff --git a/src/mcp_sd15/pipeline_factory.py b/src/mcp_sd15/pipeline_factory.py
index 02fe882..e865555 100644
--- a/src/mcp_sd15/pipeline_factory.py
+++ b/src/mcp_sd15/pipeline_factory.py
@@ -151,6 +151,11 @@ class PipelineFactory:
solver_order=2,
use_karras_sigmas=True,
)
+ if name == "ddim_trailing":
+ return diffusers.DDIMScheduler.from_config(
+ current.config,
+ timestep_spacing="trailing",
+ )
classes = {
"euler_a": diffusers.EulerAncestralDiscreteScheduler,
"ddim": diffusers.DDIMScheduler,
diff --git a/src/mcp_sd15/service.py b/src/mcp_sd15/service.py
index 65b62e7..c1feade 100644
--- a/src/mcp_sd15/service.py
+++ b/src/mcp_sd15/service.py
@@ -96,6 +96,7 @@ class ImageGenerationService:
"seed": seed,
"size": str(request.size),
"mode": method,
+ "scheduler": self.config.generation.scheduler,
"timestamp": datetime.now(UTC).isoformat(),
"elapsed_seconds": round(time.monotonic() - started, 3),
}