GameConfigIdea / ui_gr_media_management.py
kwabs22
file explorer
3976009
import gradio as gr
from file_explorer_and_upload import *
from state_prompt_fileman_UI_functions import *
from my_text_game_engine_attempt import display_website
def TestGradioClientQwen270b(text):
# client = Client("Qwen/Qwen2-72B-Instruct")
# result = client.predict(
# query=text, #"Hello!!",
# history=[],
# system="You are a helpful assistant.",
# api_name="/model_chat"
# )
client = Client("huggingface-projects/gemma-2-9b-it")
result = client.predict(
message=text, #"Hello!!",
max_new_tokens=1024,
temperature=0.6,
top_p=0.9,
top_k=50,
repetition_penalty=1.2,
api_name="/chat"
)
#print(result)
#print(result[1][0]) #All messages in the conversation
#print(result[2]) # System prompt
return result #result[1][0][1] # If supporting conversations this needs to return the last message instead
def SPFManJLget_config_part(config_json, location, part):
if not config_json:
return {"error": "No configuration provided."}
try:
config = json.loads(config_json)
location_config = config.get(location, {})
return location_config.get(part, {"error": f"Part '{part}' not found in '{location}' configuration."})
except json.JSONDecodeError:
return {"error": "Invalid JSON format."}
def SPFManJLupdate_location_choices(config_json):
if not config_json:
return gr.update(choices=[], value=""), gr.update(choices=[], value="")
try:
config = json.loads(config_json)
locations = list(config.keys())
return (gr.update(choices=locations, value=locations[0] if locations else ""),
gr.update(choices=[], value=""))
except json.JSONDecodeError:
return gr.update(choices=[], value=""), gr.update(choices=[], value="")
def SPFManJLupdate_part_choices(config_json, location):
if not config_json or not location:
return gr.update(choices=[], value="")
try:
config = json.loads(config_json)
location_config = config.get(location, {})
parts = list(location_config.keys())
return gr.update(choices=parts, value=parts[0] if parts else "")
except json.JSONDecodeError:
return gr.update(choices=[], value="")
def SPFManJLPromptSuggestionGradClient(config, additionalnotes):
prompt = f"Here is a config for a game and our job is to poulate the media field to fit the context: \n{config} \nadditional information from the user: \n{additionalnotes}"
FinalOutput = TestGradioClientQwen270b(text=prompt)
return FinalOutput
SPFManload_state()
def ui_gr_media_management_acc():
with gr.Accordion("Incomplete Media Management Assist - click to open", open=False) as filemanager:
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")
#with gr.Tab("Media Management Assistance"): #, open=False):
with gr.Accordion("Some Idea / Inspiration Sources / Demos", open=False):
with gr.Row():
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, ")
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")
gr.HTML("Social media that shows possiblities <br><br>https://www.reddit.com/r/aivideo/ https://www.reddit.com/r/StableDiffusion/ https://www.reddit.com/r/midjourney/ https://x.com/blizaine https://www.reddit.com/r/singularity/comments/1ead7vp/not_sure_if_this_is_the_right_place_to_post_but_i/ https://www.reddit.com/r/singularity/comments/1ebpra6/the_big_reveal_book_trailer_made_with_runway_gen3/ https://www.reddit.com/r/LocalLLaMA/comments/1e3aboz/folks_with_one_24gb_gpu_you_can_use_an_llm_sdxl/ <br>https://www.reddit.com/r/singularity/comments/1f81ira/utilizing_ai_in_solo_game_development_my/ <br>https://www.reddit.com/r/singularity/comments/1fhe402/another_runawaymls_vid_to_vid_testing_for_first/ <br>https://www.reddit.com/r/singularity/comments/1fh08nz/runawaymls_new_videotovideo_feature_is_crazy/ <br> https://www.reddit.com/r/singularity/comments/1fe4rkv/6_chinese_ai_video_generator_comparisons_hailuo/")
with gr.Accordion("Upload Files for config", open=False):
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)")
with gr.Tab("Upload Files"):
file_input = gr.File(label="Choose File to Upload")
save_output = gr.Textbox(label="Upload Status")
with gr.Tab("File Explorer"):
file_explorer = gr.FileExplorer(
root_dir=SAVE_DIR,
glob="*.*",
file_count="single",
height=300,
label="Select a file to view"
)
with gr.Row():
refresh_button = gr.Button("Refresh")
view_button = gr.Button("View File")
delete_button = gr.Button("Delete")
image_output = gr.Image(label="Image Output", type="pil")
audio_output = gr.Audio(label="Audio Output")
video_output = gr.Video(label="Video Output")
error_output = gr.Textbox(label="Error")
file_input.upload(
save_file,
inputs=file_input,
outputs=[save_output, file_explorer, file_input]
)
view_button.click(
view_file,
inputs=file_explorer,
outputs=[image_output, audio_output, video_output, error_output]
)
refresh_button.click(
refresh_file_explorer,
outputs=file_explorer
)
delete_button.click(
delete_file,
inputs=file_explorer,
outputs=[file_explorer, error_output]
)
with gr.Tab("Batch add files to config"):
gr.HTML("Placeholder for Config parser to allow dropdowns for the media parts of the config inserted to make assigning media quick")
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)")
gr.Interface(import_config_with_media, inputs=["file"], outputs=["code", "text"], description="Uploads the files needed for your config and present config for loading somewhere else")
gr.HTML("Placeholder for clearing uploaded assets (public space and temporary persistence = sharing and space problems)")
with gr.Tab("Using Embedded HF spaces / Premade files in external sources"):
gr.HTML("Generate the files and then sort and manage them in their appropriate field in the config")
gr.HTML("Currently - need to create then save to pc then reupload to use here in test tab")
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")
with gr.Accordion("Media Suggestions based on config"):
#gr.Interface( , description="Load a config and get some prompt ideas")
gr.HTML("Either duplicate the interface on the api side or move it out so that both sides can use it")
with gr.Tab("Text-based"):
gr.HTML("Some Benchmark Leaderboards - https://huggingface.co/spaces/allenai/ZebraLogic | https://huggingface.co/spaces/allenai/WildBench https://scale.com/leaderboard https://livebench.ai")
with gr.Accordion("LLM HF Spaces/Sites (Click Here to Open) - Ask for a story and suggestions based on the autoconfig", open=False):
with gr.Row():
linktochat = gr.Dropdown(choices=[ "--Long Output--", "https://thudm-longwriter.hf.space",
"--Function Calling--", "https://groq-demo-groq-tool-use.hf.space",
"--Multiple Models--", "https://huggingface.co/spaces/nvidia/minitron", "https://lmsys-gpt-4o-mini-battles.hf.space", "https://labs.perplexity.ai/", "https://chat.lmsys.org", "https://sdk.vercel.ai/docs", "https://cyzgab-catch-me-if-you-can.hf.space",
"--11B and above--", "https://llamameta-llama3-1-405b.static.hf.space", "https://qwen-qwen-max-0428.hf.space", "https://cohereforai-c4ai-command-r-plus.hf.space", "https://qwen-qwen1-5-110b-chat-demo.hf.space",
"--70B and above--", "https://cognitivecomputations-chat.hf.space", "https://snowflake-snowflake-arctic-st-demo.hf.space", "https://databricks-dbrx-instruct.hf.space", "https://qwen-qwen1-5-72b-chat.hf.space",
"--20B and above--", "https://grin-moe-demo-grin-moe.hf.space", "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",
"--7B and above--", "https://vilarin-mistral-nemo.hf.space", "https://arcee-ai-arcee-scribe.hf.space", "https://vilarin-llama-3-1-8b-instruct.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",
"--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",
"--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)
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")
chatspace = gr.HTML("Chat Space Chosen will load here")
chatspacebtn.click(display_website, inputs=linktochat, outputs=chatspace)
with gr.Tab("Media Understanding"):
gr.HTML("NPC Response Engines? Camera, Shopkeeper, Companion, Enemies, etc.")
with gr.Accordion("Media understanding model Spaces/Sites (Click Here to Open)", open=False):
with gr.Row():
linktomediaunderstandingspace = gr.Dropdown(choices=[ "--Weak Audio Understanding = Audio to text, Weak Video Understanding = Video to Image to Image Understanding", "https://skalskip-florence-2-video.hf.space", "https://kingnish-opengpt-4o.hf.space",
"--Audio Understanding--", "https://jan-hq-llama3-1-s-v0-2.hf.space",
"--Video Understanding--", "https://ivgsz-flash-vstream-demo.hf.space",
"--Image Understanding--", "https://gokaygokay-flux-prompt-generator.hf.space", "https://gokaygokay-florence-2.hf.space", "https://vilarin-vl-chatbox.hf.space", "https://qnguyen3-nanollava.hf.space", "https://skalskip-better-florence-2.hf.space", "https://merve-llava-interleave.hf.space",
"--Img-to-img Understanding--", "https://merve-draw-to-search-art.hf.space",
"--Image Understanding without conversation--", "https://epfl-vilab-4m.hf.space", "https://epfl-vilab-multimae.hf.space", "https://gokaygokay-sd3-long-captioner.hf.space" ],
label="Choose/Cancel type any .hf.space link here (can also type a link)'", allow_custom_value=True)
mediaunderstandingspacebtn = gr.Button("Use the chosen URL to load interface with a media understanding space")
mediaunderstandingspace = gr.HTML("Mdeia Understanding Space Chosen will load here")
mediaunderstandingspacebtn.click(display_website, inputs=linktomediaunderstandingspace, outputs=mediaunderstandingspace)
gr.HTML("Image Caption = https://huggingface.co/spaces/microsoft/Promptist (Prompt Lengthen) ")
with gr.Tab("Images"):
with gr.Accordion("Image Gen or Animation HF Spaces/Sites (Click Here to Open) - Have to download and upload at the the top", open=False):
# with gr.Tabs("General"):
with gr.Row():
linktoimagegen = gr.Dropdown(choices=["--Text-Interleaved--", "https://ethanchern-anole.hf.space",
"--Hidden Image--", "https://ap123-illusiondiffusion.hf.space",
"--Panorama--", "https://gokaygokay-360panoimage.hf.space",
"--General--", "https://pixart-alpha-pixart-sigma.hf.space", "https://stabilityai-stable-diffusion-3-medium.hf.space", "https://prodia-sdxl-stable-diffusion-xl.hf.space", "https://prodia-fast-stable-diffusion.hf.space", "https://bytedance-hyper-sdxl-1step-t2i.hf.space", "https://multimodalart-cosxl.hf.space", "https://cagliostrolab-animagine-xl-3-1.hf.space", "https://stabilityai-stable-diffusion.hf.space",
"--Speed--", "https://radames-real-time-text-to-image-sdxl-lightning.hf.space", "https://ap123-sdxl-lightning.hf.space",
"--LORA Support--", "https://multimodalart-flux-lora-the-explorer.hf.space", "https://artificialguybr-artificialguybr-demo-lora.hf.space", "https://artificialguybr-studio-ghibli-lora-sdxl.hf.space", "https://artificialguybr-pixel-art-generator.hf.space", "https://fffiloni-sdxl-control-loras.hf.space", "https://ehristoforu-dalle-3-xl-lora-v2.hf.space",
"--Image to Image--", "https://gokaygokay-kolorsplusplus.hf.space", "https://lllyasviel-ic-light.hf.space", "https://gparmar-img2img-turbo-sketch.hf.space",
"--Upscaler--", "https://gokaygokay-tile-upscaler.hf.space",
"--Control of Pose--", "https://instantx-instantid.hf.space", "https://modelscope-transferanything.hf.space", "https://okaris-omni-zero.hf.space"
"--Control of Shapes--", "https://linoyts-scribble-sdxl-flash.hf.space",
"--Control of Text--", "",
"--Clothing Try on demos--", "https://kwai-kolors-kolors-virtual-try-on.hf.space",
"--Foreign Language Input--", "https://gokaygokay-kolors.hf.space"], label="Choose/Cancel type any .hf.space link here (can also type a link)'", allow_custom_value=True)
imagegenspacebtn = gr.Button("Use the chosen URL to load interface with a image generation model")
imagegenspace = gr.HTML("Image Space Chosen will load here")
imagegenspacebtn.click(display_website, inputs=linktoimagegen, outputs=imagegenspace)
linkstobecollectednoembed = "https://artgan-diffusion-api.hf.space", "https://multimodalart-stable-cascade.hf.space", "https://google-sdxl.hf.space", "https://visionmaze-magic-me.hf.space", "https://segmind-segmind-stable-diffusion.hf.space", "https://simianluo-latent-consistency-model.hf.space",
gr.HTML("Concept Art, UI elements, Static/3D Characters, Environments and Objects")
gr.HTML("Images Generation General (3rd Party) = https://www.craiyon.com/")
gr.HTML("Images Generation Posters with text - https://huggingface.co/spaces/GlyphByT5/Glyph-SDXL-v2")
gr.HTML("SVG Generation = Coding models / SOTA LLM ")
gr.HTML("Images Generation - Upscaling - https://huggingface.co/spaces/gokaygokay/Tile-Upscaler")
gr.HTML("Vision Models for descriptions <br> https://huggingface.co/spaces/gokaygokay/Florence-2 <br>https://huggingface.co/spaces/vilarin/VL-Chatbox - glm 4v 9b <br>")
gr.HTML("Upscalers (save data transfer costs? highly detailed characters?) - https://huggingface.co/spaces/gokaygokay/AuraSR")
gr.HTML("Placeholder for huggingface spaces that can assist ")
gr.HTML("Placeholder for models small enough to run on cpu here in this space that can assist")
with gr.Tab("Video"):
with gr.Accordion("Video Spaces/Sites (Click Here to Open)", open=False):
with gr.Row():
linktovideogenspace = gr.Dropdown(choices=["--Texttovid--", "https://kingnish-instant-video.hf.space",
"--General--", "https://zheyangqin-vader.hf.space", "https://kadirnar-open-sora.hf.space",
"--Talking Portrait--", "https://fffiloni-tts-hallo-talking-portrait.hf.space",
"--Gif / ImgtoImg based video--", "https://wangfuyun-animatelcm-svd.hf.space", "https://bytedance-animatediff-lightning.hf.space", "https://wangfuyun-animatelcm.hf.space", "https://guoyww-animatediff.hf.space",],
label="Choose/Cancel type any .hf.space link here (can also type a link)'", allow_custom_value=True)
videogenspacebtn = gr.Button("Use the chosen URL to load interface with video generation")
videogenspace = gr.HTML("Video Space Chosen will load here")
videogenspacebtn.click(display_website, inputs=linktovideogenspace, outputs=videogenspace)
gr.HTML("Cutscenes, Tutorials, Trailers")
gr.HTML("Portrait Video eg. Solo Taking NPC - https://huggingface.co/spaces/fffiloni/tts-hallo-talking-portrait (Image + Audio and combination) https://huggingface.co/spaces/KwaiVGI/LivePortrait (Non verbal communication eg. in a library, when running from a pursuer)")
gr.HTML("Placeholder for huggingface spaces that can assist - https://huggingface.co/spaces/KingNish/Instant-Video, https://huggingface.co/spaces/multimodalart/stable-video-diffusion, https://huggingface.co/spaces/multimodalart/stable-video-diffusion")
gr.HTML("Placeholder for models small enough to run on cpu here in this space that can assist")
gr.HTML("3rd Party / Closed Source - https://runwayml.com/ <br>")
with gr.Tab("Animations (for lower resource use)"):
gr.HTML("Characters, Environments, Objects")
gr.HTML("Placeholder for huggingface spaces that can assist - image as 3d object in video https://huggingface.co/spaces/ashawkey/LGM")
gr.HTML("Placeholder for models small enough to run on cpu here in this space that can assist")
with gr.Tab("Audio"):
with gr.Accordion("Audio Spaces/Sites (Click Here to Open)", open=False):
with gr.Row():
linktoaudiogenspace = gr.Dropdown(choices=["General", "https://artificialguybr-stable-audio-open-zero.hf.space", "",
"--Talking Portrait--","https://fffiloni-tts-hallo-talking-portrait.hf.space"],
label="Choose/Cancel type any .hf.space link here (can also type a link)'", allow_custom_value=True)
audiogenspacebtn = gr.Button("Use the chosen URL to load interface with audio generation")
audiogenspace = gr.HTML("Audio Space Chosen will load here")
audiogenspacebtn.click(display_website, inputs=linktoaudiogenspace, outputs=audiogenspace)
gr.HTML("Music - Background, Interactive, Cutscene, Menu <br>Sound Effects - Environment, character, action (environmental triggered by user eg. gun), UI <br>Speech - Dialouge, narration, voiceover <br>The new render function means the Config can be made and iframe/api functions can be ordered as neccessary based on the part of the config that needs it to streamline workflows based on current state of config ")
gr.HTML("Placeholder for huggingface spaces that can assist")
gr.HTML("Audio Sound Effects - https://huggingface.co/spaces/artificialguybr/Stable-Audio-Open-Zero")
gr.HTML("Voices - Voice clone eg. actors part of your project - https://huggingface.co/spaces/tonyassi/voice-clone")
gr.HTML("Placeholder for models small enough to run on cpu here in this space that can assist")
gr.HTML("3rd Party / Closed Source - https://suno.com/ <br>https://www.udio.com/")
with gr.Tab("3D"):
with gr.Accordion("3D Model Spaces/Sites (Click Here to Open)", open=False):
with gr.Row():
linktoThreedModel = gr.Dropdown(choices=["--Image prompt--", "https://vast-ai-charactergen.hf.space"
"--Video prompt--", "https://facebook-vggsfm.hf.space",
"--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)
ThreedModelspacebtn = gr.Button("Use the chosen URL to load interface with a 3D model")
ThreedModelspace = gr.HTML("3D Space Chosen will load here")
ThreedModelspacebtn.click(display_website, inputs=linktoThreedModel, outputs=ThreedModelspace)
gr.HTML("Characters, Environments, Objects")
gr.HTML("Placeholder for huggingface spaces that can assist - https://huggingface.co/spaces/dylanebert/3d-arena")
gr.HTML("Closed Source - https://www.meshy.ai/")
with gr.Tab("Fonts"):
gr.HTML("Style of whole game, or locations, or characters")
gr.HTML("Placeholder for huggingface spaces that can assist - there was a space that could make letter into pictures based on the prompt but I cant find it now")
gr.HTML("Placeholder for models small enough to run on cpu here in this space that can assist")
with gr.Tab("Shaders and related"):
with gr.Accordion("'Special Effects' Spaces/Sites (Click Here to Open)", open=False):
with gr.Row():
linktospecialeffectsgenspace = gr.Dropdown(choices=["--Distorted Image--", "https://epfl-vilab-4m.hf.space", "https://epfl-vilab-multimae.hf.space"],
label="Choose/Cancel type any .hf.space link here (can also type a link)'", allow_custom_value=True)
specialeffectsgenspacebtn = gr.Button("Use the chosen URL to load interface with special effects generation")
specialeffectsgenspace = gr.HTML("Special Effects Space Chosen will load here")
specialeffectsgenspacebtn.click(display_website, inputs=linktospecialeffectsgenspace, outputs=specialeffectsgenspace)
gr.HTML("Any output that is not understood by the common person can be used as special effects eg. depth map filters on images etc.")
gr.HTML("Post-processing Effects, material effects, Particle systems, visual feedback")
gr.HTML("Visual Effects - eg. explosion can turn all items white for a moment, losing conciousness blurs whole screen")
gr.HTML("Placeholder for models small enough to run on cpu here in this space that can assist")
with gr.Tab("NPCS"):
gr.HTML("For ideas on NPCS check: https://lifearchitect.ai/leta/, ")
with gr.Tab("Save files"):
gr.HTML("For Dynamic events overnight or when player is not active what can LLMS edit? <br><br>eg. Waiting for a letter from a random npc can be decided by the llm <br>eg. Improved Stats on certain days (eg. bitrthday) <br>Privacy <br>User Directed DLC eg. Rockstar Editor with local llm guide")
gr.HTML("Some ideas - In game websites eg. GTA esp stock markets, news; ")
gr.HTML("Placeholder for huggingface spaces that can assist - https://huggingface.co/nvidia/Nemotron-4-340B-Instruct (Purpose is supposed to be synthetic data generation), https://huggingface.co/spaces/gokaygokay/Gemma-2-llamacpp ")
gr.HTML("Placeholder for models small enough to run on cpu here in this space that can assist (9b and under) <br>initial floor for testing can be https://huggingface.co/spaces/Qwen/Qwen2-0.5B-Instruct, https://huggingface.co/spaces/Qwen/Qwen2-1.5b-instruct-demo, https://huggingface.co/spaces/stabilityai/stablelm-2-1_6b-zephyr, https://huggingface.co/spaces/IndexTeam/Index-1.9B, https://huggingface.co/microsoft/Phi-3-mini-4k-instruct")
with gr.Tab("Diagrams"):
gr.HTML("Claude 3.5 sonnet is very good with mermaid graphs - can used for maps, situational explanations")
with gr.Tab("Maths"):
gr.HTML("https://huggingface.co/spaces/AI-MO/math-olympiad-solver")
with gr.Tab("Using gradio client / External Source as API provider"):
gr.HTML("State file managed and one item at time creation using gradio client")
with gr.Tab("Bulk Generate Assets"):
with gr.Tab("Load Configuration"):
with gr.Row():
SPFManconfig_file = gr.File(label="Load Configuration File")
SPFManload_config_button = gr.Button("Load Configuration")
SPFManload_result = gr.Textbox(label="Load Result")
with gr.Tab("Manage Prompts"):
with gr.Accordion("Load the current game state that you want to add media to", open=False):
gr.Markdown("# Load and View Game Configuration")
with gr.Accordion("Click to hide config for space"):
SPFManJLconfig_input = gr.Textbox(label="Enter Game Configuration JSON", placeholder="Paste JSON config here", lines=4)
SPFManJLlocation_choice = gr.Dropdown(choices=[], label="Choose location")
SPFManJLpart_choice = gr.Dropdown(choices=[], label="Choose part")
SPFManJLconfig_view = gr.JSON(label="Configuration Details")
SPFManJLconfig_input.change(fn=SPFManJLupdate_location_choices, inputs=SPFManJLconfig_input, outputs=[SPFManJLlocation_choice, SPFManJLpart_choice])
SPFManJLlocation_choice.change(fn=SPFManJLupdate_part_choices, inputs=[SPFManJLconfig_input, SPFManJLlocation_choice], outputs=SPFManJLpart_choice)
def SPFManJLupdate_config_view(config_json, location, part):
return SPFManJLget_config_part(config_json, location, part)
SPFManJLpart_choice.change(fn=SPFManJLupdate_config_view, inputs=[SPFManJLconfig_input, SPFManJLlocation_choice, SPFManJLpart_choice], outputs=SPFManJLconfig_view)
gr.Interface(SPFManJLPromptSuggestionGradClient, inputs=[SPFManJLconfig_view, "text"], outputs=["text"], description="Ask a random LLM for suggestions eg. bring life to the game by focusing more on the description")
with gr.Row():
SPFManprompt_type = gr.Dropdown(["image", "audio"], label="Prompt Type")
SPFManprompt = gr.Textbox(label="Prompt")
with gr.Row():
SPFManadd_button = gr.Button("Add Prompt")
SPFManclear_button = gr.Button("Clear Prompts")
SPFManauto_generate_button = gr.Button("Auto-Generate Prompt")
with gr.Row():
SPFManprompt_output = gr.Textbox(label="Added Prompts")
SPFManprompt_count = gr.Number(value=0, label="Number of Prompts")
SPFManview_prompts_button = gr.Button("View All Prompts")
SPFManall_prompts_output = gr.Textbox(label="All Prompts", lines=10)
#SPFManconfig_view = gr.Textbox(label="Current Configuration", lines=10)
# New JSON input for loading configurations
#SPFManjson_input = gr.Textbox(label="JSON Configuration", lines=10)
#SPFManload_json_button = gr.Button("Load JSON Configuration")
# Link the button to the function
#SPFManload_json_button.click(SPFManload_json_configuration, inputs=[SPFManjson_input], outputs=[load_result, prompt_count])
with gr.Tab("API Settings"):
with gr.Row():
SPFManapi_provider = gr.Textbox(label="API Provider", value=lambda: SPFManstate["api_provider"])
SPFMancost_per_item = gr.Number(label="Cost per Item", value=lambda: SPFManstate["cost_per_item"])
SPFManupdate_api_button = gr.Button("Update API Details")
SPFManapi_update_result = gr.Textbox(label="API Update Result")
with gr.Tab("Generate Files and Media"):
with gr.Row():
SPFManoutput_dir = gr.Textbox(label="Output Directory", value=lambda: SPFManstate["output_dir"])
SPFManresume = gr.Checkbox(label="Resume from last run", value=True)
with gr.Row():
SPFManpaid_api_checkbox = gr.Checkbox(label="Use Paid API", value=lambda: SPFManstate["is_paid_api"])
SPFMancost_estimate = gr.Textbox(label="Estimated Cost")
SPFMangenerate_button = gr.Button("Generate Files and Media")
SPFManskip_button = gr.Button("Skip Current Item")
SPFManresults = gr.Textbox(label="Results", lines=10)
SPFManerror_output = gr.Textbox(label="Errors", lines=5)
SPFManzip_button = gr.Button("Zip Output Files")
SPFManzip_result = gr.Textbox(label="Zip Result")
SPFManload_config_button.click(SPFManload_config_file, inputs=[SPFManconfig_file], outputs=[SPFManload_result, SPFManprompt_count])
SPFManadd_button.click(SPFManadd_prompt, inputs=[SPFManprompt_type, SPFManprompt], outputs=[SPFManprompt_output, SPFManprompt_count])
SPFManclear_button.click(SPFManclear_prompts, outputs=[SPFManprompt_output, SPFManprompt_count])
SPFManview_prompts_button.click(SPFManview_all_prompts, outputs=SPFManall_prompts_output)
SPFManauto_generate_button.click(SPFManauto_generate_prompt, inputs=[SPFManprompt_type], outputs=[SPFManprompt])
SPFManupdate_api_button.click(SPFManupdate_api_details, inputs=[SPFManapi_provider, SPFMancost_per_item], outputs=[SPFManapi_update_result])
SPFManpaid_api_checkbox.change(SPFMantoggle_paid_api, inputs=[SPFManpaid_api_checkbox], outputs=[SPFMancost_estimate])
SPFMangenerate_button.click(SPFMancreate_files_with_generation, inputs=[SPFManresume], outputs=SPFManresults)
SPFManskip_button.click(SPFManskip_item, outputs=SPFManresults)
SPFManzip_button.click(SPFManzip_files, outputs=SPFManzip_result)
gr.Textbox(label="Configuration", value=SPFManview_config, every=1)
with gr.Tab("Replicate - API Definitions crucial models"):
gr.HTML("Many custom models set-up and the ability to set up the neccesary ones using cog <br> https://replicate.com/collections/text-to-image | https://replicate.com/collections/text-to-video | https://replicate.com/collections/audio-generation https://replicate.com/collections/text-to-speech | https://replicate.com/collections/3d-models ")
gr.Code("""Install Replicate’s Python client library
pip install replicate
Copy
Set the REPLICATE_API_TOKEN environment variable
export REPLICATE_API_TOKEN=<paste-your-token-here>
Visibility
Copy
Find your API token in your account settings.
Import the client
import replicate
Copy
Run meta/musicgen using Replicate’s API. Check out the model's schema for an overview of inputs and outputs.
output = replicate.run(
"meta/musicgen:671ac645ce5e552cc63a54a2bbff63fcf798043055d2dac5fc9e36a837eedcfb",
input={
"top_k": 250,
"top_p": 0,
"prompt": "Edo25 major g melodies that sound triumphant and cinematic. Leading up to a crescendo that resolves in a 9th harmonic",
"duration": 8,
"temperature": 1,
"continuation": False,
"model_version": "stereo-large",
"output_format": "mp3",
"continuation_start": 0,
"multi_band_diffusion": False,
"normalization_strategy": "peak",
"classifier_free_guidance": 3
}
)
print(output)""", language="python")
with gr.Tab("Cloud Computing"):
gr.HTML("Storage, AI api access, VMs, ")
with gr.Tab("Using 3rd Party Interface - free/paid"):
gr.HTML("General - https://artificialanalysis.ai/models/llama-3-1-instruct-405b/providers")
gr.HTML("Image - https://playground.com/login | https://www.midjourney.com/showcase")
gr.HTML("Audio - https://www.udio.com/home https://www.udio.com/pricing | https://suno.com/ ")
gr.HTML("Video - https://lumalabs.ai/dream-machine https://lumalabs.ai/dream-machine/pricing (free 30 gens a month) | https://klingai.com/ - https://www.reddit.com/r/singularity/comments/1fk4tgp/kling_ai_showcasing_the_use_of_the_motion_brush/ | https://www.hedra.com/")
gr.HTML("3D - https://www.csm.ai/ | https://www.tripo3d.ai/ | https://zoo.dev/text-to-cad")
gr.HTML("Multiple - https://fal.ai/pricing | ")
with gr.Tab("Examples of Generated Media on Reddit"):
gr.HTML("https://www.reddit.com/r/singularity/comments/1fknejj/facecamai_lets_anyone_convert_a_single_image_into/ <br>https://www.reddit.com/r/singularity/comments/1fjylow/tripo_v20_is_out_now_you_can_create_stunning_3d/")
with gr.Tab("Licensing"):
gr.HTML("To be continued.... Need to find the press release to see license eg. https://blackforestlabs.ai/announcing-black-forest-labs/")
return filemanager