HW5_modify / app.py
Pichayada's picture
Update app.py
316b182 verified
import gradio as gr
import torch
from diffusers import StableDiffusionPipeline
import subprocess
# ติดตั้ง flash-attn แม้จะไม่ได้ใช้โดยตรง (ข้าม build CUDA)
subprocess.run(
'pip install flash-attn --no-build-isolation',
env={'FLASH_ATTENTION_SKIP_CUDA_BUILD': "TRUE"},
shell=True
)
# ใช้ CPU
device = "cpu"
# โหลดโมเดลเบา: sd-turbo
pipe = StableDiffusionPipeline.from_pretrained(
"stabilityai/sd-turbo",
torch_dtype=torch.float32
)
pipe = pipe.to(device)
pipe.safety_checker = None # ปิด safety checker เพื่อความเร็ว
# เปิด attention_slicing (แม้บน CPU ก็ช่วยเรื่องหน่วยความจำ)
pipe.enable_attention_slicing()
# ฟังก์ชันสร้างภาพ
def generate_image(prompt):
result = pipe(prompt, num_inference_steps=10, guidance_scale=3.0)
image = result.images[0]
return image
# Gradio UI
io = gr.Interface(
fn=generate_image,
inputs=[gr.Textbox(label="Enter your prompt")],
outputs=[gr.Image(label="Generated Image")],
theme="Yntec/HaleyCH_Theme_Orange",
description="⚠ Running on CPU using sd-turbo. Optimized for speed with low inference steps."
)
# เปิด Gradio ด้วย queue ป้องกันค้างถ้ามีหลายคำสั่ง
io.queue().launch(debug=True)