Spaces:
Sleeping
Sleeping
Himanshu-AT
commited on
Commit
·
06e4d33
1
Parent(s):
3555612
save details
Browse files
app.py
CHANGED
@@ -8,6 +8,7 @@ import json
|
|
8 |
from PIL import Image
|
9 |
import torch
|
10 |
from torchvision import transforms
|
|
|
11 |
|
12 |
from diffusers import FluxFillPipeline, AutoencoderKL
|
13 |
from PIL import Image
|
@@ -76,10 +77,9 @@ def calculate_optimal_dimensions(image: Image.Image):
|
|
76 |
return width, height
|
77 |
|
78 |
@spaces.GPU(durations=300)
|
79 |
-
def infer(edit_images, prompt, lora_model, seed=42, randomize_seed=False, guidance_scale=3.5, num_inference_steps=28, progress=gr.Progress(track_tqdm=True)):
|
80 |
# pipe.enable_xformers_memory_efficient_attention()
|
81 |
|
82 |
-
|
83 |
if lora_model != "None":
|
84 |
pipe.load_lora_weights(lora_models[lora_model])
|
85 |
pipe.enable_lora()
|
@@ -100,6 +100,7 @@ def infer(edit_images, prompt, lora_model, seed=42, randomize_seed=False, guidan
|
|
100 |
height=height,
|
101 |
width=width,
|
102 |
guidance_scale=guidance_scale,
|
|
|
103 |
num_inference_steps=num_inference_steps,
|
104 |
generator=torch.Generator(device='cuda').manual_seed(seed),
|
105 |
# lora_scale=0.75 // not supported in this version
|
@@ -117,6 +118,35 @@ def download_image(image):
|
|
117 |
image.save("output.png", "PNG")
|
118 |
return "output.png"
|
119 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
120 |
def set_image_as_inpaint(image):
|
121 |
return image
|
122 |
|
@@ -203,7 +233,15 @@ with gr.Blocks(css=css) as demo:
|
|
203 |
value=28,
|
204 |
)
|
205 |
|
206 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
207 |
|
208 |
# width = gr.Slider(
|
209 |
# label="width",
|
@@ -224,12 +262,13 @@ with gr.Blocks(css=css) as demo:
|
|
224 |
gr.on(
|
225 |
triggers=[run_button.click, prompt.submit],
|
226 |
fn = infer,
|
227 |
-
inputs = [edit_image, prompt, lora_model, seed, randomize_seed, guidance_scale, num_inference_steps],
|
228 |
outputs = [result, seed]
|
229 |
)
|
230 |
|
231 |
download_button = gr.Button("Download Image as PNG")
|
232 |
set_inpaint_button = gr.Button("Set Image as Inpaint")
|
|
|
233 |
|
234 |
download_button.click(
|
235 |
fn=download_image,
|
@@ -243,6 +282,12 @@ with gr.Blocks(css=css) as demo:
|
|
243 |
outputs=[edit_image]
|
244 |
)
|
245 |
|
|
|
|
|
|
|
|
|
|
|
|
|
246 |
# edit_image.select(
|
247 |
# fn=generate_mask,
|
248 |
# inputs=[edit_image, gr.Number(), gr.Number()],
|
|
|
8 |
from PIL import Image
|
9 |
import torch
|
10 |
from torchvision import transforms
|
11 |
+
import zipfile
|
12 |
|
13 |
from diffusers import FluxFillPipeline, AutoencoderKL
|
14 |
from PIL import Image
|
|
|
77 |
return width, height
|
78 |
|
79 |
@spaces.GPU(durations=300)
|
80 |
+
def infer(edit_images, prompt, lora_model, strength, seed=42, randomize_seed=False, guidance_scale=3.5, num_inference_steps=28, progress=gr.Progress(track_tqdm=True)):
|
81 |
# pipe.enable_xformers_memory_efficient_attention()
|
82 |
|
|
|
83 |
if lora_model != "None":
|
84 |
pipe.load_lora_weights(lora_models[lora_model])
|
85 |
pipe.enable_lora()
|
|
|
100 |
height=height,
|
101 |
width=width,
|
102 |
guidance_scale=guidance_scale,
|
103 |
+
strength=strength,
|
104 |
num_inference_steps=num_inference_steps,
|
105 |
generator=torch.Generator(device='cuda').manual_seed(seed),
|
106 |
# lora_scale=0.75 // not supported in this version
|
|
|
118 |
image.save("output.png", "PNG")
|
119 |
return "output.png"
|
120 |
|
121 |
+
def save_details(image, mask, prompt, lora_model, strength, seed, guidance_scale, num_inference_steps):
|
122 |
+
if isinstance(image, np.ndarray):
|
123 |
+
image = Image.fromarray(image)
|
124 |
+
if isinstance(mask, np.ndarray):
|
125 |
+
mask = Image.fromarray(mask)
|
126 |
+
|
127 |
+
image.save("saved_image.png", "PNG")
|
128 |
+
mask.save("saved_mask.png", "PNG")
|
129 |
+
|
130 |
+
details = {
|
131 |
+
"prompt": prompt,
|
132 |
+
"lora_model": lora_model,
|
133 |
+
"strength": strength,
|
134 |
+
"seed": seed,
|
135 |
+
"guidance_scale": guidance_scale,
|
136 |
+
"num_inference_steps": num_inference_steps
|
137 |
+
}
|
138 |
+
|
139 |
+
with open("details.json", "w") as f:
|
140 |
+
json.dump(details, f)
|
141 |
+
|
142 |
+
# Create a ZIP file
|
143 |
+
with zipfile.ZipFile("output.zip", "w") as zipf:
|
144 |
+
zipf.write("saved_image.png")
|
145 |
+
zipf.write("saved_mask.png")
|
146 |
+
zipf.write("details.json")
|
147 |
+
|
148 |
+
return "output.zip"
|
149 |
+
|
150 |
def set_image_as_inpaint(image):
|
151 |
return image
|
152 |
|
|
|
233 |
value=28,
|
234 |
)
|
235 |
|
236 |
+
with gr.Row():
|
237 |
+
|
238 |
+
strength = gr.Slider(
|
239 |
+
label="Strength",
|
240 |
+
minimum=0,
|
241 |
+
maximum=1,
|
242 |
+
step=0.01,
|
243 |
+
value=0.85,
|
244 |
+
)
|
245 |
|
246 |
# width = gr.Slider(
|
247 |
# label="width",
|
|
|
262 |
gr.on(
|
263 |
triggers=[run_button.click, prompt.submit],
|
264 |
fn = infer,
|
265 |
+
inputs = [edit_image, prompt, lora_model, strength, seed, randomize_seed, guidance_scale, num_inference_steps],
|
266 |
outputs = [result, seed]
|
267 |
)
|
268 |
|
269 |
download_button = gr.Button("Download Image as PNG")
|
270 |
set_inpaint_button = gr.Button("Set Image as Inpaint")
|
271 |
+
save_button = gr.Button("Save Details")
|
272 |
|
273 |
download_button.click(
|
274 |
fn=download_image,
|
|
|
282 |
outputs=[edit_image]
|
283 |
)
|
284 |
|
285 |
+
save_button.click(
|
286 |
+
fn=save_details,
|
287 |
+
inputs=[result, edit_image, prompt, lora_model, strength, seed, guidance_scale, num_inference_steps],
|
288 |
+
outputs=gr.Text(label="Save Status")
|
289 |
+
)
|
290 |
+
|
291 |
# edit_image.select(
|
292 |
# fn=generate_mask,
|
293 |
# inputs=[edit_image, gr.Number(), gr.Number()],
|