guo3 / app.py
guohp123456's picture
Update app.py
edd07b9 verified
import gradio as gr
from PIL import Image
import torch
from diffusers import DiffusionPipeline
from utils import generate_canny
# 加载模型
pipe = DiffusionPipeline.from_pretrained(
"stabilityai/stable-diffusion-3.5-large-controlnet-canny",
torch_dtype=torch.float16,
variant="fp16"
).to("cuda")
# 推理函数
def infer(image: Image.Image, prompt: str, neg_prompt: str = "bad face, blurry, text, watermark") -> Image.Image:
control = generate_canny(image)
result = pipe(
prompt=prompt,
negative_prompt=neg_prompt,
controlnet_conditioning_image=control,
num_inference_steps=30,
guidance_scale=9.0,
).images[0]
return result
# Gradio 界面
demo = gr.Interface(
fn=infer,
inputs=[
gr.Image(type="pil", label="上传原图(自动转边缘图)"),
gr.Textbox(lines=2, label="Prompt(描述服装/风格)", value="a woman wearing a spring coat, photorealistic, soft lighting, 8k"),
gr.Textbox(lines=1, label="Negative Prompt", value="bad face, cropped, lowres, extra limbs")
],
outputs=gr.Image(type="pil", label="生成结果"),
title="👗 ControlNet-Canny 高质量穿搭图生成器(SD3.5)",
description="上传图像 + 输入Prompt,即可生成结构一致的高清穿搭图(Stable Diffusion 3.5 + ControlNet)",
examples=[["example.jpg", "a fashion photo of a woman wearing a trench coat, full body, 8k"]],
)
demo.launch()