Spaces:
Running
on
Zero
Running
on
Zero
kwabs22
commited on
Commit
·
7878324
1
Parent(s):
da445d4
Refactor Proto Assist accordion to absorb mess
Browse files
app.py
CHANGED
@@ -237,7 +237,7 @@ def create_story(timeline):
|
|
237 |
story.append(f"The player interacted with {entry[2]}.")
|
238 |
return " ".join(story)
|
239 |
|
240 |
-
def generate_story_and_timeline(no_ui_timeline_points=10, no_media_timeline_points=5, include_media=True):
|
241 |
# Pick 10 random UI items
|
242 |
random_ui_items = pick_random_items(player_engagement_items, no_ui_timeline_points)
|
243 |
|
@@ -247,33 +247,33 @@ def generate_story_and_timeline(no_ui_timeline_points=10, no_media_timeline_poin
|
|
247 |
|
248 |
# Initialize merged timeline with UI and story timelines
|
249 |
merged_timeline = ui_timeline + story_timeline
|
250 |
-
no_media_merged_timeline = ui_timeline + story_timeline
|
251 |
#print(merged_timeline)
|
252 |
#print(no_media_merged_timeline)
|
253 |
|
254 |
# Include media-related items if specified
|
255 |
-
if include_media:
|
256 |
-
|
257 |
-
|
258 |
-
|
259 |
-
|
260 |
|
261 |
-
print(merged_timeline)
|
262 |
|
263 |
# Sort the merged timeline based on the random numbers
|
264 |
-
merged_timeline.sort(key=lambda x: x[0])
|
265 |
-
no_media_merged_timeline.sort(key=lambda x: x[0])
|
266 |
|
267 |
# Create the story
|
268 |
story = create_story(merged_timeline)
|
269 |
|
270 |
# Format the timeline for display
|
271 |
formatted_timeline = "\n".join([f"{entry[0]}: {entry[1]} - {entry[2]}" for entry in merged_timeline])
|
272 |
-
no_media_formatted_timeline = "\n".join([f"{entry[0]}: {entry[1]} - {entry[2]}" for entry in no_media_merged_timeline])
|
273 |
|
274 |
-
game_structure_with_media
|
275 |
|
276 |
-
return formatted_timeline,
|
277 |
|
278 |
media_file_types = ["image", "video", "audio"]
|
279 |
|
@@ -338,6 +338,10 @@ def show_elements_json_input(json_input):
|
|
338 |
# New media field
|
339 |
media = gr.Textbox(label="Media", value=json.dumps(details.get('media', [])), interactive=True)
|
340 |
outputs.append(media)
|
|
|
|
|
|
|
|
|
341 |
|
342 |
def update_json(*current_values):
|
343 |
updated_data = {"masterlocation1": {}}
|
@@ -770,13 +774,13 @@ with gr.Blocks() as demo:
|
|
770 |
generate_no_ui_timeline_points = gr.Slider(minimum=1, value=10, step=1, maximum=30, label="Choose the amount of ui timeline points")
|
771 |
generate_no_media_timeline_points = gr.Slider(minimum=1, value=5, step=1, maximum=30, label="Choose the amount of media timeline points")
|
772 |
generate_with_media_check = gr.Checkbox(label="Generate with media", value=True)
|
773 |
-
generate_button = gr.Button("Generate Story and Timeline")
|
774 |
|
775 |
@gr.render(inputs=game_structure_output_text_with_media)
|
776 |
def update(game_structure_output_text_with_media):
|
777 |
return show_elements_json_input(game_structure_output_text_with_media)
|
778 |
|
779 |
-
generate_button.click(generate_story_and_timeline, inputs=[generate_no_ui_timeline_points, generate_no_media_timeline_points, generate_with_media_check], outputs=[timeline_output_with_assets, timeline_output, story_output, game_structure_output_text_with_media, game_structure_output_text])
|
780 |
|
781 |
with gr.Accordion("Prompt Engineering as basis for ideation process", open=False):
|
782 |
gr.HTML("Current Assited workflow idea - Story timeline events suggestions (LLM / Premade List) | Merging events with premade mermaid structures (LLM + Story Text + Mermaid Text) | Edit mermaid till satisfied (LLM + Story Text) | Ask LLM to convert to config (LLM + JSON Text) | Edit config (LLM / User with format assistance or not) | Playtest and go back to mermaaid or config if there are problems")
|
|
|
237 |
story.append(f"The player interacted with {entry[2]}.")
|
238 |
return " ".join(story)
|
239 |
|
240 |
+
def generate_story_and_timeline(no_ui_timeline_points=10): # , no_media_timeline_points=5, include_media=True):
|
241 |
# Pick 10 random UI items
|
242 |
random_ui_items = pick_random_items(player_engagement_items, no_ui_timeline_points)
|
243 |
|
|
|
247 |
|
248 |
# Initialize merged timeline with UI and story timelines
|
249 |
merged_timeline = ui_timeline + story_timeline
|
250 |
+
#no_media_merged_timeline = ui_timeline + story_timeline
|
251 |
#print(merged_timeline)
|
252 |
#print(no_media_merged_timeline)
|
253 |
|
254 |
# Include media-related items if specified
|
255 |
+
# if include_media:
|
256 |
+
# media_files = generate_media_file_list(no_media_timeline_points)
|
257 |
+
# #rendered_media = render_media_with_dropdowns(media_files)
|
258 |
+
# media_timeline = generate_timeline(media_files, "Media")
|
259 |
+
# merged_timeline += media_timeline
|
260 |
|
261 |
+
# print(merged_timeline)
|
262 |
|
263 |
# Sort the merged timeline based on the random numbers
|
264 |
+
# merged_timeline.sort(key=lambda x: x[0])
|
265 |
+
# no_media_merged_timeline.sort(key=lambda x: x[0])
|
266 |
|
267 |
# Create the story
|
268 |
story = create_story(merged_timeline)
|
269 |
|
270 |
# Format the timeline for display
|
271 |
formatted_timeline = "\n".join([f"{entry[0]}: {entry[1]} - {entry[2]}" for entry in merged_timeline])
|
272 |
+
# no_media_formatted_timeline = "\n".join([f"{entry[0]}: {entry[1]} - {entry[2]}" for entry in no_media_merged_timeline])
|
273 |
|
274 |
+
game_structure_with_media = generate_game_structures(formatted_timeline) #, game_structure_without_media = generate_game_structures(formatted_timeline, no_media_formatted_timeline)
|
275 |
|
276 |
+
return formatted_timeline, story, json.dumps(game_structure_with_media, indent=2) #no_media_formatted_timeline, json.dumps(game_structure_without_media, indent=2) #, game_structure_with_media
|
277 |
|
278 |
media_file_types = ["image", "video", "audio"]
|
279 |
|
|
|
338 |
# New media field
|
339 |
media = gr.Textbox(label="Media", value=json.dumps(details.get('media', [])), interactive=True)
|
340 |
outputs.append(media)
|
341 |
+
|
342 |
+
# New developernotes field
|
343 |
+
#developernotes = gr.Textbox(label="Media", value=json.dumps(details.get('media', [])), interactive=True)
|
344 |
+
#outputs.append(developernotes)
|
345 |
|
346 |
def update_json(*current_values):
|
347 |
updated_data = {"masterlocation1": {}}
|
|
|
774 |
generate_no_ui_timeline_points = gr.Slider(minimum=1, value=10, step=1, maximum=30, label="Choose the amount of ui timeline points")
|
775 |
generate_no_media_timeline_points = gr.Slider(minimum=1, value=5, step=1, maximum=30, label="Choose the amount of media timeline points")
|
776 |
generate_with_media_check = gr.Checkbox(label="Generate with media", value=True)
|
777 |
+
generate_button = gr.Button("Generate Story and Timeline - UI will assit with JSON formatting")
|
778 |
|
779 |
@gr.render(inputs=game_structure_output_text_with_media)
|
780 |
def update(game_structure_output_text_with_media):
|
781 |
return show_elements_json_input(game_structure_output_text_with_media)
|
782 |
|
783 |
+
generate_button.click(generate_story_and_timeline, inputs=[generate_no_ui_timeline_points], outputs=[timeline_output_with_assets, story_output, game_structure_output_text_with_media]) #, generate_no_media_timeline_points, generate_with_media_check], outputs=[timeline_output_with_assets, timeline_output, story_output, game_structure_output_text_with_media, game_structure_output_text])
|
784 |
|
785 |
with gr.Accordion("Prompt Engineering as basis for ideation process", open=False):
|
786 |
gr.HTML("Current Assited workflow idea - Story timeline events suggestions (LLM / Premade List) | Merging events with premade mermaid structures (LLM + Story Text + Mermaid Text) | Edit mermaid till satisfied (LLM + Story Text) | Ask LLM to convert to config (LLM + JSON Text) | Edit config (LLM / User with format assistance or not) | Playtest and go back to mermaaid or config if there are problems")
|