freevpn commited on
Commit
206af61
ยท
verified ยท
1 Parent(s): 723f9b5

Create app.py

Browse files
Files changed (1) hide show
  1. app.py +52 -0
app.py ADDED
@@ -0,0 +1,52 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import gradio as gr
2
+ import torch
3
+ from diffusers import StableDiffusionInpaintPipeline, DPMSolverMultistepScheduler
4
+ from PIL import Image
5
+
6
+ # แแ‹ Model Card แ€›แ€ฝแ€ฑแ€ธแ€แ€ปแ€šแ€บแ€™แ€พแ€ฏ
7
+ model_id = "OzzyGT/Realistic_Vision_V5.1_Inpainting"
8
+
9
+ # แ‚แ‹ Pipeline แ€€แ€ญแ€ฏ Load แ€œแ€ฏแ€•แ€บแ€•แ€ผแ€ฎแ€ธ Optimization แ€™แ€ปแ€ฌแ€ธแ€‘แ€Šแ€ทแ€บแ€žแ€ฝแ€„แ€บแ€ธแ€แ€ผแ€„แ€บแ€ธ
10
+ pipe = StableDiffusionInpaintPipeline.from_pretrained(
11
+ model_id,
12
+ torch_dtype=torch.float32 # CPU แ€กแ€แ€ฝแ€€แ€บ แ€•แ€ญแ€ฏแ€„แ€ผแ€ญแ€™แ€บแ€žแ€Šแ€บ
13
+ )
14
+
15
+ # Speed แ€กแ€แ€ฝแ€€แ€บ Scheduler แ€•แ€ผแ€ฑแ€ฌแ€„แ€บแ€ธแ€แ€ผแ€„แ€บแ€ธ
16
+ pipe.scheduler = DPMSolverMultistepScheduler.from_config(pipe.scheduler.config)
17
+
18
+ # Safety Checker (NSFW Filter) แ€€แ€ญแ€ฏ แ€œแ€ฏแ€ถแ€ธแ€ แ€•แ€ญแ€แ€บแ€แ€ผแ€„แ€บแ€ธ
19
+ pipe.safety_checker = lambda images, **kwargs: (images, [False] * len(images))
20
+
21
+ # CPU Optimization แ€™แ€ปแ€ฌแ€ธ
22
+ pipe.enable_attention_slicing()
23
+ # pipe.enable_sequential_cpu_offload() # RAM แ€žแ€ญแ€•แ€บแ€™แ€›แ€พแ€ญแ€œแ€ปแ€พแ€„แ€บ แ€–แ€ฝแ€„แ€ทแ€บแ€›แ€”แ€บ
24
+
25
+ def predict(image_dict, prompt):
26
+ # แ€•แ€ฏแ€ถแ€กแ€›แ€ฝแ€šแ€บแ€กแ€…แ€ฌแ€ธแ€€แ€ญแ€ฏ 512 แ€กแ€ฑแ€ฌแ€€แ€บแ€‘แ€ฌแ€ธแ€แ€ผแ€„แ€บแ€ธแ€€ แ€กแ€™แ€ผแ€”แ€บแ€†แ€ฏแ€ถแ€ธแ€–แ€ผแ€…แ€บแ€žแ€Šแ€บ
27
+ init_image = image_dict["background"].convert("RGB").resize((512, 512))
28
+ mask_image = image_dict["layers"][0].convert("RGB").resize((512, 512))
29
+
30
+ # แƒแ‹ แ€กแ€™แ€ผแ€”แ€บแ€†แ€ฏแ€ถแ€ธ แ€กแ€”แ€ฑแ€กแ€‘แ€ฌแ€ธแ€–แ€ผแ€„แ€ทแ€บ แ€•แ€ฏแ€ถแ€‘แ€ฏแ€แ€บแ€แ€ผแ€„แ€บแ€ธ (Steps แ€€แ€ญแ€ฏ แ‚แ€ แ€‘แ€ฌแ€ธแ€•แ€ซ)
31
+ output = pipe(
32
+ prompt=prompt,
33
+ image=init_image,
34
+ mask_image=mask_image,
35
+ num_inference_steps=20, # แ€กแ€™แ€ผแ€”แ€บแ€”แ€พแ€ฏแ€”แ€บแ€ธแ€กแ€แ€ฝแ€€แ€บ แ€กแ€“แ€ญแ€€ แ€กแ€แ€ปแ€€แ€บ
36
+ guidance_scale=7.5
37
+ ).images[0]
38
+
39
+ return output
40
+
41
+ # แ„แ‹ Gradio UI แ€แ€Šแ€บแ€†แ€ฑแ€ฌแ€€แ€บแ€แ€ผแ€„แ€บแ€ธ
42
+ with gr.Blocks() as demo:
43
+ gr.Markdown("### โšก Fast AI Inpainting (CPU Optimized)")
44
+ with gr.Row():
45
+ img = gr.Image(label="Upload Image & Paint Mask", tool="sketch", type="pil")
46
+ prompt = gr.Textbox(label="Prompt (e.g., 'white shirt')")
47
+ btn = gr.Button("Generate Fast")
48
+ result = gr.Image(label="Result")
49
+
50
+ btn.click(predict, inputs=[img, prompt], outputs=result)
51
+
52
+ demo.launch()