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)