Spaces:
Running
Running
File size: 1,616 Bytes
d90d6a6 5b38336 d90d6a6 5b38336 d90d6a6 12cb4be 5b38336 d90d6a6 12cb4be 2c1c29c 12cb4be d90d6a6 4a900cc d90d6a6 4a900cc |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
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")
|