Spaces:
Running
on
Zero
Running
on
Zero
Update app.py
Browse files
app.py
CHANGED
@@ -12,6 +12,7 @@ from gradio_imageslider import ImageSlider
|
|
12 |
from PIL import Image
|
13 |
from huggingface_hub import snapshot_download
|
14 |
import requests
|
|
|
15 |
|
16 |
# For ESRGAN (requires pip install basicsr gfpgan)
|
17 |
try:
|
@@ -233,7 +234,6 @@ def tiled_flux_img2img(pipe, prompt, image, strength, steps, guidance, generator
|
|
233 |
def enhance_image(
|
234 |
image_input,
|
235 |
image_url,
|
236 |
-
seed,
|
237 |
randomize_seed,
|
238 |
num_inference_steps,
|
239 |
upscale_factor,
|
@@ -251,8 +251,16 @@ def enhance_image(
|
|
251 |
else:
|
252 |
raise gr.Error("Please provide an image (upload or URL)")
|
253 |
|
|
|
|
|
|
|
|
|
|
|
|
|
254 |
if randomize_seed:
|
255 |
seed = random.randint(0, MAX_SEED)
|
|
|
|
|
256 |
|
257 |
true_input_image = input_image
|
258 |
|
@@ -300,15 +308,15 @@ def enhance_image(
|
|
300 |
# Resize input image to match output size for slider alignment
|
301 |
resized_input = true_input_image.resize(image.size, resample=Image.LANCZOS)
|
302 |
|
303 |
-
return [resized_input, image]
|
304 |
|
305 |
|
306 |
# Create Gradio interface
|
307 |
-
with gr.Blocks(css=css, title="π¨
|
308 |
gr.HTML("""
|
309 |
<div class="main-header">
|
310 |
-
<h1>π¨
|
311 |
-
<p>Upload an image or provide a URL to upscale it using Florence-2 captioning and FLUX
|
312 |
<p>Currently running on <strong>{}</strong></p>
|
313 |
</div>
|
314 |
""".format(power_device))
|
@@ -358,7 +366,7 @@ with gr.Blocks(css=css, title="π¨ AI Image Upscaler - Florence-2 + FLUX") as d
|
|
358 |
)
|
359 |
|
360 |
num_inference_steps = gr.Slider(
|
361 |
-
label="
|
362 |
minimum=8,
|
363 |
maximum=50,
|
364 |
step=1,
|
@@ -367,7 +375,7 @@ with gr.Blocks(css=css, title="π¨ AI Image Upscaler - Florence-2 + FLUX") as d
|
|
367 |
)
|
368 |
|
369 |
denoising_strength = gr.Slider(
|
370 |
-
label="Denoising
|
371 |
minimum=0.0,
|
372 |
maximum=1.0,
|
373 |
step=0.05,
|
@@ -380,14 +388,6 @@ with gr.Blocks(css=css, title="π¨ AI Image Upscaler - Florence-2 + FLUX") as d
|
|
380 |
label="Randomize seed",
|
381 |
value=True
|
382 |
)
|
383 |
-
seed = gr.Slider(
|
384 |
-
label="Seed",
|
385 |
-
minimum=0,
|
386 |
-
maximum=MAX_SEED,
|
387 |
-
step=1,
|
388 |
-
value=42,
|
389 |
-
interactive=True
|
390 |
-
)
|
391 |
|
392 |
enhance_btn = gr.Button(
|
393 |
"π Upscale Image",
|
@@ -406,13 +406,20 @@ with gr.Blocks(css=css, title="π¨ AI Image Upscaler - Florence-2 + FLUX") as d
|
|
406 |
label=None # Remove default label
|
407 |
)
|
408 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
409 |
# Event handler
|
410 |
enhance_btn.click(
|
411 |
fn=enhance_image,
|
412 |
inputs=[
|
413 |
input_image,
|
414 |
image_url,
|
415 |
-
seed,
|
416 |
randomize_seed,
|
417 |
num_inference_steps,
|
418 |
upscale_factor,
|
@@ -420,7 +427,7 @@ with gr.Blocks(css=css, title="π¨ AI Image Upscaler - Florence-2 + FLUX") as d
|
|
420 |
use_generated_caption,
|
421 |
custom_prompt,
|
422 |
],
|
423 |
-
outputs=[result_slider]
|
424 |
)
|
425 |
|
426 |
gr.HTML("""
|
|
|
12 |
from PIL import Image
|
13 |
from huggingface_hub import snapshot_download
|
14 |
import requests
|
15 |
+
import io
|
16 |
|
17 |
# For ESRGAN (requires pip install basicsr gfpgan)
|
18 |
try:
|
|
|
234 |
def enhance_image(
|
235 |
image_input,
|
236 |
image_url,
|
|
|
237 |
randomize_seed,
|
238 |
num_inference_steps,
|
239 |
upscale_factor,
|
|
|
251 |
else:
|
252 |
raise gr.Error("Please provide an image (upload or URL)")
|
253 |
|
254 |
+
# Convert input image to PNG in backend
|
255 |
+
buffer = io.BytesIO()
|
256 |
+
input_image.save(buffer, format="PNG")
|
257 |
+
buffer.seek(0)
|
258 |
+
input_image = Image.open(buffer)
|
259 |
+
|
260 |
if randomize_seed:
|
261 |
seed = random.randint(0, MAX_SEED)
|
262 |
+
else:
|
263 |
+
seed = 42
|
264 |
|
265 |
true_input_image = input_image
|
266 |
|
|
|
308 |
# Resize input image to match output size for slider alignment
|
309 |
resized_input = true_input_image.resize(image.size, resample=Image.LANCZOS)
|
310 |
|
311 |
+
return [resized_input, image], image
|
312 |
|
313 |
|
314 |
# Create Gradio interface
|
315 |
+
with gr.Blocks(css=css, title="π¨ Flux dev Creative Upscaler - Florence-2 + FLUX") as demo:
|
316 |
gr.HTML("""
|
317 |
<div class="main-header">
|
318 |
+
<h1>π¨ Flux dev Creative Upscaler</h1>
|
319 |
+
<p>Upload an image or provide a URL to upscale it using Florence-2 captioning and FLUX dev with Ultimate SD Upscaler</p>
|
320 |
<p>Currently running on <strong>{}</strong></p>
|
321 |
</div>
|
322 |
""".format(power_device))
|
|
|
366 |
)
|
367 |
|
368 |
num_inference_steps = gr.Slider(
|
369 |
+
label="Steps (25 Recommended)",
|
370 |
minimum=8,
|
371 |
maximum=50,
|
372 |
step=1,
|
|
|
375 |
)
|
376 |
|
377 |
denoising_strength = gr.Slider(
|
378 |
+
label="Creativity (Denoising)",
|
379 |
minimum=0.0,
|
380 |
maximum=1.0,
|
381 |
step=0.05,
|
|
|
388 |
label="Randomize seed",
|
389 |
value=True
|
390 |
)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
391 |
|
392 |
enhance_btn = gr.Button(
|
393 |
"π Upscale Image",
|
|
|
406 |
label=None # Remove default label
|
407 |
)
|
408 |
|
409 |
+
upscaled_output = gr.Image(
|
410 |
+
label="Upscaled Image (Download as PNG)",
|
411 |
+
type="pil",
|
412 |
+
interactive=False,
|
413 |
+
show_download_button=True,
|
414 |
+
height=600,
|
415 |
+
)
|
416 |
+
|
417 |
# Event handler
|
418 |
enhance_btn.click(
|
419 |
fn=enhance_image,
|
420 |
inputs=[
|
421 |
input_image,
|
422 |
image_url,
|
|
|
423 |
randomize_seed,
|
424 |
num_inference_steps,
|
425 |
upscale_factor,
|
|
|
427 |
use_generated_caption,
|
428 |
custom_prompt,
|
429 |
],
|
430 |
+
outputs=[result_slider, upscaled_output]
|
431 |
)
|
432 |
|
433 |
gr.HTML("""
|