| 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 |
|
|
|
|
| |
| with open('categories.json', 'r') as file: |
| categories = json.load(file) |
|
|
| |
| 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() |