Spaces:
Running
Running
File size: 3,288 Bytes
e33485b e032f0c e00cbb6 e032f0c f25f3c0 e032f0c 3a4f4b2 e032f0c 3604e33 e032f0c e00cbb6 88f6b3a ebee332 1904759 e00cbb6 84838d7 a7babaf c3179cf a7babaf 84838d7 282f153 84838d7 a7babaf 84838d7 a7babaf 84838d7 e032f0c 84838d7 ee6544b 8fe4b23 e00cbb6 3a4f4b2 e00cbb6 f25f3c0 84838d7 3a4f4b2 e032f0c 3bb7ca9 e032f0c 84838d7 |
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 |
import gradio as gr
import os
from share_btn import community_icon_html, loading_icon_html, share_js
img_to_text = gr.Blocks.load(name="spaces/pharma/CLIP-Interrogator")
stable_diffusion = gr.Blocks.load(name="spaces/stabilityai/stable-diffusion")
def get_images(prompt):
gallery_dir = stable_diffusion(prompt, fn_index=2)
sd_output = [os.path.join(gallery_dir, image) for image in os.listdir(gallery_dir)]
return sd_output, gr.update(visible=True), gr.update(visible=True), gr.update(visible=True)
def get_prompts(uploaded_image):
return img_to_text(uploaded_image, fn_index=1)[0]
css = '''
.animate-spin {
animation: spin 1s linear infinite;
}
@keyframes spin {
from {
transform: rotate(0deg);
}
to {
transform: rotate(360deg);
}
}
#share-btn-container {
display: flex; padding-left: 0.5rem !important; padding-right: 0.5rem !important; background-color: #000000; justify-content: center; align-items: center; border-radius: 9999px !important; width: 13rem;
}
#share-btn {
all: initial; color: #ffffff;font-weight: 600; cursor:pointer; font-family: 'IBM Plex Sans', sans-serif; margin-left: 0.5rem !important; padding-top: 0.25rem !important; padding-bottom: 0.25rem !important;
}
#share-btn * {
all: unset;
}
#share-btn-container div:nth-child(-n+2){
width: auto !important;
min-height: 0px !important;
}
#share-btn-container .wrap {
display: none !important;
}
'''
with gr.Blocks(css=css) as demo:
gr.Markdown(
"""
## Stable Diffusion Prism ππ
Sends an image in to [CLIP Interrogator](https://huggingface.co/spaces/pharma/CLIP-Interrogator)
to generate a text prompt which is then run through Stable Diffusion to generate new forms of the original!
"""
)
with gr.Row():
with gr.Column():
input_img = gr.Image(type="filepath", elem_id="input-img")
with gr.Row():
see_prompts = gr.Button("Feed in your image!")
with gr.Column():
img2text_output = gr.Textbox(
label="Generated text prompt",
lines=4,
elem_id="translated"
)
with gr.Row():
diffuse_btn = gr.Button(value="Diffuse it!")
with gr.Column(elem_id="generated-gallery"):
sd_output = gr.Gallery().style(grid=2, height="auto")
with gr.Group(elem_id="share-btn-container"):
community_icon = gr.HTML(community_icon_html, visible=False)
loading_icon = gr.HTML(loading_icon_html, visible=False)
share_button = gr.Button("Share to community", elem_id="share-btn", visible=False)
see_prompts.click(get_prompts,
inputs = input_img,
outputs = [
img2text_output
])
diffuse_btn.click(get_images,
inputs = [
img2text_output
],
outputs = [sd_output, community_icon, loading_icon, share_button]
)
share_button.click(None, [], [], _js=share_js)
demo.launch()
|