Spaces:
Sleeping
Sleeping
File size: 1,679 Bytes
95da284 d90d6a6 5b38336 d90d6a6 5b38336 95da284 5b38336 d90d6a6 95da284 12cb4be 95da284 12cb4be 95da284 d90d6a6 4a900cc d90d6a6 95da284 d90d6a6 4a900cc 2b6d34d 4a900cc 95da284 |
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 |
import herramientas
from io import BytesIO
import funciones, globales
from fastapi import FastAPI, Form
from fastapi import FastAPI, File, UploadFile
from fastapi.responses import StreamingResponse, FileResponse
app = FastAPI()
@app.post("/echo-image/",
tags=["Test"],
description="Descripción",
summary="Summary"
)
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 los segundos disponibles de procesamiento para saber si tengo GPU disponible de la capa gratuita o me voy a método cobrado.
seconds_available = herramientas.obtenSegundosDisponibles()
print("Los segundos de procesamiento disponibles el día de hoy son: ", seconds_available)
if seconds_available > globales.work_cost:
print("Usando GPU (capa gratuita)...")
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("Usando Inference...")
resultado = funciones.genera_platillo_inference(platillo)
print("El resultado de inference es: ", resultado)
if type(resultado) is str:
return resultado
else:
return StreamingResponse(content=resultado, media_type="image/png") |