extender / app.py
injectx99's picture
Update app.py
beeac0a verified
Raw History Blame Contribute Delete
1.98 kB
import sys
from transformers.models.mt5 import tokenization_mt5
import transformers
# MT5Tokenizer ကို manually အတင်းထည့်ပေးခြင်း
transformers.MT5Tokenizer = tokenization_mt5.MT5Tokenizer
import gradio as gr
import torch
from diffusers import AutoPipelineForInpainting
from PIL import Image
# 1. Model ကို Load လုပ်ခြင်း (Mac GPU - MPS သုံးရန်)
device = "mps" if torch.backends.mps.is_available() else "cpu"
model_id = "diffusers/stable-diffusion-xl-1.0-inpainting-0.1"
pipe = AutoPipelineForInpainting.from_pretrained(
model_id,
torch_dtype=torch.float16,
variant="fp16"
).to(device)
def extend_photo(image_data, prompt):
# image_data မှာ image နဲ့ mask ပါဝင်ပါတယ်
image = image_data["background"].convert("RGB")
mask = image_data["layers"][0].convert("RGB")
# Photo Extend လုပ်ငန်းစဉ်
output = pipe(
prompt=prompt,
image=image,
mask_image=mask,
num_inference_steps=30
).images[0]
return output
# 2. Gradio Interface တည်ဆောက်ခြင်း
with gr.Blocks() as demo:
gr.Markdown("## SDXL Photo Extender (Mac Local)")
with gr.Row():
input_img = gr.ImageMask(label="ပုံထည့်ပြီး Extend လုပ်မည့်နေရာကို ခြစ်ပါ", type="pil")
output_img = gr.Image(label="ရလဒ်")
prompt_text = gr.Textbox(label="ဘာပုံ ဆက်ဆွဲရမလဲဆိုတာ ရေးပါ (ဥပမာ- beautiful forest background)")
run_btn = gr.Button("Extend Photo")
run_btn.click(fn=extend_photo, inputs=[input_img, prompt_text], outputs=output_img)
# 3. Launch လုပ်ခြင်း
# share=True ထားလျှင် Online ကနေပါ လှမ်းသုံးနိုင်တဲ့ link ရပါမယ်
demo.launch(share=True)