tuotuotu / app.py
baobao7758520's picture
Upload 4 files
3c5c3c1 verified
import gradio as gr
from PIL import Image
from utils import outpaint_image
DEFAULT_MODEL_ID = "stabilityai/stable-diffusion-2-inpainting"
def generate(image, prompt, directions):
try:
yield gr.Textbox.update(value="正在生成扩图中,请稍候...", visible=True), None
result = outpaint_image(image, prompt, directions, DEFAULT_MODEL_ID)
yield gr.Textbox.update(visible=False), result
except Exception as e:
yield gr.Textbox.update(value=f"❌ 错误:{str(e)}", visible=True), None
with gr.Blocks(title="描述词扩图 App(手机专用)") as demo:
gr.Markdown("""# 🎨 描述词驱动图像扩图(适配手机)
上传图像 + 描述词,点击按钮即可生成,使用轻量模型 `stabilityai/stable-diffusion-2-inpainting`
""")
with gr.Row():
image_input = gr.Image(label="上传原图", type="pil")
prompt_input = gr.Textbox(label="请输入描述词 (prompt)")
directions_input = gr.CheckboxGroup(
choices=["上", "下", "左", "右"],
label="选择扩展方向(可多选)",
value=["上", "下", "左", "右"]
)
status_output = gr.Textbox(label="状态", visible=False)
image_output = gr.Image(label="扩图结果")
run_btn = gr.Button("开始生成")
run_btn.click(
fn=generate,
inputs=[image_input, prompt_input, directions_input],
outputs=[status_output, image_output]
)
demo.launch()