File size: 2,761 Bytes
556d478 |
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 |
import gradio as gr
import os
# If 'share_btn.py' is a custom module, ensure it's available; otherwise, comment out or remove these imports
# from share_btn import community_icon_html, loading_icon_html, share_js
# Load interfaces from Hugging Face Spaces
text_gen = gr.Interface.load(name="spaces/Gustavosta/MagicPrompt-Stable-Diffusion")
stable_diffusion = gr.Interface.load(name="spaces/runwayml/stable-diffusion-v1-5")
def get_images(prompt):
# Call the stable_diffusion interface with the prompt
sd_output = stable_diffusion(prompt)
# Return the output images and update the visibility of icons
return sd_output, gr.update(visible=True), gr.update(visible=True)
def get_prompts(prompt_text):
# Generate expanded prompts using the text_gen interface
return text_gen(prompt_text)
css = '''
/* Your CSS styles remain unchanged */
.animate-spin {
animation: spin 1s linear infinite;
}
/* ... rest of the CSS ... */
'''
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;">
Prompt Refinery
</h1>
</div>
<p style="margin-bottom: 10px; font-size: 94%">
🏭 Prompt Refinery generates variations of your prompt using
<a href="https://huggingface.co./spaces/Gustavosta/MagicPrompt-Stable-Diffusion" target="_blank">
MagicPrompt and Stable Diffusion
</a>
</p>
</div>
""")
with gr.Row():
with gr.Column():
input_text = gr.Textbox(label="Input text prompt", lines=2, elem_id="input-text")
see_prompts = gr.Button("✍️Expand my prompts")
with gr.Column():
text_output = gr.Textbox(label="🏭 Expanded text prompts", lines=8, elem_id="translated")
diffuse_btn = gr.Button(value="🏭 Render Images for My Prompts")
with gr.Column(elem_id="generated-gallery"):
sd_output = gr.Gallery().style(grid=2, height="auto")
with gr.Group(elem_id="share-btn-container"):
# Replace the content of community_icon_html and loading_icon_html with actual HTML or leave empty
community_icon = gr.HTML("", visible=False)
loading_icon = gr.HTML("", visible=False)
# Define the interactions without 'api_name', which is deprecated
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])
demo.launch(debug=True)
|