Spaces:
Running
Running
File size: 3,432 Bytes
d90d6a6 716a958 71f867b 12cb4be 95da284 3e64a10 71f867b ec1a890 71f867b d90d6a6 2011e87 716a958 d90d6a6 51214b8 716a958 5a47dee 716a958 45042e7 d90d6a6 5a47dee d90d6a6 51214b8 d90d6a6 12cb4be 716a958 12cb4be a968dbe 2b6d34d d90d6a6 51214b8 716a958 2690756 4a900cc 71f867b d90d6a6 5b38336 afb0579 71f867b afb0579 e8b930e 0983bee afb0579 0983bee 71f867b afb0579 e8b930e 716a958 0983bee 95da284 2b6d34d 5b38336 0983bee 2011e87 95da284 5b38336 45042e7 74ba95e bb5a2a3 111f19a e8b930e dc99960 5b38336 2690756 2b6d34d 5b3c963 ec1a890 71f867b ec1a890 71f867b 2b6d34d 71f867b |
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 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 |
import io
import globales
import espacios
import random
import herramientas
import gradio_client
import conexion_firebase
from fastapi import HTTPException, status
from huggingface_hub import InferenceClient
import time
servidor = globales.servidor
def genera_platillo_gpu(platillo):
prompt = globales.previo + platillo
print("Platillo enviado:", platillo)
try:
selected_space_config = random.choice(espacios.espacio)
client = gradio_client.Client(selected_space_config['id'], hf_token=globales.llave)
# kwargs = {
# "prompt": prompt,
# "api_name": "/infer"
# }
kwargs = selected_space_config['static_kwargs']
result = client.predict(**kwargs,
prompt=prompt,
#negative_prompt="live animals",
# seed=42,
# randomize_seed=True,
width=786,
height=568,
# guidance_scale=3.5,
# num_inference_steps=28,
# api_name="/infer"
)
#print("Result inmediato es: ", result)
#Cuando es GPU, debe de restar segundos disponibles de HF
herramientas.restaSegundosGPU(globales.work_cost)
print("Platillo generado:", platillo)
return result[0]
except Exception as e:
print("Excepción: ", e)
# Opción para regresar imagen genérica. (ya no porque se envía desde backend.)
# return "default.png"
raise HTTPException(
status_code=status.HTTP_500_INTERNAL_SERVER_ERROR,
detail=e
)
def genera_platillo_inference(platillo):
modelo_actual = conexion_firebase.obtenDato('nowme', servidor, 'modelo_actual')
modelo = modelo_actual
print("Modelo:", modelo)
#Elegir proveedor de inferencia
creditos_restantes_inference = conexion_firebase.obtenDato('nowme', servidor, 'inferencias')
#creditos_restantes_inference = 5000
#print("Los créditos restantes de hf-inference que tienes son: ", creditos_restantes_inference)
if creditos_restantes_inference > 0:
provedor_seleccionado = globales.proveedor
else:
provedor_seleccionado = globales.proveedor_back
prompt = globales.previo + platillo
print("Platillo enviado:", platillo)
client = InferenceClient(
provider= provedor_seleccionado,
api_key=globales.llave
)
try:
image = client.text_to_image(
prompt,
#negative_prompt="live animals",
model=modelo,
width=786,
height=568,
num_inference_steps=16
)
#Detenido momentaneamente por cambio a firebase.
herramientas.restaSegundosInference(globales.inference_cost)
except Exception as e:
print("Excepción: ", e)
if "Gateway Time-out" in str(e):
print("GATEWAY TIME-OUT 💀")
modelo=globales.inferencia_backup
#Escribe en txt el nuevo modelo.
herramientas.modificaModeloActual(modelo)
error_impreso = f"Error: {e}"
print(error_impreso)
time.sleep(18)
raise HTTPException(
status_code=status.HTTP_500_INTERNAL_SERVER_ERROR,
#detail='detail'
)
img_io = io.BytesIO()
image.save(img_io, "PNG")
img_io.seek(0)
print("Platillo generado:", platillo)
return img_io |