kwabs22 commited on
Commit
7878324
·
1 Parent(s): da445d4

Refactor Proto Assist accordion to absorb mess

Browse files
Files changed (1) hide show
  1. app.py +19 -15
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
- 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, game_structure_without_media = generate_game_structures(formatted_timeline, no_media_formatted_timeline)
275
 
276
- return formatted_timeline, no_media_formatted_timeline, story, json.dumps(game_structure_with_media, indent=2), json.dumps(game_structure_without_media, indent=2) #, game_structure_with_media
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")