Celebrity_Recognition / GameMode.py
Sarath0x8f's picture
Upload 7 files
0f186b9 verified
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()