from __future__ import annotations import base64 import io from pathlib import Path import pytest from PIL import Image from mcp_sd15.config import ( AppConfig, ControlModelConfig, ControlNetConfig, GenerationConfig, ModelConfig, OutputConfig, ) @pytest.fixture def app_config(tmp_path: Path) -> AppConfig: return AppConfig( model=ModelConfig(tmp_path, "base.safetensors", None, ()), generation=GenerationConfig(), controlnet=ControlNetConfig( depth=ControlModelConfig(True, "depth.safetensors", "midas"), openpose=ControlModelConfig(True, "pose.safetensors"), inpaint=ControlModelConfig(True, "inpaint.safetensors"), ), output=OutputConfig(tmp_path / "outputs", False), ) @pytest.fixture def image_base64() -> str: output = io.BytesIO() Image.new("RGB", (8, 8), "blue").save(output, format="PNG") return base64.b64encode(output.getvalue()).decode("ascii")