Spaces:
Sleeping
Sleeping
| from fastapi import FastAPI, File, UploadFile, HTTPException | |
| from fastapi.responses import StreamingResponse, HTMLResponse | |
| from rembg import remove | |
| import uvicorn | |
| from PIL import Image | |
| from io import BytesIO | |
| app = FastAPI() | |
| async def read_index(): | |
| with open("templates/index.html", "r") as file: | |
| return file.read() | |
| async def upload_file(file: UploadFile = File(...)): | |
| if not file: | |
| raise HTTPException(status_code=400, detail="No file uploaded") | |
| if file.filename == '': | |
| raise HTTPException(status_code=400, detail="No file selected") | |
| input_image = Image.open(file.file) | |
| output_image = remove(input_image, post_process_mask=True) | |
| img_io = BytesIO() | |
| output_image.save(img_io, 'PNG') | |
| img_io.seek(0) | |
| return StreamingResponse(img_io, media_type="image/png", headers={"Content-Disposition": f"attachment; filename={file.filename}_rmng.png"}) | |
| if __name__ == '__main__': | |
| uvicorn.run(app, host='0.0.0.0', port=5100, debug=True) |