Spaces:
Runtime error
Runtime error
File size: 4,787 Bytes
b075e9c 1b4d895 b075e9c 53121ba b075e9c 31f92c8 b075e9c 1b4d895 b075e9c |
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 |
import gradio as gr
import sulkuPypi
from funciones import mass
from data import usuarios
import encrypter
import time
import nycklar.nodes
#Funciones
def authenticate(username, password):
for u, p in usuarios:
#Si el usuario y la contraseña son correctas...
if username == u and password == p:
#Agrego el nombre del usuario al estado general.
gr.State.usuario = username
#Bienvenida al usuario...
print("Welcome ", gr.State.usuario)
#Capsule es el usuario encriptado que enviarás a la API de Sulku.
capsule = encrypter.encripta(gr.State.usuario).decode("utf-8") #decode es para quitarle el 'b
gr.State.capsule = capsule
#Checa cuantos tokens tiene ese usuario via la API de Sulku:
gr.State.tokens = sulkuPypi.getTokens(capsule)
print(f"Tienes: {gr.State.tokens} tokens. ")
return True
#Si no hubo coincidencia regresas un false.
return False
#Función principal
def perform(input1, input2, tokens):
print("Éste es el input de tokens que recibí:", tokens)
print("Estando en perform182, la cantidad de tokens es: ", gr.State.tokens)
#Revisaremos de nuevo:
gr.State.tokens = sulkuPypi.getTokens(encrypter.encripta(gr.State.usuario).decode("utf-8")) #Todo en una línea.
print("Ahora tienes: ", gr.State.tokens)
#Después autoriza.
#Si está autorizada puede ejecutar la tarea, ésta lógica si está a cargo aquí, por parte de la app y su desarrollador, no de Sulku.
autorizacion = sulkuPypi.authorize(gr.State.tokens, 'picswap')
print("La autorización es: ", autorizacion)
info_window = ""
#Después ejecuta la masa.
if autorizacion is True:
path = mass(input1,input2)
else:
info_window = "Out of credits..."
path = 'no-result.png'
return path, info_window, btn_buy
print(f"El path final fue {path}, si es no-result, no debites y controla la info window.")
print(f"El type de path es: ", type(path))
print("Convirtiendo path a string...")
path_string = str(path)
print("Path_string = ", path_string)
if "no-result" not in path_string:
#Si el path NO tiene no-result, todo funcionó bien, por lo tanto debita.
print("Se obtuvo un resultado, debitaremos.")
#Y finalmente debita los tokens.
gr.State.tokens = sulkuPypi.debitTokens(gr.State.capsule, "picswap")
print(f"Y ahora tienes: {gr.State.tokens} tokens.")
info_window = "Image ready!"
else:
print("No se detectó un rostro...")
info_window = "No face in source path detected."
print(f"Y ahora tienes: {gr.State.tokens} tokens.")
lbl_credits = "Nuevo texto..."
#No se hizo un proceso, por lo tanto no debitaremos.
#En el futuro, como regla de negocio, podría cambiar y que si debitemos.
return path, info_window, btn_buy
def click_buy():
print("Ejecutando change...")
nuevo_markdown = """
"""
return nuevo_markdown
def display_tokens():
print("Ejecutando display_tokens...")
return gr.State.tokens
#LOCAL VARIABLES
# gr.State.usuario = "briggsboardman"
# Capsule es el usuario encriptado que enviarás a la API de Sulku.
# capsule = encrypter.encripta(gr.State.usuario).decode("utf-8") #decode es para quitarle el 'b
# gr.State.capsule = capsule
# gr.State.tokens = 20
#Inputs
source_image = gr.Image(label="Source")
destination_image = gr.Image(label="Destination")
#Outputs
result_image = gr.Image(label="Blend Result")
#txt_console = gr.Textbox(label="Console", value="AI Engine Ready...", interactive=False)
lbl_console = gr.Label(label="AI Terminal Messages", value="AI Engine ready...", container=True)
btn_buy = gr.Button("Buy More", visible=True, size='lg')
#btn_buy.click(fn=click_buy, outputs=mrk_title)
#Gradio themes:
# — gr.themes.Base()
# — gr.themes.Default()
# — gr.themes.Glass()
# — gr.themes.Monochrome()
# — gr.themes.Soft()
#valor = gr.State.tokens
valor = "205"
with gr.Blocks(theme=gr.themes.Base(), css="footer {visibility: hidden}") as main:
with gr.Row():
btn_buy,
gr.Label(visible=True, scale=5)
lbl_credits = gr.Label(label="Credits Available", value=valor, scale=1)
result_image.change(fn=display_tokens, outputs=lbl_credits)
with gr.Row():
demo = gr.Interface(
fn=perform,
title="",
inputs=[source_image, destination_image, gr.State.tokens],
outputs=[result_image, lbl_console, btn_buy],
)
main.launch(auth=authenticate) |