import json import random import gradio as gr def generate_prompt(): generated_prompt = [] for category, values in choices.items(): choice = values.get() selected_choice = choice prompt_part = generate_category_prompt(category, selected_choice) if prompt_part: generated_prompt.append(prompt_part) return ", ".join(generated_prompt) def generate_category_prompt(category, choice): if choice == 'random': word = random.choice(categories[category]['random']) elif choice == 'none': return None else: word = choice return word def generate_prompt_interface(): generated_prompt = generate_prompt() result_text.value = generated_prompt # Load categories from the JSON file with open('categories.json', 'r') as file: categories = json.load(file) # Create interactive choices with gradio choices = {} for category, options in categories.items(): choice = gr.Dropdown(choices=["random", "none"] + options['random'], label=category, type="value") choices[category] = choice result_text = gr.Textbox() iface = gr.Interface( fn=generate_prompt_interface, inputs=list(choices.values()), outputs=result_text ) iface.launch()