from fastapi import FastAPI, HTTPException import httpx from rembg import remove from io import BytesIO from fastapi.responses import StreamingResponse app = FastAPI() @app.get("/remove-background/") async def remove_background(image_url: str): try: # Baixa a imagem da URL fornecida async with httpx.AsyncClient() as client: response = await client.get(image_url) response.raise_for_status() # Verifica se a URL foi bem-sucedida image_data = response.content # Remover o fundo da imagem usando o rembg output_image = remove(image_data) # Retorna a imagem com o fundo removido como resposta return StreamingResponse(BytesIO(output_image), media_type="image/png") except httpx.RequestError as e: raise HTTPException(status_code=400, detail="Erro ao baixar a imagem: " + str(e)) except Exception as e: raise HTTPException(status_code=500, detail="Erro ao processar a imagem: " + str(e))