from fastapi import FastAPI, Form from fastapi import FastAPI, File, UploadFile from fastapi.responses import StreamingResponse, FileResponse from io import BytesIO import funciones, globales import herramientas app = FastAPI() @app.post("/echo-image/") async def echo_image(image: UploadFile = File(...)): if not image.content_type.startswith("image/"): return {"error": "El archivo no es una imagen"} contents = await image.read() return StreamingResponse(BytesIO(contents), media_type=image.content_type) @app.post("/genera-imagen/") async def genera_imagen(platillo: str = Form(...)): #Obtengo antes los segundos disponibles para saber si tengo GPU disponible o me voy a inferencia. seconds_available = herramientas.obtenSegundosDisponibles() print("Los segundos disponibles obtenidos son: ", seconds_available) print("Y el tipo del resultado es: ", type(seconds_available)) if seconds_available > globales.work_cost: print("GPU...") resultado = funciones.genera_platillo_gpu(platillo) if "Error" in resultado: return resultado else: return FileResponse(resultado, media_type="image/png", filename="imagen.png") else: print("Inference...") resultado = funciones.genera_platillo_inference(platillo) print("El resultado de inference es: ", resultado) print("Y su type es: ", type(resultado)) if type(resultado) is str: return '{"Error":"500"}' else: return StreamingResponse(content=resultado, media_type="image/png")