Text-to-Image / app.py
LuigiLui's picture
Update app.py
76ea01b verified
raw
history blame
2.54 kB
import gradio as gr
import random
# Load the model
model = gr.load("models/Purz/face-projection")
def generate_image(text, seed):
if seed is not None:
random.seed(seed)
# Define slight variations of the original prompt for different poses/positions
variations = [
f"{text}, front view",
f"{text}, side view",
f"{text}, dynamic pose",
f"{text}, close-up view"
]
# Generate an image for each variation
images = [model(variation) for variation in variations]
return images
# Define examples with pre-generated image previews
examples = [
["Humanoid Cat Warrior, Full View", None, "path/to/humanoid_cat_preview.jpg"],
["Warhammer Sisterhood", None, "path/to/warhammer_sisterhood_preview.jpg"],
["Future Robots war", None, "path/to/future_robots_war_preview.jpg"],
["Fantasy dragon", None, "path/to/fantasy_dragon_preview.jpg"]
]
# Custom CSS for styling
css = """
/* General button styles */
button {
border-radius: 25px; /* Capsule shape */
padding: 10px 20px;
font-size: 16px;
font-weight: bold;
color: white;
background: linear-gradient(135deg, #6D5BBA, #8A2387); /* Gradient color */
border: none;
cursor: pointer;
transition: background 0.3s ease;
}
button:hover {
background: linear-gradient(135deg, #8A2387, #6D5BBA); /* Gradient reverse on hover */
}
/* Slider handle style */
input[type=range] {
accent-color: #8A2387; /* Gradient color accent */
}
/* Textbox styling */
.gr-textbox {
border-radius: 8px;
border: 1px solid #DDD;
padding: 10px;
}
/* Output image styling */
.output_image {
border: 2px solid #6D5BBA;
border-radius: 10px;
padding: 10px;
background-color: #f9f9f9;
}
"""
# Define a function to create the examples with preview images
def create_example_row(example):
return [gr.Example(value=example[0], examples=None, label=example[0], image=example[2])]
# Gradio interface
interface = gr.Interface(
fn=generate_image,
inputs=[
gr.Textbox(label="Type your imagination:", placeholder="Type or select an example..."),
gr.Slider(minimum=0, maximum=10000, step=1, label="Seed (optional)")
],
outputs=[gr.Image(label=f"Generated Image {i+1}") for i in range(4)],
examples=create_example_row(examples), # Use pre-generated images for previews
css=css,
description="Note: The model is running on CPU; processing might take a bit longer. Thank you for your patience!"
)
# Launch the interface
interface.launch()