kwabs22 commited on
Commit
093cc88
·
1 Parent(s): 34d7bf7

Refactor Proto Assist accordion to absorb mess

Browse files
Files changed (1) hide show
  1. app.py +126 -115
app.py CHANGED
@@ -363,13 +363,13 @@ def show_elements_json_input(json_input):
363
  "developernotes": json.loads(current_values[i*num_current_unique_fields + 5])
364
  }
365
  updated_data["masterlocation1"]["end"] = masterlocation1["end"]
366
- return json.dumps(updated_data, default=lambda o: o.__dict__, indent=2) #json.dumps(updated_data, default=lambda o: o.__dict__, indent=2)
367
 
368
  update_button = gr.Button("Update JSON")
369
- #json_output = gr.Textbox(label="Updated JSON", lines=10)
370
- json_output = gr.Code(label="Updated JSON", lines=10) #file name error????
371
 
372
- update_button.click(update_json, inputs=outputs, outputs=json_output) #, json_output_code]) #file name error????
373
 
374
  return outputs + [update_button, json_output] #, json_output_code]
375
 
@@ -769,57 +769,71 @@ with gr.Blocks() as demo:
769
  </div>""")
770
 
771
  with gr.Accordion("Config and Asset Assistance - Click to open", open=False):
772
- with gr.Accordion("Proto Config Assist", open=False):
 
 
773
  gr.HTML("UI can be media and all items can have media")
774
- with gr.Accordion("Can copy in the Test Example State Machine tab - only linear path for now", open=False):
775
- gr.Markdown("# Story and Timeline Generator")
776
- gr.Markdown("Click the button to generate a random timeline and story based on UI elements and story events. <br>Ask an LLM to use this to write a story around")
777
- with gr.Row():
778
- game_structure_output_text_with_media = gr.Code(language="json")
779
- game_structure_output_text = gr.Code(language="json")
780
- with gr.Accordion("JSON with no edits"):
781
- gr.HTML("A long game is a bunch of short games")
782
- with gr.Row():
783
- timeline_output_with_assets = gr.Textbox(label="Timeline with Assets Considered (gaps = side quests)", lines=25)
784
- #timeline_output = gr.Textbox(label="Timeline (Order might be different for now)", lines=20)
785
- with gr.Column():
786
- timeline_output_text = gr.Textbox(label="Random Suggestions", lines=10)
787
- timeline_selected_lists_text = gr.Textbox(label="Selected Lists", lines=2)
788
- story_output = gr.Textbox(label="Generated Story (Order might be different for now)", lines=20)
789
- with gr.Row():
790
- generate_no_story_timeline_points = gr.Slider(minimum=1, value=10, step=1, maximum=30, label="Choose the amount of story timeline points")
791
- generate_no_ui_timeline_points = gr.Slider(minimum=1, value=10, step=1, maximum=30, label="Choose the amount of ui timeline points")
792
- #generate_no_media_timeline_points = gr.Slider(minimum=1, value=5, step=1, maximum=30, label="Choose the amount of media timeline points")
793
- #generate_with_media_check = gr.Checkbox(label="Generate with media", value=True)
794
- with gr.Row():
795
- timeline_num_lists_slider = gr.Slider(minimum=1, maximum=len(all_idea_lists), step=1, label="Number of Lists to Consider", value=3)
796
- timeline_items_per_list_slider = gr.Slider(minimum=1, maximum=10, step=1, label="Items per List", value=3)
797
- timeline_include_existing_games = gr.Checkbox(label="Include Existing Game Inspirations", value=True)
798
- timeline_include_multiplayer = gr.Checkbox(label="Include Multiplayer Features", value=True)
799
- # timeline_generate_button = gr.Button("Generate Random Suggestions").click(
800
- # timeline_get_random_suggestions,
801
- # inputs=[timeline_num_lists_slider, timeline_items_per_list_slider, timeline_include_existing_games, timeline_include_multiplayer],
802
- # outputs=[timeline_output_text, timeline_selected_lists_text]
803
- # )
804
- generate_button = gr.Button("Generate Story and Timeline (Click to get UI that will assist with JSON formatting)")
805
-
806
- @gr.render(inputs=game_structure_output_text_with_media)
807
- def update(game_structure_output_text_with_media):
808
- return show_elements_json_input(game_structure_output_text_with_media)
809
-
810
- generate_button.click(generate_story_and_timeline, inputs=[generate_no_story_timeline_points, generate_no_ui_timeline_points, timeline_num_lists_slider, timeline_items_per_list_slider, timeline_include_existing_games, timeline_include_multiplayer], outputs=[timeline_output_with_assets, story_output, game_structure_output_text_with_media, timeline_output_text, timeline_selected_lists_text]) #, 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])
811
-
812
- with gr.Accordion("Prompt Engineering as basis for ideation process", open=False):
813
- 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")
814
- gr.HTML("Interactive movie (UI interaction or no progress) vs Branching Paths (Maze)")
815
- gr.HTML("Things that can change the workflow - Asset First (Make Asset and make the transitions using LLM), Export First (Custom JS config, Playcanvas, Unreal Engine reverse engineered to this spaces config?) Game Mechanics First (eg. Player Stats, Inventory and NPCS not implemented yet, so traversal type games best aka graph like structures)")
816
- gr.HTML("Config writing = Remix old one, Ask LLM to make one, Endless combination testing using the prompt engineering above or writing by hand (prompt engineering on yourself)")
817
- gr.HTML("Can use song lyrics as thematic source")
818
- gr.HTML("Placeholder for each below prompt getting a Textbox")
819
- for item in Storycraftprompts:
820
- input = gr.State(item)
821
- output = gr.Textbox("", label=item)
822
- outputbtn = gr.Button(item).click(fn=llmguide_generate_response, inputs=input, outputs=output)
 
 
 
 
 
 
 
 
 
 
 
 
823
 
824
  with gr.Accordion("Old Ideas to merge", open=False):
825
  gr.HTML("Random Scenario / Song to 'full game' manual or auto is end goal ")
@@ -895,17 +909,9 @@ with gr.Blocks() as demo:
895
  outputs=[llmguide_output, llmguide_tokens_per_second],
896
  )
897
 
898
- with gr.Accordion("Decisions / Timeline Creation to Story to Config Conversation", open=False):
899
- with gr.Tab("Structures for interesting timeline progression"):
900
- gr.HTML("Placeholder - Considerations - Story from the perspective of Main character or NPC in the LLM genereated story")
901
- mermaideditoriframebtn = gr.Button("Load Mermaid Editor")
902
- mermaideditoriframe = gr.HTML("")
903
- mermaideditoriframebtn.click(fn=lambda x: "<iframe src='https://mermaid.live/' width='100%' height='1000px'></iframe>", outputs=mermaideditoriframe)
904
- with gr.Accordion("Mermaid Structures - click to open", open=False):
905
- for key, item in mermaidstorystructures.items():
906
- gr.Code(item, label=key)
907
-
908
- with gr.Accordion("Test for config to gradio components order - ignore for now", open=False ):
909
  gr.Markdown("Asset Generation")
910
  gr.HTML("Splits by new line - The idea here was to allow for saving the file ")
911
  input_text = gr.Textbox(label="Input Text", lines=10)
@@ -914,8 +920,6 @@ with gr.Blocks() as demo:
914
  @gr.render(inputs=input_text)
915
  def update(text):
916
  return show_elements(text)
917
-
918
- with gr.Accordion("Existing Config Crafting Progression - click to open", open=False):
919
  with gr.Tab("Quick Ways to evaluate current config"):
920
  gr.HTML("Ask SOTA LLMs This prompt: <br> This config is for a basic text based game engine. I dont have any structural metrics to assess the quality of the config. What JSON things can we look at to see if it may be too bland for a person testing the game? <br> Then Paste the Config with the prompt")
921
  gr.HTML("""Original Claude 3.5 Sonnet Response snippets: <br>
@@ -956,53 +960,54 @@ Creating more diverse paths through the game""")
956
  </div>""")
957
 
958
 
959
- with gr.Accordion("Temporary Asset Management Assist - click to open", open=False):
960
- gr.HTML("Make Files and Text ideas for the field and paste <br>When Space is restarted it will clear - zip export and import will be added later")
961
- with gr.Accordion("Upload Files for config"):
962
- gr.Markdown("# Media Saver and Explorer (refresh file list to be resolved - for now upload all files and reload the space - they persist as long as the space creator doesnt reset/update the space - will add manual clear options later)")
963
- with gr.Tab("Upload Files"):
964
- file_input = gr.File(label="Choose File to Upload")
965
- save_output = gr.Textbox(label="Upload Status")
966
-
967
- with gr.Tab("File Explorer"):
968
-
969
- file_explorer = gr.FileExplorer(
970
- root_dir=SAVE_DIR,
971
- glob="*.*",
972
- file_count="single",
973
- height=300,
974
- label="Select a file to view"
975
- )
976
- with gr.Row():
977
- refresh_button = gr.Button("Refresh", scale=1)
978
- view_button = gr.Button("View File")
979
- image_output = gr.Image(label="Image Output", type="pil")
980
- audio_output = gr.Audio(label="Audio Output")
981
- video_output = gr.Video(label="Video Output")
982
- error_output = gr.Textbox(label="Error")
983
-
984
- file_input.upload(
985
- save_file,
986
- inputs=file_input,
987
- outputs=[save_output, file_explorer, file_input]
988
- )
989
-
990
- view_button.click(
991
- view_file,
992
- inputs=file_explorer,
993
- outputs=[image_output, audio_output, video_output, error_output]
994
- )
995
 
996
- refresh_button.click(
997
- refresh_file_explorer,
998
- outputs=file_explorer
 
 
 
 
 
999
  )
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1000
 
1001
- with gr.Tab("Batch add files to config"):
1002
- gr.HTML("Placeholder for Config parser to allow dropdowns for the media parts of the config inserted to make assigning media quick")
1003
- gr.HTML("Placeholder for Config parser to allow for current zerospace creation and placement into the config (LLM can give list of media but still have to figure out workflow from there)")
1004
-
1005
- gr.HTML("Placeholder for clearing uploaded assets (public space and temporary persistence = sharing and space problems)")
1006
  with gr.Accordion("My Previous Quick Config Attempts", open=False):
1007
  for experimetal_config_name, experimetal_config in ExampleGameConfigs.items():
1008
  with gr.Tab(experimetal_config_name):
@@ -1153,15 +1158,18 @@ Creating more diverse paths through the game""")
1153
  ewpgenerate_button.click(generate_story_and_timeline, inputs=[ewpgenerate_no_ui_timeline_points, ewpgenerate_no_media_timeline_points, ewpgenerate_with_media_check], outputs=[ewptimeline_output_with_assets, ewptimeline_output, ewpstory_output, ewpwacustom_config, ewpgame_structure_output_text]) #ewpgame_structure_output_text_with_media, ewpgame_structure_output_text])
1154
 
1155
  with gr.Tab("Asset Generation Considerations"):
1156
- gr.HTML("Licenses for the spaces still to be evaluated - June 2024 <br> Users to follow with cool spaces - https://huggingface.co/jbilcke-hf, https://huggingface.co/dylanebert, https://huggingface.co/fffiloni, https://huggingface.co/artificialguybr, https://huggingface.co/radames, https://huggingface.co/multimodalart, ")
 
 
1157
  gr.HTML("Whole game engine in a space? - https://huggingface.co/spaces/thomwolf/test_godot_editor <br><br> https://huggingface.co/godot-demo https://huggingface.co/spaces/thomwolf/test_godot")
1158
  with gr.Tab("Text-based"):
 
1159
  with gr.Accordion("LLM HF Spaces/Sites (Click Here to Open) - Ask for a story and suggestions based on the autoconfig", open=False):
1160
  with gr.Row():
1161
  linktochat = gr.Dropdown(choices=["--Multiple Models--", "https://labs.perplexity.ai/", "https://chat.lmsys.org", "https://sdk.vercel.ai/docs", "https://cyzgab-catch-me-if-you-can.hf.space",
1162
  "--70B and above--", "https://qwen-qwen-max-0428.hf.space", "https://cohereforai-c4ai-command-r-plus.hf.space", "https://qwen-qwen1-5-110b-chat-demo.hf.space", "https://snowflake-snowflake-arctic-st-demo.hf.space", "https://databricks-dbrx-instruct.hf.space", "https://qwen-qwen1-5-72b-chat.hf.space",
1163
  "--20B and above--", "https://gokaygokay-gemma-2-llamacpp.hf.space", "https://01-ai-yi-34b-chat.hf.space", "https://cohereforai-c4ai-command-r-v01.hf.space", "https://ehristoforu-mixtral-46-7b-chat.hf.space", "https://mosaicml-mpt-30b-chat.hf.space",
1164
- "--7B and above--", "https://ysharma-chat-with-meta-llama3-8b.hf.space", "https://qwen-qwen1-5-moe-a2-7b-chat-demo.hf.space", "https://deepseek-ai-deepseek-coder-7b-instruct.hf.space", "https://osanseviero-mistral-super-fast.hf.space", "https://artificialguybr-qwen-14b-chat-demo.hf.space", "https://huggingface-projects-llama-2-7b-chat.hf.space",
1165
  "--1B and above--", "https://huggingface.co/spaces/eswardivi/Phi-3-mini-128k-instruct", "https://eswardivi-phi-3-mini-4k-instruct.hf.space", "https://stabilityai-stablelm-2-1-6b-zephyr.hf.space",
1166
  "--under 1B--", "unorganised", "https://ysharma-zephyr-playground.hf.space", "https://huggingfaceh4-zephyr-chat.hf.space", "https://ysharma-explore-llamav2-with-tgi.hf.space", "https://huggingfaceh4-falcon-chat.hf.space", "https://uwnlp-guanaco-playground-tgi.hf.space", "https://stabilityai-stablelm-tuned-alpha-chat.hf.space", "https://mosaicml-mpt-7b-storywriter.hf.space", "https://huggingfaceh4-starchat-playground.hf.space", "https://bigcode-bigcode-playground.hf.space", "https://mosaicml-mpt-7b-chat.hf.space", "https://huggingchat-chat-ui.hf.space", "https://togethercomputer-openchatkit.hf.space"], label="Choose/Cancel type any .hf.space link here (can also type a link)'", allow_custom_value=True)
1167
  chatspacebtn = gr.Button("Use the chosen URL to load interface with a chat model. For sdk.vercel click the chat button on the top left. For lymsys / chat arena copy the link and use a new tab")
@@ -1263,7 +1271,9 @@ Creating more diverse paths through the game""")
1263
  with gr.Tab("3D"):
1264
  with gr.Accordion("3D Model Spaces/Sites (Click Here to Open)", open=False):
1265
  with gr.Row():
1266
- linktoThreedModel = gr.Dropdown(choices=["https://wuvin-unique3d.hf.space", "https://stabilityai-triposr.hf.space", "https://hysts-shap-e.hf.space", "https://tencentarc-instantmesh.hf.space", "https://ashawkey-lgm.hf.space", "https://dylanebert-lgm-mini.hf.space", "https://dylanebert-splat-to-mesh.hf.space", "https://dylanebert-multi-view-diffusion.hf.space"], label="Choose/Cancel type any .hf.space link here (can also type a link)'", allow_custom_value=True)
 
 
1267
  ThreedModelspacebtn = gr.Button("Use the chosen URL to load interface with a 3D model")
1268
  ThreedModelspace = gr.HTML("3D Space Chosen will load here")
1269
  ThreedModelspacebtn.click(display_website, inputs=linktoThreedModel, outputs=ThreedModelspace)
@@ -1285,7 +1295,7 @@ Creating more diverse paths through the game""")
1285
 
1286
  with gr.Tab("Demos on Social Media for inspiration"):
1287
  gr.HTML("Social media that shows possiblities")
1288
- gr.HTML("https://x.com/blizaine")
1289
 
1290
  with gr.Tab("Basic Game Engine Mechanics"):
1291
  gr.HTML("Placeholder for explanations of Player and Game Session")
@@ -1388,6 +1398,7 @@ Creating more diverse paths through the game""")
1388
  with gr.Tab("State management through huggingface?"):
1389
  gr.HTML("Huggingface as the login provider? - https://huggingface.co/docs/hub/en/spaces-oauth https://huggingface.co/docs/hub/en/oauth, persistent storage - https://huggingface.co/docs/hub/en/spaces-storage")
1390
  with gr.Tab("Finetuning options"):
 
1391
  gr.HTML("Price - https://openpipe.ai/pricing")
1392
  with gr.Tab("Backend and/or Hosting?"):
1393
  gr.HTML("Deployemnt options - https://huggingface.co/SpacesExamples", "https://huggingface.co/templates")
 
363
  "developernotes": json.loads(current_values[i*num_current_unique_fields + 5])
364
  }
365
  updated_data["masterlocation1"]["end"] = masterlocation1["end"]
366
+ return json.dumps(updated_data, indent=2) #json.dumps(updated_data, default=lambda o: o.__dict__, indent=2)
367
 
368
  update_button = gr.Button("Update JSON")
369
+ json_output = gr.Textbox(label="Updated JSON", lines=10)
370
+ #json_output = gr.Code(label="Updated JSON", lines=10) #Locks whole UI so use textbox
371
 
372
+ update_button.click(update_json, inputs=outputs, outputs=json_output)
373
 
374
  return outputs + [update_button, json_output] #, json_output_code]
375
 
 
769
  </div>""")
770
 
771
  with gr.Accordion("Config and Asset Assistance - Click to open", open=False):
772
+ with gr.Accordion("Themes to consider before you attempt config", open=False):
773
+ gr.HTML("Copy paste any old config to llm and ask to remix is the easiest <br>To bake 'Moral of the story' in you have to be very deliberate")
774
+ with gr.Accordion("New Config Proto Assist - Trying to abstract the process into one worflow is beyond me so multiple paths to goal (config) is the aim now", open=False):
775
  gr.HTML("UI can be media and all items can have media")
776
+ with gr.Tab("List to Empty Config with Edit support - Linear"):
777
+ with gr.Accordion("Can copy in the Test Example State Machine tab - only linear path for now", open=False):
778
+ gr.Markdown("# Story and Timeline Generator")
779
+ gr.Markdown("Click the button to generate a random timeline and story based on UI elements and story events. <br>Ask an LLM to use this to write a story around")
780
+ with gr.Row():
781
+ game_structure_output_text_with_media = gr.Code(language="json")
782
+ #game_structure_output_text = gr.Code(language="json")
783
+ with gr.Accordion("JSON with no edits"):
784
+ gr.HTML("A long game is a bunch of short games")
785
+ with gr.Row():
786
+ timeline_output_with_assets = gr.Textbox(label="Timeline with Assets Considered (gaps = side quests)", lines=25)
787
+ #timeline_output = gr.Textbox(label="Timeline (Order might be different for now)", lines=20)
788
+ with gr.Column():
789
+ timeline_output_text = gr.Textbox(label="Random Suggestions", lines=10)
790
+ timeline_selected_lists_text = gr.Textbox(label="Selected Lists", lines=2)
791
+ story_output = gr.Textbox(label="Generated Story (Order might be different for now)", lines=20)
792
+ with gr.Row():
793
+ generate_no_story_timeline_points = gr.Slider(minimum=1, value=10, step=1, maximum=30, label="Choose the amount of story timeline points")
794
+ generate_no_ui_timeline_points = gr.Slider(minimum=1, value=10, step=1, maximum=30, label="Choose the amount of ui timeline points")
795
+ #generate_no_media_timeline_points = gr.Slider(minimum=1, value=5, step=1, maximum=30, label="Choose the amount of media timeline points")
796
+ #generate_with_media_check = gr.Checkbox(label="Generate with media", value=True)
797
+ with gr.Row():
798
+ timeline_num_lists_slider = gr.Slider(minimum=1, maximum=len(all_idea_lists), step=1, label="Number of Lists to Consider", value=3)
799
+ timeline_items_per_list_slider = gr.Slider(minimum=1, maximum=10, step=1, label="Items per List", value=3)
800
+ timeline_include_existing_games = gr.Checkbox(label="Include Existing Game Inspirations", value=True)
801
+ timeline_include_multiplayer = gr.Checkbox(label="Include Multiplayer Features", value=True)
802
+ # timeline_generate_button = gr.Button("Generate Random Suggestions").click(
803
+ # timeline_get_random_suggestions,
804
+ # inputs=[timeline_num_lists_slider, timeline_items_per_list_slider, timeline_include_existing_games, timeline_include_multiplayer],
805
+ # outputs=[timeline_output_text, timeline_selected_lists_text]
806
+ # )
807
+ generate_button = gr.Button("Generate Story and Timeline (Click to get UI that will assist with JSON formatting)")
808
+
809
+ @gr.render(inputs=game_structure_output_text_with_media)
810
+ def update(game_structure_output_text_with_media):
811
+ return show_elements_json_input(game_structure_output_text_with_media)
812
+
813
+ generate_button.click(generate_story_and_timeline, inputs=[generate_no_story_timeline_points, generate_no_ui_timeline_points, timeline_num_lists_slider, timeline_items_per_list_slider, timeline_include_existing_games, timeline_include_multiplayer], outputs=[timeline_output_with_assets, story_output, game_structure_output_text_with_media, timeline_output_text, timeline_selected_lists_text]) #, 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])
814
+
815
+ with gr.Tab("Prompt Engineering as basis for ideation process"):
816
+ 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")
817
+ gr.HTML("Interactive movie (UI interaction or no progress) vs Branching Paths (Maze)")
818
+ gr.HTML("Things that can change the workflow - Asset First (Make Asset and make the transitions using LLM), Export First (Custom JS config, Playcanvas, Unreal Engine reverse engineered to this spaces config?) Game Mechanics First (eg. Player Stats, Inventory and NPCS not implemented yet, so traversal type games best aka graph like structures)")
819
+ gr.HTML("Config writing = Remix old one, Ask LLM to make one, Endless combination testing using the prompt engineering above or writing by hand (prompt engineering on yourself)")
820
+ gr.HTML("Can use song lyrics as thematic source")
821
+ gr.HTML("Placeholder for each below prompt getting a Textbox")
822
+ for item in Storycraftprompts:
823
+ input = gr.State(item)
824
+ output = gr.Textbox("", label=item)
825
+ outputbtn = gr.Button(item).click(fn=llmguide_generate_response, inputs=input, outputs=output)
826
+
827
+ #with gr.Accordion("Decisions / Timeline Creation to Story to Config Conversation", open=False):
828
+ with gr.Tab("Decisions / Timeline Creation to Story to Config Conversation"):
829
+ gr.HTML("Structures for interesting timeline progression")
830
+ gr.HTML("Placeholder - Considerations - Story from the perspective of Main character or NPC in the LLM genereated story")
831
+ mermaideditoriframebtn = gr.Button("Load Mermaid Editor")
832
+ mermaideditoriframe = gr.HTML("")
833
+ mermaideditoriframebtn.click(fn=lambda x: "<iframe src='https://mermaid.live/' width='100%' height='1000px'></iframe>", outputs=mermaideditoriframe)
834
+ with gr.Accordion("Mermaid Structures - click to open", open=False):
835
+ for key, item in mermaidstorystructures.items():
836
+ gr.Code(item, label=key)
837
 
838
  with gr.Accordion("Old Ideas to merge", open=False):
839
  gr.HTML("Random Scenario / Song to 'full game' manual or auto is end goal ")
 
909
  outputs=[llmguide_output, llmguide_tokens_per_second],
910
  )
911
 
912
+ with gr.Accordion("Existing Config Crafting Progression - click to open", open=False):
913
+ with gr.Accordion("Test for config to gradio components order - ignore for now", open=False ):
914
+ gr.HTML("Placeholder for changing the render below to the one above for new config but with the ability to upload files aka the media field should be file uploader / dropdowns for all files that have been uploaded")
 
 
 
 
 
 
 
 
915
  gr.Markdown("Asset Generation")
916
  gr.HTML("Splits by new line - The idea here was to allow for saving the file ")
917
  input_text = gr.Textbox(label="Input Text", lines=10)
 
920
  @gr.render(inputs=input_text)
921
  def update(text):
922
  return show_elements(text)
 
 
923
  with gr.Tab("Quick Ways to evaluate current config"):
924
  gr.HTML("Ask SOTA LLMs This prompt: <br> This config is for a basic text based game engine. I dont have any structural metrics to assess the quality of the config. What JSON things can we look at to see if it may be too bland for a person testing the game? <br> Then Paste the Config with the prompt")
925
  gr.HTML("""Original Claude 3.5 Sonnet Response snippets: <br>
 
960
  </div>""")
961
 
962
 
963
+ with gr.Accordion("Temporary Asset Management Assist - click to open", open=False):
964
+ gr.HTML("Make Files and Text ideas for the field and paste <br>When Space is restarted it will clear - zip export and import will be added later")
965
+ with gr.Accordion("Upload Files for config"):
966
+ gr.Markdown("# Media Saver and Explorer (refresh file list to be resolved - for now upload all files and reload the space - they persist as long as the space creator doesnt reset/update the space - will add manual clear options later)")
967
+ with gr.Tab("Upload Files"):
968
+ file_input = gr.File(label="Choose File to Upload")
969
+ save_output = gr.Textbox(label="Upload Status")
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
970
 
971
+ with gr.Tab("File Explorer"):
972
+
973
+ file_explorer = gr.FileExplorer(
974
+ root_dir=SAVE_DIR,
975
+ glob="*.*",
976
+ file_count="single",
977
+ height=300,
978
+ label="Select a file to view"
979
  )
980
+ with gr.Row():
981
+ refresh_button = gr.Button("Refresh", scale=1)
982
+ view_button = gr.Button("View File")
983
+ image_output = gr.Image(label="Image Output", type="pil")
984
+ audio_output = gr.Audio(label="Audio Output")
985
+ video_output = gr.Video(label="Video Output")
986
+ error_output = gr.Textbox(label="Error")
987
+
988
+ file_input.upload(
989
+ save_file,
990
+ inputs=file_input,
991
+ outputs=[save_output, file_explorer, file_input]
992
+ )
993
+
994
+ view_button.click(
995
+ view_file,
996
+ inputs=file_explorer,
997
+ outputs=[image_output, audio_output, video_output, error_output]
998
+ )
999
+
1000
+ refresh_button.click(
1001
+ refresh_file_explorer,
1002
+ outputs=file_explorer
1003
+ )
1004
+
1005
+ with gr.Tab("Batch add files to config"):
1006
+ gr.HTML("Placeholder for Config parser to allow dropdowns for the media parts of the config inserted to make assigning media quick")
1007
+ gr.HTML("Placeholder for Config parser to allow for current zerospace creation and placement into the config (LLM can give list of media but still have to figure out workflow from there)")
1008
+
1009
+ gr.HTML("Placeholder for clearing uploaded assets (public space and temporary persistence = sharing and space problems)")
1010
 
 
 
 
 
 
1011
  with gr.Accordion("My Previous Quick Config Attempts", open=False):
1012
  for experimetal_config_name, experimetal_config in ExampleGameConfigs.items():
1013
  with gr.Tab(experimetal_config_name):
 
1158
  ewpgenerate_button.click(generate_story_and_timeline, inputs=[ewpgenerate_no_ui_timeline_points, ewpgenerate_no_media_timeline_points, ewpgenerate_with_media_check], outputs=[ewptimeline_output_with_assets, ewptimeline_output, ewpstory_output, ewpwacustom_config, ewpgame_structure_output_text]) #ewpgame_structure_output_text_with_media, ewpgame_structure_output_text])
1159
 
1160
  with gr.Tab("Asset Generation Considerations"):
1161
+ with gr.Row():
1162
+ gr.HTML("Licenses for the spaces still to be evaluated - June 2024 <br> Users to follow with cool spaces - <br>https://huggingface.co/osanseviero - https://huggingface.co/spaces/osanseviero/TheMLGame <br>https://huggingface.co/jbilcke-hf <br>https://huggingface.co/dylanebert <br>https://huggingface.co/fffiloni <br>https://huggingface.co/artificialguybr <br>https://huggingface.co/radames <br>https://huggingface.co/multimodalart, ")
1163
+ gr.HTML("Some Youtube Channels to keep up with updates <br><br>https://www.youtube.com/@lev-selector <br>https://www.youtube.com/@fahdmirza/videos")
1164
  gr.HTML("Whole game engine in a space? - https://huggingface.co/spaces/thomwolf/test_godot_editor <br><br> https://huggingface.co/godot-demo https://huggingface.co/spaces/thomwolf/test_godot")
1165
  with gr.Tab("Text-based"):
1166
+ gr.HTML("Some Benchmark Leaderboards - https://huggingface.co/spaces/allenai/ZebraLogic | https://huggingface.co/spaces/allenai/WildBench")
1167
  with gr.Accordion("LLM HF Spaces/Sites (Click Here to Open) - Ask for a story and suggestions based on the autoconfig", open=False):
1168
  with gr.Row():
1169
  linktochat = gr.Dropdown(choices=["--Multiple Models--", "https://labs.perplexity.ai/", "https://chat.lmsys.org", "https://sdk.vercel.ai/docs", "https://cyzgab-catch-me-if-you-can.hf.space",
1170
  "--70B and above--", "https://qwen-qwen-max-0428.hf.space", "https://cohereforai-c4ai-command-r-plus.hf.space", "https://qwen-qwen1-5-110b-chat-demo.hf.space", "https://snowflake-snowflake-arctic-st-demo.hf.space", "https://databricks-dbrx-instruct.hf.space", "https://qwen-qwen1-5-72b-chat.hf.space",
1171
  "--20B and above--", "https://gokaygokay-gemma-2-llamacpp.hf.space", "https://01-ai-yi-34b-chat.hf.space", "https://cohereforai-c4ai-command-r-v01.hf.space", "https://ehristoforu-mixtral-46-7b-chat.hf.space", "https://mosaicml-mpt-30b-chat.hf.space",
1172
+ "--7B and above--", "https://vilarin-mistral-nemo.hf.space", "https://ysharma-chat-with-meta-llama3-8b.hf.space", "https://qwen-qwen1-5-moe-a2-7b-chat-demo.hf.space", "https://deepseek-ai-deepseek-coder-7b-instruct.hf.space", "https://osanseviero-mistral-super-fast.hf.space", "https://artificialguybr-qwen-14b-chat-demo.hf.space", "https://huggingface-projects-llama-2-7b-chat.hf.space",
1173
  "--1B and above--", "https://huggingface.co/spaces/eswardivi/Phi-3-mini-128k-instruct", "https://eswardivi-phi-3-mini-4k-instruct.hf.space", "https://stabilityai-stablelm-2-1-6b-zephyr.hf.space",
1174
  "--under 1B--", "unorganised", "https://ysharma-zephyr-playground.hf.space", "https://huggingfaceh4-zephyr-chat.hf.space", "https://ysharma-explore-llamav2-with-tgi.hf.space", "https://huggingfaceh4-falcon-chat.hf.space", "https://uwnlp-guanaco-playground-tgi.hf.space", "https://stabilityai-stablelm-tuned-alpha-chat.hf.space", "https://mosaicml-mpt-7b-storywriter.hf.space", "https://huggingfaceh4-starchat-playground.hf.space", "https://bigcode-bigcode-playground.hf.space", "https://mosaicml-mpt-7b-chat.hf.space", "https://huggingchat-chat-ui.hf.space", "https://togethercomputer-openchatkit.hf.space"], label="Choose/Cancel type any .hf.space link here (can also type a link)'", allow_custom_value=True)
1175
  chatspacebtn = gr.Button("Use the chosen URL to load interface with a chat model. For sdk.vercel click the chat button on the top left. For lymsys / chat arena copy the link and use a new tab")
 
1271
  with gr.Tab("3D"):
1272
  with gr.Accordion("3D Model Spaces/Sites (Click Here to Open)", open=False):
1273
  with gr.Row():
1274
+ linktoThreedModel = gr.Dropdown(choices=["--Image prompt--", "https://vast-ai-charactergen.hf.space"
1275
+ "--Video prompt--", "https://facebook-vggsfm.hf.space",
1276
+ "--Text prompt--", "https://wuvin-unique3d.hf.space", "https://stabilityai-triposr.hf.space", "https://hysts-shap-e.hf.space", "https://tencentarc-instantmesh.hf.space", "https://ashawkey-lgm.hf.space", "https://dylanebert-lgm-mini.hf.space", "https://dylanebert-splat-to-mesh.hf.space", "https://dylanebert-multi-view-diffusion.hf.space"], label="Choose/Cancel type any .hf.space link here (can also type a link)'", allow_custom_value=True)
1277
  ThreedModelspacebtn = gr.Button("Use the chosen URL to load interface with a 3D model")
1278
  ThreedModelspace = gr.HTML("3D Space Chosen will load here")
1279
  ThreedModelspacebtn.click(display_website, inputs=linktoThreedModel, outputs=ThreedModelspace)
 
1295
 
1296
  with gr.Tab("Demos on Social Media for inspiration"):
1297
  gr.HTML("Social media that shows possiblities")
1298
+ gr.HTML("https://www.reddit.com/r/aivideo/ https://www.reddit.com/r/StableDiffusion/ https://www.reddit.com/r/midjourney/ https://x.com/blizaine")
1299
 
1300
  with gr.Tab("Basic Game Engine Mechanics"):
1301
  gr.HTML("Placeholder for explanations of Player and Game Session")
 
1398
  with gr.Tab("State management through huggingface?"):
1399
  gr.HTML("Huggingface as the login provider? - https://huggingface.co/docs/hub/en/spaces-oauth https://huggingface.co/docs/hub/en/oauth, persistent storage - https://huggingface.co/docs/hub/en/spaces-storage")
1400
  with gr.Tab("Finetuning options"):
1401
+ gr.HTML("Unsloth and Colab? - Mistral Nemo Base - https://huggingface.co/unsloth/Mistral-Nemo-Base-2407 - https://colab.research.google.com/drive/17d3U-CAIwzmbDRqbZ9NnpHxCkmXB6LZ0?usp=sharing <br>Llama 3 8B https://huggingface.co/unsloth/llama-3-8b-Instruct-bnb-4bit")
1402
  gr.HTML("Price - https://openpipe.ai/pricing")
1403
  with gr.Tab("Backend and/or Hosting?"):
1404
  gr.HTML("Deployemnt options - https://huggingface.co/SpacesExamples", "https://huggingface.co/templates")