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 = """ """ # 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.
" "[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)