|
|
import gradio as gr |
|
|
import os |
|
|
from huggingface_hub import InferenceClient |
|
|
from PIL import Image |
|
|
import tempfile |
|
|
|
|
|
|
|
|
client = InferenceClient( |
|
|
model="stabilityai/stable-diffusion-xl-base-1.0", |
|
|
token=os.environ["HF_TOKEN"] |
|
|
) |
|
|
|
|
|
def redesign_room(image, prompt): |
|
|
|
|
|
with tempfile.NamedTemporaryFile(suffix=".jpg", delete=False) as tmp: |
|
|
image.save(tmp.name) |
|
|
image_path = tmp.name |
|
|
|
|
|
|
|
|
output_image = client.image_to_image( |
|
|
image=image_path, |
|
|
prompt=prompt, |
|
|
guidance_scale=7, |
|
|
num_inference_steps=30 |
|
|
) |
|
|
|
|
|
return output_image |
|
|
|
|
|
|
|
|
gr.Interface( |
|
|
fn=redesign_room, |
|
|
inputs=[ |
|
|
gr.Image(type="pil", label="Upload Room Image"), |
|
|
gr.Textbox(label="Design Prompt", placeholder="Modern Scandinavian interior, warm lighting...") |
|
|
], |
|
|
outputs=gr.Image(label="Redesigned Room"), |
|
|
title="AI Room Redesign (No Local Model)", |
|
|
description="Upload a room image and redesign it using prompts" |
|
|
).launch() |
|
|
|
|
|
""""import gradio as gr |
|
|
from PIL import Image |
|
|
from diffusers import StableDiffusionImg2ImgPipeline |
|
|
import torch |
|
|
|
|
|
# CPU pipeline |
|
|
device = "cpu" |
|
|
pipe = StableDiffusionImg2ImgPipeline.from_pretrained( |
|
|
"runwayml/stable-diffusion-v1-5", |
|
|
torch_dtype=torch.float32 |
|
|
).to(device) |
|
|
pipe.safety_checker = lambda images, **kwargs: (images, [False]*len(images)) |
|
|
|
|
|
def redesign_room(image, style, colors, lighting, strength): |
|
|
# Resize for CPU |
|
|
image = image.convert("RGB").resize((512, 512)) |
|
|
|
|
|
prompt = f" |
|
|
Redesign this room with photorealistic style. |
|
|
Preserve all existing walls, windows, doors, and furniture layout. |
|
|
Interior style: {style} |
|
|
Color palette: {colors} |
|
|
Lighting: {lighting} |
|
|
No distortions, no extra windows, no unrealistic objects. |
|
|
High-quality render with realistic shadows. |
|
|
" |
|
|
|
|
|
negative_prompt = "change room layout, move furniture, add windows, distort walls, cartoon" |
|
|
|
|
|
result = pipe( |
|
|
prompt=prompt, |
|
|
image=image, |
|
|
strength=strength, |
|
|
guidance_scale=7.5, |
|
|
num_inference_steps=20, |
|
|
negative_prompt=negative_prompt |
|
|
).images[0] |
|
|
|
|
|
return result |
|
|
|
|
|
with gr.Blocks() as demo: |
|
|
gr.Markdown("## 🏠 AI Room Redesign (CPU-friendly)") |
|
|
|
|
|
image_input = gr.Image(label="Upload Room Image", type="pil") |
|
|
style = gr.Dropdown(["Modern","Luxury","Minimal","Scandinavian"], value="Modern", label="Style") |
|
|
colors = gr.Textbox(value="white, beige, wood", label="Color Palette") |
|
|
lighting = gr.Textbox(value="warm ambient lighting", label="Lighting") |
|
|
strength = gr.Slider(0.2, 0.35, 0.25, step=0.05, label="Strength (low = keep layout)") |
|
|
|
|
|
output = gr.Image(label="Redesigned Room") |
|
|
btn = gr.Button("Redesign Room") |
|
|
btn.click(redesign_room, [image_input, style, colors, lighting, strength], output) |
|
|
|
|
|
demo.launch()""" |
|
|
|
|
|
|