Spaces:
Runtime error
Runtime error
| 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 procesa_dni(platillo): | |
| print("Estoy en procesa DNI...") | |
| print("Y esto es contents: ", platillo) | |
| time.sleep(18) | |
| 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) | |
| #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=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_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) | |
| #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=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 | |
| ) | |
| print("Cree cliente: ", client) | |
| time.sleep(0) | |
| 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 馃拃") | |
| #modelo=globales.inferencia_backup #Con el nuevo paradigma ya no hay cambio de modelo. | |
| #Escribe en txt el nuevo modelo. | |
| #herramientas.modificaModeloActual(modelo) | |
| 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 |