Spaces:
Running
Running
File size: 5,859 Bytes
d90d6a6 71f867b 0a39dde 12cb4be 95da284 3e64a10 0a39dde 71f867b effad1b 71f867b 421e233 d90d6a6 2011e87 02970bf d90d6a6 b453f44 716a958 b453f44 716a958 effad1b b453f44 89417a8 b453f44 716a958 45042e7 421e233 114b23a 5a47dee d90d6a6 b453f44 d90d6a6 12cb4be a968dbe 2b6d34d 421e233 0a39dde 421e233 0a39dde b8bcbae 0a39dde 421e233 d90d6a6 51214b8 421e233 71f867b d90d6a6 2c111d1 421e233 effad1b afb0579 effad1b 421e233 effad1b 0983bee 95da284 2b6d34d 5b38336 0983bee b462213 2011e87 89417a8 5b38336 b462213 b453f44 114b23a 0a39dde 111f19a dc99960 5b38336 2690756 2b6d34d 89417a8 ec1a890 71f867b 2b6d34d 421e233 0a39dde 421e233 0a39dde b8bcbae 0a39dde 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 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 |
import io
import random
import globales
import herramientas
import gradio_client
import conexion_firebase
from datetime import datetime
from fastapi import HTTPException, status
from huggingface_hub import InferenceClient
servidor = globales.servidor
servicio = globales.servicio
def genera_platillo_gpu(platillo):
prompt = globales.previo + 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]
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=False,
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)
conexion_firebase.registraLog(servidor, platillo, espacio_aleatorio_elegido, 42)
#Generales
conexion_firebase.incrementar_campo_numerico('estadisticas', 'imagenes', 'imagenes_totales', amount=1)
conexion_firebase.incrementar_campo_numerico('estadisticas', 'imagenes', 'endpoint-' + servicio, amount=1)
conexion_firebase.incrementar_campo_numerico('estadisticas', 'imagenes', 'gpu-totales', amount=1)
conexion_firebase.incrementar_campo_numerico('estadisticas', 'imagenes', 'gpu-' + servicio, amount=1)
#Día a Día
now = datetime.now()
document_id_fecha_hora = now.strftime("%Y-%m-%d")
nombre_doc = document_id_fecha_hora + " - " + servidor
conexion_firebase.incrementar_campo_numerico('estadisticas', nombre_doc, 'imagenes_totales', amount=1)
conexion_firebase.incrementar_campo_numerico('estadisticas', nombre_doc, 'endpoint-' + servicio, amount=1)
conexion_firebase.incrementar_campo_numerico('estadisticas', nombre_doc, 'gpu-totales', amount=1)
conexion_firebase.incrementar_campo_numerico('estadisticas', nombre_doc, 'gpu-' + servicio, amount=1)
return result[0]
except Exception as e:
print("Excepción: ", e)
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]
creditos_restantes_inference = conexion_firebase.obtenDato('nowme', servidor, 'inferencias')
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=12,
seed=42
)
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)
conexion_firebase.registraLog(servidor, platillo, modelo_aleatorio_elegido, 42)
#Generales
conexion_firebase.incrementar_campo_numerico('estadisticas', 'imagenes', 'imagenes_totales', amount=1)
conexion_firebase.incrementar_campo_numerico('estadisticas', 'imagenes', 'endpoint-' + servicio, amount=1)
conexion_firebase.incrementar_campo_numerico('estadisticas', 'imagenes', 'inference-totales', amount=1)
conexion_firebase.incrementar_campo_numerico('estadisticas', 'imagenes', 'inference-' + servicio, amount=1)
#Día a Día
now = datetime.now()
document_id_fecha_hora = now.strftime("%Y-%m-%d")
nombre_doc = document_id_fecha_hora + " - " + servidor
conexion_firebase.incrementar_campo_numerico('estadisticas', nombre_doc, 'imagenes_totales', amount=1)
conexion_firebase.incrementar_campo_numerico('estadisticas', nombre_doc, 'endpoint-' + servicio, amount=1)
conexion_firebase.incrementar_campo_numerico('estadisticas', nombre_doc, 'inference-totales', amount=1)
conexion_firebase.incrementar_campo_numerico('estadisticas', nombre_doc, 'inference-' + servicio, amount=1)
return img_io |