File size: 1,556 Bytes
51ec5df
 
 
 
 
 
b82ab13
51ec5df
1fc8f8d
51ec5df
1fc8f8d
 
 
51ec5df
1fc8f8d
8990314
 
51ec5df
8990314
51ec5df
 
8990314
5a6aef2
1fc8f8d
 
 
 
 
 
 
51ec5df
1fc8f8d
 
 
 
51ec5df
b82ab13
51ec5df
 
afb2bba
36bd520
1fc8f8d
51ec5df
 
afb2bba
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

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('escenografia.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()