interior_design / app.py
Keshav0201's picture
Create app.py
bac5d79 verified
Raw
History Blame Contribute Delete
2.32 kB
import gradio as gr
# Define the function to call the Hugging Face Inference API
# We use a popular text-to-image model suitable for interiors
model_id = "stabilityai/stable-diffusion-2-1"
def generate_interior(prompt, negative_prompt):
# Construct the full prompt for interior design
full_prompt = f"professional interior design photography, {prompt}, 8k, highly detailed, realistic lighting"
full_negative = f"blurry, low quality, distorted, ugly, bad anatomy, {negative_prompt}"
try:
# Load the model directly from Hugging Face Inference API
# This runs on HF's servers, not your free CPU space
pipe = gr.load(f"models/{model_id}")
image = pipe(full_prompt, negative_prompt=full_negative)
return image
except Exception as e:
return f"Error: {str(e)}. The API might be busy. Try again."
# Create the Gradio Interface
with gr.Blocks(theme=gr.themes.Soft()) as demo:
gr.Markdown("# 🏠 Home Interior Design Generator")
gr.Markdown("Describe your dream room, and AI will visualize it.")
with gr.Row():
with gr.Column():
input_prompt = gr.Textbox(
label="Room Description",
placeholder="e.g., A modern living room with a large sofa, wooden floor, and large windows overlooking a garden",
lines=3
)
neg_prompt = gr.Textbox(
label="Negative Prompt (Optional)",
value="dark, cluttered",
lines=1
)
gen_btn = gr.Button("Generate Design", variant="primary")
with gr.Column():
output_image = gr.Image(label="Generated Interior")
# Connect the button to the function
gen_btn.click(
fn=generate_interior,
inputs=[input_prompt, neg_prompt],
outputs=output_image
)
# Add examples for users
gr.Examples(
examples=[
["A cozy scandinavian bedroom with white walls and a knitted blanket", "dark, messy"],
["A luxury kitchen with marble countertops and gold fixtures", "blurry, low res"],
["A minimalist home office with a desk and plants", "cluttered, noisy"]
],
inputs=input_prompt
)
if __name__ == "__main__":
demo.launch()