from mcp.server.fastmcp import FastMCP import json import sys import io import time from gradio_client import Client sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding="utf-8", errors="replace") sys.stderr = io.TextIOWrapper(sys.stderr.buffer, encoding="utf-8", errors="replace") mcp = FastMCP("huggingface_spaces_image_display") @mcp.tool() async def generate_image(prompt: str, width: int = 512, height: int = 512) -> str: """Generate an image using SanaSprint model. Args: prompt: Text prompt describing the image to generate width: Image width (default: 512) height: Image height (default: 512) """ client = Client("https://ysharma-sanasprint.hf.space/") try: result = client.predict( prompt, "0.6B", 0, True, width, height, 4.0, 2, api_name="/infer" ) if isinstance(result, list) and len(result) >= 1: image_data = result[0] if isinstance(image_data, dict) and "url" in image_data: return json.dumps( { "type": "image", "url": image_data["url"], "message": f"Generated image for prompt: {prompt}", } ) return json.dumps({"type": "error", "message": "Failed to generate image"}) except Exception as e: return json.dumps( {"type": "error", "message": f"Error generating image: {str(e)}"} ) if __name__ == "__main__": mcp.run(transport="stdio")