shinpiden / app.py
charliealonso's picture
Concatenar orden correcto
4e57c20
raw
history blame
No virus
1.55 kB
from contextlib import nullcontext
import csv
import random
import gradio as gr
from gradio.components import Textbox, Dropdown
def parametroAleatorio(lista):
res = random.choice(list(lista))
while res == '':
res = random.choice(list(lista))
return res
def concat_prompt(*args):
campos = {campo: parametroAleatorio(valoresUnicos[campo]) for campo in csv_reader.fieldnames}
campos.update({campo: valor for campo, valor in zip(csv_reader.fieldnames, args) if valor})
prompt = ', '.join([campos[campo] for campo in csv_reader.fieldnames])
return prompt
with open('shinpiden.csv', 'r') as csv_file:
csv_reader = csv.DictReader(csv_file)
valoresUnicos = {}
for campo in csv_reader.fieldnames:
valoresUnicos[campo] = set()
for row in csv_reader:
for campo, valor in row.items():
valoresUnicos[campo].add(valor)
dropdowns = []
for campo, valores in valoresUnicos.items():
dropdown = Dropdown(list(valores), label=campo.capitalize())
dropdowns.append(dropdown)
output_text = Textbox(label='Prompt')
title = "Generador Prompts Midjourney"
description = '<div align="center"> Selecciona entre los distintos menús desplegables para generar un Prompt creativo, los que dejes en blanco serán elegidos aleatoriamente.</div>'
inputs = [Dropdown(list(valoresUnicos[campo]), label=campo.capitalize()) for campo in valoresUnicos.keys()]
outputs = output_text
gr.Interface(fn=concat_prompt, inputs=inputs, outputs=outputs, title=title, description=description).launch()