File size: 4,217 Bytes
6e6e228
34db193
6e6e228
 
34db193
fc97219
6e6e228
fc97219
 
34db193
d104cb7
 
fc97219
6e6e228
 
 
 
 
d104cb7
6e6e228
fc97219
34db193
 
 
d104cb7
6e6e228
d104cb7
 
 
34db193
d104cb7
34db193
 
6e6e228
d104cb7
 
fc97219
 
d104cb7
 
 
 
 
 
 
34db193
 
 
d104cb7
 
 
 
 
 
 
 
 
 
6e6e228
d104cb7
 
 
6e6e228
 
d104cb7
6e6e228
34db193
 
6e6e228
 
d104cb7
 
34db193
 
6e6e228
d104cb7
6e6e228
 
d104cb7
6e6e228
34db193
d104cb7
6e6e228
 
d104cb7
34db193
 
6e6e228
d104cb7
 
34db193
 
6e6e228
d104cb7
6e6e228
d104cb7
6e6e228
d104cb7
6e6e228
d104cb7
34db193
 
6e6e228
 
 
 
d104cb7
34db193
 
6e6e228
 
d104cb7
6e6e228
d104cb7
6e6e228
 
d104cb7
 
 
 
 
 
 
 
 
 
 
fc97219
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
6e6e228
34db193
fc97219
 
 
 
6e6e228
fc97219
d4bd4eb
d104cb7
6e6e228
d104cb7
 
 
fc97219
 
6e6e228
 
fc97219
 
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
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
import gradio as gr

# Load the model
model = gr.load("models/strangerzonehf/Flux-Midjourney-Mix2-LoRA")

# Updated CSS with new additions
custom_css = """
@import url('https://fonts.googleapis.com/css2?family=Cinzel:wght@400;700&family=Uncial+Antiqua&display=swap');

body {
    background-color: #1b1b1b; /* Dungeon-like backdrop */
    color: #f5f5f5;
    font-family: 'Cinzel', serif; /* Fantasy-themed font */
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    height: 100vh;
    background-image: url('https://www.transparenttextures.com/patterns/dark-matter.png'); /* Subtle dungeon texture */
}

.gradio-container {
    max-width: 950px;
    margin: auto;
    padding: 30px;
    background: linear-gradient(145deg, #2e2b2a, #3a3433); /* Mystic gradient for depth */
    border: 4px solid #8b4513;
    border-radius: 15px;
    box-shadow: 0 0 20px rgba(0, 0, 0, 0.8);
}

h1, h2 {
    color: #ffd700;
    text-align: center;
    font-family: 'Uncial Antiqua', serif; /* Ancient fantasy font */
    text-shadow: 3px 3px #7c5200; /* Gold shine effect */
}

.description {
    margin-top: 15px;
    color: #d4af37; /* Lighter gold for elegance */
    font-size: 18px;
    line-height: 1.6;
    text-align: center;
}

a {
    color: #ffd700;
    text-decoration: none;
    font-weight: bold;
}

a:hover {
    color: #ffcc33; /* Brighter gold for interactivity */
}

textarea, input[type="text"] {
    background-color: #292828;
    color: #f5e6ca;
    border: 2px solid #8b4513;
    border-radius: 5px;
    padding: 10px;
    font-family: 'Palatino Linotype', serif;
    font-size: 16px;
}

textarea:focus, input[type="text"]:focus {
    outline: none;
    border-color: #ffd700;
    box-shadow: 0 0 8px #ffd700;
}

button {
    background: #8b4513;
    color: #f0e6d2;
    font-size: 18px;
    font-family: 'Palatino Linotype', serif;
    border: none;
    border-radius: 8px;
    padding: 12px 30px;
    cursor: pointer;
    transition: 0.3s ease-in-out;
    box-shadow: 0 0 15px rgba(0, 0, 0, 0.6);
}

button:hover {
    background: #a0522d;
    box-shadow: 0 0 15px #ffd700;
}

.gradio-output {
    background: #2f2f2f;
    color: #ffd700;
    border: 2px solid #8b4513;
    border-radius: 8px;
    padding: 20px;
    text-align: center;
    box-shadow: 0 0 10px rgba(0, 0, 0, 0.5);
}

.gradio-output img {
    max-width: 100%;
    border: 2px solid #a0522d;
    border-radius: 8px;
    box-shadow: 0 0 10px rgba(0, 0, 0, 0.8);
}

.footer {
    text-align: center;
    margin-top: 30px;
    color: #ffd700;
    font-size: 14px;
    text-shadow: 1px 1px #7c5200;
}

.footer a {
    color: #ffd700;
    text-decoration: none;
    margin: 0 10px;
}

.footer a:hover {
    color: #ffcc33;
    text-shadow: 2px 2px #ff9900;
}

@keyframes fadeIn {
    0% { opacity: 0; }
    100% { opacity: 1; }
}

.loading-animation {
    text-align: center;
    color: #ffd700;
    font-size: 18px;
    margin-top: 10px;
    font-family: 'Uncial Antiqua', serif;
    animation: fadeIn 1.5s ease-in-out infinite alternate;
}
"""

# JavaScript for optional background music
background_music = """
<script>
var audio = new Audio('https://www.fesliyanstudios.com/play-mp3/387');
audio.loop = true;
audio.volume = 0.5;
audio.play();
</script>
"""

# Define Gradio interface with a loading animation
def model_with_loading(prompt):
    return model(prompt)

iface = gr.Interface(
    fn=model_with_loading,
    inputs=gr.Textbox(lines=3, label="🎲 Enter Your Quest:", placeholder="Describe your scene, hero, or epic landscape..."),
    outputs=gr.Image(type="pil", label="🖼️ Your Legendary Vision"),
    title="🛡️ Dungeons & Dragons Image Generator ⚔️",
    description="**Unleash Your Imagination!** Create heroes, maps, quests, and epic scenes to bring your campaigns to life. "
                "Tailored for adventurers seeking inspiration or Dungeon Masters constructing their next grand story. <br>"
                "[Visit Our Website](https://chatdnd.net) | [Support Us](https://buymeacoffee.com/watchoutformike)",
    css=custom_css,
    live=False
)

# Launch the interface with background music
iface.launch(inline=False)