File size: 4,071 Bytes
ed64d4e
66b1848
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
ed64d4e
15d0d7e
 
66b1848
 
 
 
 
 
 
 
 
 
ed64d4e
15d0d7e
 
 
ed64d4e
15d0d7e
 
 
 
 
 
 
 
 
 
 
66b1848
15d0d7e
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
ed64d4e
15d0d7e
 
 
 
 
 
 
 
 
 
 
66b1848
 
15d0d7e
66b1848
 
 
 
 
15d0d7e
 
66b1848
 
 
 
 
 
 
 
 
 
 
 
ed64d4e
15d0d7e
 
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
import streamlit as st
from gradio_client import Client
import time

def generate_image(prompt):
    try:
        client = Client("mukaist/Midjourney")
        result = client.predict(
            prompt=prompt,
            negative_prompt="(deformed iris, deformed pupils, semi-realistic, cgi, 3d, render, sketch, cartoon, drawing, anime:1.4), text, close up, cropped, out of frame, worst quality, low quality, jpeg artifacts, ugly, duplicate, morbid, mutilated, extra fingers, mutated hands, poorly drawn hands, poorly drawn face, mutation, deformed, blurry, dehydrated, bad anatomy, bad proportions, extra limbs, cloned face, disfigured, gross proportions, malformed limbs, missing arms, missing legs, extra arms, extra legs, fused fingers, too many fingers, long neck",
            use_negative_prompt=True,
            style="2560 x 1440",
            seed=0,
            width=1024,
            height=1024,
            guidance_scale=6,
            randomize_seed=True,
            api_name="/run"
        )
        return result
    except Exception as e:
        st.error(f"Error generating image: {str(e)}")
        return None

def handle_prompt_click(prompt_text, key):
    st.session_state[f'selected_prompt_{key}'] = prompt_text
    
    # Show loading message
    with st.spinner('Generating artwork...'):
        # Generate the image
        result = generate_image(prompt_text)
        
        if result:
            # Store the result in session state
            st.session_state[f'generated_image_{key}'] = result
            st.success("Artwork generated successfully!")

def main():
    st.title("๐ŸŽจ Art Prompt Generator")
    st.markdown("### Select a prompt style to generate artwork:")

    # Dictionary mapping prompts to emojis
    prompt_emojis = {
        "AIart/AIArtistCommunity": "๐Ÿค–",
        "Black & White": "โšซโšช",
        "Black & Yellow": "โšซ๐Ÿ’›",
        "Blindfold": "๐Ÿ™ˆ",
        "Break": "๐Ÿ’”",
        "Broken": "๐Ÿ”จ",
        "Christmas Celebrations art": "๐ŸŽ„",
        "Colorful Art": "๐ŸŽจ",
        "Crimson art": "๐Ÿ”ด",
        "Eyes Art": "๐Ÿ‘„",
        "Going out with Style": "๐Ÿ’ƒ",
        "Hooded Girl": "๐Ÿงฅ",
        "Lips": "๐Ÿ‘„",
        "MAEKHLONG": "๐Ÿฎ",
        "Mermaid": "๐Ÿงœโ€โ™€๏ธ",
        "Morning Sunshine": "๐ŸŒ…",
        "Music Art": "๐ŸŽต",
        "Owl": "๐Ÿฆ‰",
        "Pink": "๐Ÿ’—",
        "Purple": "๐Ÿ’œ",
        "Rain": "๐ŸŒง๏ธ",
        "Red Moon": "๐ŸŒ‘",
        "Rose": "๐ŸŒน",
        "Snow": "โ„๏ธ",
        "Spacesuit Girl": "๐Ÿ‘ฉโ€๐Ÿš€",
        "Steampunk": "โš™๏ธ",
        "Succubus": "๐Ÿ˜ˆ",
        "Sunlight": "โ˜€๏ธ",
        "Weird art": "๐ŸŽญ",
        "White Hair": "๐Ÿ‘ฑโ€โ™€๏ธ",
        "Wings art": "๐Ÿ‘ผ",
        "Woman with Sword": "โš”๏ธ"
    }

    # Create columns for better button layout
    col1, col2, col3 = st.columns(3)
    
    # Distribute buttons across columns
    for idx, (prompt, emoji) in enumerate(prompt_emojis.items()):
        full_prompt = f"QT {prompt}"
        col = [col1, col2, col3][idx % 3]
        
        with col:
            if st.button(f"{emoji} {prompt}", key=f"btn_{idx}"):
                handle_prompt_click(full_prompt, idx)

    # Display generated images and prompts
    st.markdown("---")
    st.markdown("### Generated Artwork:")
    
    # Create columns for displaying images and prompts
    display_cols = st.columns(2)
    
    for key in st.session_state:
        if key.startswith('selected_prompt_'):
            idx = key.split('_')[-1]
            image_key = f'generated_image_{idx}'
            
            # Display prompt
            with display_cols[0]:
                st.write("Prompt:", st.session_state[key])
            
            # Display image if it exists
            if image_key in st.session_state:
                with display_cols[1]:
                    # Assuming the result is a path or URL to the image
                    st.image(st.session_state[image_key], caption="Generated Artwork", use_column_width=True)

if __name__ == "__main__":
    main()