Spaces:
Sleeping
Sleeping
File size: 7,027 Bytes
3a0c310 8092d9e 3a0c310 8092d9e 3a0c310 8092d9e 3a0c310 8092d9e 3a0c310 8092d9e 3a0c310 8092d9e 3a0c310 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 |
import gradio as gr
import numpy as np
import matplotlib.pyplot as plt
from PIL import Image
import time
# 1. π Interface - The launchpad of Gradio greatness!
def hello_world(name):
return f"Hello, {name}! Welcome to the Gradio circus! πͺ"
# 2. π§± Blocks - Building blocks so fun, even LEGO is jealous!
with gr.Blocks() as demo:
gr.Markdown("# π Gradio's 28 Ring Circus!")
# 3. π Textbox - Where words come to party!
name_input = gr.Textbox(label="Enter your name, circus-goer!")
greeting_output = gr.Textbox(label="Ringmaster's Welcome")
gr.Interface(fn=hello_world, inputs=name_input, outputs=greeting_output)
# 4. π’ Number - Counting clowns has never been easier!
def square_number(num):
return f"Squared faster than a juggler's hands: {num**2}"
gr.Interface(fn=square_number, inputs=gr.Number(label="Enter a number to square"), outputs="text")
# 5. ποΈ Slider - Slide into DMs? Nah, slide into data!
def slider_shenanigans(value):
return f"Slider set to {value}! That's {value/10} in clown shoes!"
gr.Interface(fn=slider_shenanigans, inputs=gr.Slider(0, 100), outputs="text")
# 6. β
Checkbox - To check or not to check, that is the question!
def checkbox_challenge(checked):
return "You've unleashed the confetti cannon!" if checked else "Confetti cannon: sad and unused π’"
gr.Interface(fn=checkbox_challenge, inputs=gr.Checkbox(label="Release the confetti?"), outputs="text")
# 7. π» Radio - Tune into the frequency of fun!
def radio_racket(choice):
sounds = {"Lion": "π¦ ROAR!", "Elephant": "π TRUMPET!", "Monkey": "π OOH OOH AH AH!"}
return f"You tuned into: {sounds.get(choice, 'Static... must be the clowns interfering')}"
gr.Interface(fn=radio_racket, inputs=gr.Radio(["Lion", "Elephant", "Monkey"], label="Choose your circus animal"), outputs="text")
# 8. π³οΈ Dropdown - Drop it like it's hot (but it's a select menu)!
def dropdown_delight(choice):
return f"You chose {choice}! A person of exquisite taste in circus snacks! πΏ"
gr.Interface(fn=dropdown_delight, inputs=gr.Dropdown(["Popcorn", "Cotton Candy", "Peanuts"], label="Pick your circus treat"), outputs="text")
# 9. πΌοΈ Image - Worth a thousand words, or one really good meme!
def image_inverter(img):
return Image.fromarray(255 - np.array(img))
gr.Interface(fn=image_inverter, inputs=gr.Image(label="Upload an image to invert"), outputs="image")
# 10. π¬ Video - Moving pictures, like magic but with more pixels!
def video_info(video):
return f"Video info: {video.name}. Warning: May contain clowns!"
gr.Interface(fn=video_info, inputs=gr.Video(label="Upload a video"), outputs="text")
# 11. π΅ Audio - Making waves, literally!
def audio_echo(audio):
return (audio[1], 22050) # Return the audio with same sample rate
gr.Interface(fn=audio_echo, inputs=gr.Audio(sources=["microphone"], type="numpy"), outputs="audio")
# 12. π File - Where digital hoarders unite!
def file_fun(file):
return f"File uploaded: {file.name}. I hope it's not your tax returns!"
gr.Interface(fn=file_fun, inputs=gr.File(label="Upload a file"), outputs="text")
# 13. π·οΈ Label - Sticking labels on things since kindergarten!
def label_laughs(text):
return "Funny" if "laugh" in text.lower() else "Not funny (try again, clown)"
gr.Interface(fn=label_laughs, inputs="text", outputs=gr.Label())
# 14-15-16. πΌοΈπ¬π΅ Image, Video, Audio Output - The holy trinity of media outputs!
def media_madness(choice):
if choice == "Image":
return Image.new('RGB', (100, 100), color = 'red')
elif choice == "Video":
return gr.Video.update(visible=True, value=None)
else:
return gr.Audio.update(visible=True, value=None)
gr.Interface(
fn=media_madness,
inputs=gr.Radio(["Image", "Video", "Audio"]),
outputs=[gr.Image(), gr.Video(visible=False), gr.Audio(visible=False)]
)
# 17. π Plot - Making data look pretty since matplotlib was a twinkle in its creator's eye!
def plot_partay():
fig, ax = plt.subplots()
x = np.linspace(0, 10, 100)
ax.plot(x, np.sin(x))
ax.set_title("Sine Wave (AKA The Rollercoaster of Emotions)")
return fig
gr.Interface(fn=plot_partay, inputs=None, outputs="plot")
# 18. π JSON - Because sometimes life needs to be structured!
def json_jester():
return {"joke": "Why don't scientists trust atoms? Because they make up everything!"}
gr.Interface(fn=json_jester, inputs=None, outputs="json")
# 19. π Launch - We have liftoff! (Hopefully not like that one rocket...)
def prepare_for_launch():
return "Initiating launch sequence... Don't forget your space helmet!"
launch_interface = gr.Interface(fn=prepare_for_launch, inputs=None, outputs="text")
# 20. πͺ Close - All good things must come to an end (like this increasingly long demo)
def time_to_close():
time.sleep(2) # Pretend we're doing important closing stuff
return "Show's over, folks! Time to pack up the circus tent!"
gr.Interface(fn=time_to_close, inputs=None, outputs="text")
# 21. πΎ Load - Because sometimes you just need to pick up where you left off
# Note: This is a placeholder. You'll need to replace it with an actual saved model.
# saved_interface = gr.Interface.load("models/saved_model")
saved_interface = gr.Interface(fn=lambda x: f"Loaded model says: {x}", inputs="text", outputs="text")
# 22. π TabbedInterface - For when you can't decide which interface to use!
with gr.TabbedInterface([launch_interface, saved_interface], ["New Launch", "Saved Launch"]):
gr.Markdown("Choose your launch adventure!")
# 25. ποΈ Queueing - Like waiting in line for a rollercoaster, but for data!
def long_process(x):
time.sleep(5) # Simulate a long process
return f"Processed: {x}"
gr.Interface(fn=long_process, inputs="text", outputs="text").queue()
# 26. π Auth - Keep the riffraff out (and by riffraff, we mean anyone without a password)
def secret_function():
return "You've accessed the secret function! The password is 'password123'. Don't tell anyone!"
gr.Interface(fn=secret_function, inputs=None, outputs="text").launch(auth=("user", "pass"))
# 27. π¨ Theme - Because even data needs a good outfit
gr.themes.Base() # Using a built-in theme as custom themes might not be available
# 28. π Analytics - Keeping track of all the fun (and the not-so-fun)
# Note: analytics_enabled is typically set when launching the interface, not here
# Let the show begin!
demo.launch() |