Spaces:
Sleeping
Sleeping
| import gradio as gr | |
| from diffusers import StableDiffusionPipeline, StableDiffusionImg2ImgPipeline | |
| import torch | |
| from PIL import Image | |
| model_id = "stablediffusionapi/architecturerealmix" | |
| # 載入 text-to-image 和 image-to-image 兩個管線 | |
| pipe_txt2img = StableDiffusionPipeline.from_pretrained(model_id) | |
| pipe_img2img = StableDiffusionImg2ImgPipeline.from_pretrained(model_id) | |
| # 移動到 CPU(根據執行環境可改成 "cuda") | |
| pipe_txt2img = pipe_txt2img.to("cpu") | |
| pipe_img2img = pipe_img2img.to("cpu") | |
| def generate_architecture(prompt, input_image, strength, guidance_scale): | |
| if input_image is None: | |
| # 無上傳圖片,純文字生成 | |
| image = pipe_txt2img(prompt=prompt, guidance_scale=guidance_scale).images[0] | |
| else: | |
| # 有圖片,上傳圖片到圖片生成 | |
| init_image = input_image.resize((512, 512)).convert("RGB") | |
| image = pipe_img2img(prompt=prompt, init_image=init_image, strength=strength, guidance_scale=guidance_scale).images[0] | |
| return image | |
| iface = gr.Interface( | |
| fn=generate_architecture, | |
| inputs=[ | |
| gr.Textbox(lines=2, placeholder="輸入建築物描述文字提示", label="文字提示"), | |
| gr.Image(type="pil", label="上傳建築設計圖(選擇性)"), | |
| gr.Slider(0.1, 1.0, value=0.7, step=0.05, label="圖片強度 (strength)"), | |
| gr.Slider(1.0, 15.0, value=7.5, step=0.1, label="引導尺度 (guidance scale)") | |
| ], | |
| outputs=gr.Image(type="pil", label="生成的建築模擬圖"), | |
| title="ArchitectureRealMix 建築模擬圖生成器", | |
| description="支援以文字描述生成建築模擬圖,亦可上傳圖片結合文字做圖片到圖片生成。" | |
| ) | |
| iface.launch() | |