Spaces:
Runtime error
Runtime error
File size: 5,656 Bytes
0844d45 105e0b1 bbbee69 0844d45 8833fff 2c57a38 0844d45 080b2a6 0844d45 2c57a38 0844d45 2c57a38 0844d45 2c57a38 0844d45 8833fff 2c57a38 080b2a6 0844d45 2c57a38 0844d45 2c57a38 0844d45 7b92b01 0844d45 2c57a38 8833fff 0844d45 | 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 | import os
import random
from PIL import Image
from bs4 import BeautifulSoup
import gradio as gr
from gradio_client import Client
def whisper_stt(audio):
print("inside whisper_stt")
print(f'audio is - {audio}')
print(f'audio is - {type(audio)}')
#Connect to the Space
client = Client("abidlabs/whisper", hf_token="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")
print ("now here")
text = client.predict(audio, api_name = '/predict')
print(f"text is - {text}")
return text
def ttimg(prompt):
print("inside ttimg")
#Connect to the Space
client = Client("stabilityai/stable-diffusion")
img_dir = client.predict(prompt,"blur",7, fn_index = 1)
print(f'image dir - {img_dir}')
jpg_files = [f for f in os.listdir(img_dir) if f.endswith('.jpg')]
#if len(jpg_files) > 0:
# chosen_file = random.choice(jpg_files)
file_path = os.path.join(img_dir, jpg_files[0])
print(f'file_path - {file_path}')
return file_path
#with open(file_path, 'rb') as f:
# pil_img = Image.open(f)
# return pil_img.show()
def controlnet_img2img(img, cnet_prompt):
print("inside controlnet_img2img")
#Connect to the Space
client = Client("ysharma/ControlNetwithSlider")
img_dir = client.predict(img, cnet_prompt, "", "blur",1,512,20,9,123,0,100,200,api_name = '/canny')
png_files = [os.path.join(img_dir, f) for f in os.listdir(img_dir) if f.endswith('.png')]
return png_files[0], png_files[1]
def img2para(cnet_img2):
print("inside img2para")
#Connect to the Space
client = Client("Awiny/Image2Paragraph")
txt = client.predict(cnet_img2, [], api_name="/predict")
print(f'img2para text is - {txt}')
soup = BeautifulSoup(txt, 'html.parser')
gpt4_section = soup.find_all('div', {'style': 'display: flex; flex-wrap: wrap;'})[1].find_all('p')[0].text
return gpt4_section
# demo with different Gradio Clients
demo = gr.Blocks()
with demo:
gr.HTML("<h2><center>Using Multiple Gradio Clients to create an app</center></h2><br>")
gr.HTML("""<div style="text-align:center;"><iframe src="https://gifer.com/embed/25cz" width=480 height=270.000 frameBorder="0" allowFullScreen></iframe></div><br>""")
with gr.Row():
audio_mic = gr.Audio(source="microphone", type="filepath")
with gr.Column():
btn_whisper = gr.Button("Transcribe👇").style(full_width=True)
prompt = gr.Textbox(label="prompt for SD image generation", interactive=False) #, value='a black swan')
gr.HTML("<br>")
with gr.Row():
btn_sd = gr.Button("Generate Image👉").style(full_width=True)
sd_img = gr.Image(type='filepath') #value="/content/e321040c-b2eb-4550-8aaa-4cd416a7602d/tmpwyiwdr_1.jpg",
gr.HTML("<br>")
with gr.Row():
with gr.Column():
cnet_prompt = gr.Textbox(label="prompt for SD image generation")
btn_cnet = gr.Button("ControlNet Output👉").style(full_width=True)
cnet_img1 = gr.Image(type='filepath')
cnet_img2 = gr.Image(type='filepath')
gr.HTML("<br>")
with gr.Row():
btn_Img2para = gr.Button("Lets understand Image with Text👉").style(full_width=True)
paragraph = gr.Textbox(label="Image to Paragraph generation")
btn_whisper.click(whisper_stt, audio_mic, prompt)
btn_sd.click(ttimg, prompt, sd_img)
btn_cnet.click(controlnet_img2img, [sd_img, cnet_prompt], [cnet_img1, cnet_img2])
btn_Img2para.click(img2para, cnet_img1, paragraph)
#demo.launch()
# demo with different Gradio Clients Chained together
demo_chain_events = gr.Blocks()
with demo_chain_events:
gr.HTML("<h2><center>Chaining Multiple Gradio Clients using Events!</center></h2><br>")
gr.HTML("""<div style="text-align:center;"><iframe src="https://gifer.com/embed/2YYc" width=480 height=280.286 frameBorder="0" allowFullScreen></iframe></div><br>""")
audio_mic = gr.Audio(source="microphone", type="filepath")
btn_whisper = gr.Button("Trigger the Chained Events🚀🚀").style(full_width=True)
prompt = gr.Textbox(label="Getting the Prompt for Stable Diffusion using Whisper Gradio Client", interactive=False,) #value='a black swan'
gr.HTML("<br>")
with gr.Row():
with gr.Column():
html_sd = gr.HTML("<h1><center>Stable Diffusion Generated Image👇</center></h1>") #.style(full_width=True)
sd_img = gr.Image(type='filepath') #value="/content/e321040c-b2eb-4550-8aaa-4cd416a7602d/tmpwyiwdr_1.jpg",
#with gr.Row():
with gr.Column():
with gr.Row():
html_cnet = gr.HTML("<h1><center>ControlNet Output👇</center></h1>") #.style(full_width=True)
cnet_prompt = gr.Textbox(label="Prompt for ControlNet", value='a beautiful scenery')
with gr.Row():
cnet_img1 = gr.Image(type='filepath')
cnet_img2 = gr.Image(type='filepath')
gr.HTML("<br>")
with gr.Row():
with gr.Column():
html_Img2para = gr.HTML("<h1><center>Image to Paragraph output👇</center></h1>") #.style(full_width=True)
paragraph = gr.Textbox(label="Image to Paragraph generation")
btn_whisper.click(whisper_stt, audio_mic, prompt)\
.success(ttimg, prompt, sd_img)\
.success(controlnet_img2img, [sd_img, cnet_prompt], [cnet_img1, cnet_img2])\
.success(img2para, cnet_img1, paragraph)
#demo_chain_events.launch()
demo_joint = gr.Blocks(theme=gr.themes.Monochrome())
with demo_joint:
gr.HTML("<h1><center>🚀Revolutionize Your App Development with Gradio Client🏗️</center></h1>")
gr.HTML("<h2><center>Using Multiple Clients at Once : Whisper Client -> Stable Diffusion Client -> ControlNet Client -> Image2Paragraph Client</center></h2><br>")
with gr.Row():
with gr.Box():
demo.render()
with gr.Box():
demo_chain_events.render()
demo_joint.launch(debug=True) |