File size: 6,161 Bytes
d90d6a6 effad1b d90d6a6 71f867b 12cb4be 95da284 3e64a10 71f867b effad1b 71f867b d90d6a6 435164a d90d6a6 2011e87 716a958 d90d6a6 51214b8 b453f44 716a958 b453f44 716a958 effad1b b453f44 716a958 b453f44 716a958 b453f44 716a958 45042e7 d90d6a6 5a47dee d90d6a6 b453f44 d90d6a6 12cb4be a968dbe 2b6d34d d90d6a6 51214b8 716a958 2690756 4a900cc 71f867b d90d6a6 e8b930e effad1b afb0579 effad1b e8b930e effad1b 716a958 0983bee 95da284 2b6d34d 5b38336 0983bee b462213 2011e87 95da284 b462213 5b38336 b462213 b453f44 bb5a2a3 effad1b 111f19a e8b930e dc99960 5b38336 2690756 2b6d34d effad1b 2b6d34d effad1b 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 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 |
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 |