Spaces:
Runtime error
Runtime error
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("""
|