File size: 2,218 Bytes
d90d6a6
 
12cb4be
95da284
 
d90d6a6
 
 
2011e87
2b6d34d
 
d90d6a6
 
 
 
51214b8
d90d6a6
 
51214b8
 
d90d6a6
95da284
d90d6a6
 
 
 
 
 
 
51214b8
d90d6a6
12cb4be
 
 
a968dbe
2b6d34d
95da284
d90d6a6
 
51214b8
d90d6a6
95da284
4a900cc
95da284
d90d6a6
 
 
5b38336
2b6d34d
 
 
 
 
 
 
 
 
 
95da284
2b6d34d
 
5b38336
d90d6a6
2011e87
95da284
5b38336
 
 
 
2b6d34d
 
5b38336
 
567cfc7
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
import io
import globales
import herramientas
import gradio_client
from huggingface_hub import InferenceClient

def genera_platillo_gpu(platillo):

    prompt = globales.previo + platillo
    print("Platillo enviado:", platillo)
    

    kwargs = {
            "prompt": prompt,
            "api_name": "/infer"
        }    

    try:

        client = gradio_client.Client(globales.espacio, hf_token=globales.llave)
        result = client.predict(**kwargs
        # prompt=prompt,
        # negative_prompt="",
        # seed=42,
        # randomize_seed=True,
        # width=1024,
        # height=1024,
        # guidance_scale=3.5,
        # num_inference_steps=28,
        # api_name="/infer"       
        )

        #Cuando es GPU, debe de restar segundos disponibles de HF 
        herramientas.restaSegundosGPU(globales.work_cost)

        print("Platillo generado:", platillo)
        print("Resultado regresado en result[0] es: ", result[0])        
        return result[0]

    except Exception as e:     
        print("Excepción es: ", e)
        # Opción para regresar imagen genérica.
        # return "default.png"
        return '{"Error 500": e}'


def genera_platillo_inference(platillo):

    print("Proveedor:", globales.proveedor)
    modelo_actual = herramientas.obtenModeloActual()

    #modelo = globales.inferencia

    modelo = modelo_actual


    print("Modelo:", modelo)

    prompt = globales.previo + platillo
    print("Platillo enviado:", platillo)
       
    client = InferenceClient(
            provider= globales.proveedor,
            api_key=globales.llave
        )    

    try: 
        image = client.text_to_image(
        prompt,
        model=modelo
        )                 
        
    except Exception as e:
        print("Excepción es: ", 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