1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
|
"""Command-line entry point."""
from __future__ import annotations
import argparse
import logging
from collections.abc import Sequence
from pathlib import Path
from . import __version__
from .config import load_config
from .errors import SD15Error
from .model_manager import ModelManager
from .server import create_server
from .service import ImageGenerationService
def parser() -> argparse.ArgumentParser:
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
def main(argv: Sequence[str] | None = None) -> int:
args = parser().parse_args(argv)
logging.basicConfig(
level=logging.INFO,
format="%(asctime)s %(levelname)s %(name)s: %(message)s",
)
try:
config = load_config(args.config)
logging.getLogger(__name__).info(
"loading checkpoint=%s loras=%d",
config.model.checkpoint_path(),
len(config.model.loras),
)
backend = ModelManager(config)
service = ImageGenerationService(config, backend)
server = create_server(service)
if config.server.transport == "streamable-http":
server.run(
transport="streamable-http",
host=config.server.host,
port=config.server.port,
)
else:
server.run()
except SD15Error as exc:
logging.getLogger(__name__).error("startup failed: %s", exc)
return 2
return 0
if __name__ == "__main__":
raise SystemExit(main())
|