nowme-images / app.py
Moibe's picture
Model backup
2b6d34d
raw
history blame contribute delete
1.68 kB
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")