Spaces:
Runtime error
Runtime error
File size: 3,936 Bytes
cfbc07e c89c7b2 5dc70a0 cfbc07e 3c7cd80 5dc70a0 3c7cd80 cfbc07e 5ef8503 cfbc07e ffddc9e 4d38baf cfbc07e 4d38baf 4105b7a cfbc07e 4d38baf 3843884 cfbc07e 081ecd6 e89d3eb 081ecd6 cfbc07e 3843884 cfbc07e 3843884 cfbc07e bd3ae85 cfbc07e |
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 |
import gradio as gr
import os
from share_btn import community_icon_html, loading_icon_html, share_js
text_gen = gr.Interface.load(name="spaces/Gustavosta/MagicPrompt-Stable-Diffusion")
stable_diffusion = gr.Blocks.load(name="spaces/runwayml/stable-diffusion-v1-5")
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(prompt_text):
return text_gen(prompt_text)
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;
}
a {text-decoration-line: underline;}
'''
with gr.Blocks(css=css) as demo:
gr.HTML("""<div style="text-align: center; max-width: 700px; margin: 0 auto;">
<div
style="
display: inline-flex;
align-items: center;
gap: 0.8rem;
font-size: 1.75rem;
"
>
<h1 style="font-weight: 900; margin-bottom: 7px; margin-top: 5px;">
🪄 Ai Art Generator 🪄
</h1>
</div>
<p style="margin-bottom: 10px; font-size: 94%">
This Space prettifies your prompt using "MagicPrompt"
and then runs it through Stable Diffusion to create aesthetically pleasing images. Simply enter a few concepts and let it improve your prompt. You can then diffuse the prompt.
</p>
</div>""")
with gr.Row():
with gr.Column():
input_text = gr.Textbox(label="Short text prompt",
lines=4, elem_id="input-text",
)
with gr.Row():
see_prompts = gr.Button("1. Enter short text")
with gr.Column():
text_output = gr.Textbox(
label="Prettified text prompt",
lines=4,
elem_id="translated"
)
with gr.Row():
diffuse_btn = gr.Button(value="2. Generate art!")
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("How to Download ?", elem_id="share-btn", visible=False)
see_prompts.click(get_prompts,
inputs = [input_text],
outputs = [
text_output
])
diffuse_btn.click(get_images,
inputs = [
text_output
],
outputs = [sd_output, community_icon, loading_icon, share_button]
)
share_button.click(None, [], [], _js=share_js)
demo.launch(debug=True) |