Spaces:
Sleeping
Sleeping
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 = {arg: valor for arg, valor in zip(csv_reader.fieldnames, args)} | |
choices = [campo.strip() for campo in campos.values() if campo] | |
for campo, valor in campos.items(): | |
if not valor: | |
# Si el campo está vacío, se selecciona un valor aleatorio de la lista correspondiente | |
campos[campo] = parametroAleatorio(valoresUnicos[campo]) | |
choices.append(campos[campo]) | |
prompt = ', '.join(choices) | |
return prompt | |
with open('volumetrics.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() | |