Spaces:
Running
Running
File size: 4,021 Bytes
d90d6a6 effad1b d90d6a6 71f867b 12cb4be 95da284 3e64a10 71f867b effad1b 71f867b d90d6a6 2011e87 716a958 d90d6a6 51214b8 b453f44 716a958 b453f44 716a958 effad1b b453f44 716a958 b453f44 89417a8 b453f44 716a958 45042e7 d90d6a6 5a47dee d90d6a6 b453f44 d90d6a6 12cb4be a968dbe 2b6d34d d90d6a6 51214b8 716a958 2690756 4a900cc 71f867b d90d6a6 2c111d1 effad1b 2c111d1 effad1b afb0579 effad1b e8b930e effad1b 716a958 0983bee 95da284 2b6d34d 5b38336 0983bee b462213 2011e87 89417a8 5b38336 b462213 b453f44 bb5a2a3 effad1b 111f19a e8b930e dc99960 5b38336 2690756 2b6d34d 89417a8 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 121 122 123 124 |
import io
import time
import globales
import random
import herramientas
import gradio_client
import conexion_firebase
from fastapi import HTTPException, status
from huggingface_hub import InferenceClient
servidor = globales.servidor
def genera_platillo_gpu(platillo):
prompt = globales.previo + platillo
print("Platillo enviado:", platillo)
try:
dict_espacios = conexion_firebase.obtenDato('nowme', servidor, 'espacios')
espacios_habilitados = [
nombre for nombre, config in dict_espacios.items()
if config.get("habilitado", False) # Usamos .get() para evitar KeyError si 'habilitado' no existe
]
print(f"Espacios habilitados: {espacios_habilitados}")
espacio_aleatorio_elegido = random.choice(espacios_habilitados)
configuracion_espacio = dict_espacios[espacio_aleatorio_elegido]
print(f"La configuración completa para '{espacio_aleatorio_elegido}' es: {configuracion_espacio}")
client = gradio_client.Client(configuracion_espacio['ruta'], hf_token=globales.llave)
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=configuracion_espacio['api_name']
)
#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):
dict_modelos = conexion_firebase.obtenDato('nowme', servidor, 'modelos')
modelos_habilitados = [
nombre for nombre, config in dict_modelos.items()
if config.get("habilitado", False) # Usamos .get() para evitar KeyError si 'habilitado' no existe
]
print(f"Modelos habilitados: {modelos_habilitados}")
modelo_aleatorio_elegido = random.choice(modelos_habilitados)
configuracion_modelo = dict_modelos[modelo_aleatorio_elegido]
print(f"La configuración completa para '{modelo_aleatorio_elegido}' es: {configuracion_modelo}")
creditos_restantes_inference = conexion_firebase.obtenDato('nowme', servidor, 'inferencias')
#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,
model=configuracion_modelo['ruta'],
api_key=globales.llave
)
try:
image = client.text_to_image(
prompt,
#negative_prompt="live animals",
width=784, #786
height=560, #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 💀")
error_impreso = f"Error: {e}"
print(error_impreso)
raise HTTPException(
status_code=status.HTTP_500_INTERNAL_SERVER_ERROR,
)
img_io = io.BytesIO()
image.save(img_io, "PNG")
img_io.seek(0)
print("Platillo generado:", platillo)
return img_io |