Spaces:
Sleeping
Sleeping
import gradio as gr | |
import random | |
from details import get_celebrity_details | |
from model import class_names, predict_celebrity | |
def get_new_target_celebrity(): | |
return random.choice(class_names) | |
target_celebrity = get_new_target_celebrity() | |
def game_mode(image): | |
global target_celebrity | |
celebrity_name = predict_celebrity(image) | |
details = get_celebrity_details(celebrity_name) | |
if celebrity_name == target_celebrity: | |
return f"Congratulations! You uploaded the correct celebrity: {celebrity_name}", details["meme"] | |
else: | |
details["meme"] = None | |
return f"Sorry, try again! another image The target celebrity was {target_celebrity}.", details["meme"] | |
def reset_game(): | |
global target_celebrity | |
target_celebrity = get_new_target_celebrity() | |
return gr.update(value=f"{target_celebrity}"), None | |
with gr.Blocks() as game_block: | |
image_input = gr.Image(type="numpy", label="Upload Celebrity Image") | |
result_text = gr.Textbox(label=f"Target Celebrity:") | |
result_text.value = target_celebrity | |
meme_output = gr.Image(type="filepath", label=" ") | |
game_interface = gr.Interface( | |
fn=game_mode, | |
inputs=image_input, | |
outputs=[result_text, meme_output], | |
live=True | |
) | |
reset_btn = gr.Button("Reset") | |
reset_btn.click(fn=reset_game, inputs=[], outputs=[result_text, meme_output]) | |
if __name__ == "__main__": | |
game_block.launch() |