Spaces:
Running
Running
File size: 3,090 Bytes
d90d6a6 716a958 12cb4be 95da284 3e64a10 716a958 d90d6a6 2011e87 716a958 d90d6a6 51214b8 716a958 5a47dee 716a958 45042e7 d90d6a6 5a47dee d90d6a6 51214b8 d90d6a6 12cb4be 716a958 12cb4be a968dbe 2b6d34d d90d6a6 51214b8 716a958 2690756 4a900cc 95da284 d90d6a6 5b38336 afb0579 e8b930e 0983bee afb0579 0983bee afb0579 e8b930e 716a958 0983bee 95da284 2b6d34d 5b38336 0983bee 2011e87 95da284 5b38336 45042e7 74ba95e bb5a2a3 111f19a e8b930e dc99960 5b38336 2690756 2b6d34d 5b3c963 2b6d34d |
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 |
import io
import globales
import espacios
import herramientas
import gradio_client
from huggingface_hub import InferenceClient
import conexion_firebase
import random
import time
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"
return '{"Error 500": e}'
def genera_platillo_inference(platillo):
modelo_actual = conexion_firebase.obtenDato('nowme', 'huggingface', 'modelo_actual')
modelo = modelo_actual
print("Modelo:", modelo)
#Elegir proveedor de inferencia
creditos_restantes_inference = conexion_firebase.obtenDato('nowme', 'huggingface', 'hfInference')
#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)
return f"Error: {e}"
img_io = io.BytesIO()
image.save(img_io, "PNG")
img_io.seek(0)
print("Platillo generado:", platillo)
return img_io
|