WatchOutForMike's picture
css
fc97219
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)