Spaces:
Runtime error
Runtime error
| from fastapi import FastAPI, File, UploadFile | |
| from fastapi.responses import StreamingResponse | |
| from PIL import Image, ImageOps, ImageFilter | |
| import io | |
| app = FastAPI() | |
| async def convert_to_sketch(file: UploadFile = File(...)): | |
| # Load the image | |
| image = Image.open(io.BytesIO(await file.read())) | |
| # Convert to grayscale | |
| grayscale = ImageOps.grayscale(image) | |
| # Invert the grayscale image | |
| inverted = ImageOps.invert(grayscale) | |
| # Apply Gaussian blur to the inverted image | |
| blurred = inverted.filter(ImageFilter.GaussianBlur(15)) | |
| # Blend the grayscale image with the blurred inverted image using color dodge | |
| blended = Image.blend(grayscale, blurred, 0.5) | |
| # Enhance the contrast (optional) | |
| enhanced = ImageOps.autocontrast(blended, cutoff=2) | |
| # Save the resulting image to a bytes buffer | |
| buf = io.BytesIO() | |
| enhanced.save(buf, format='PNG') | |
| buf.seek(0) | |
| return StreamingResponse(buf, media_type="image/png") | |
| if __name__ == "__main__": | |
| import uvicorn | |
| uvicorn.run(app, host="0.0.0.0", port=8000) | |