Spaces:
Running
Running
Update app.py
Browse files
app.py
CHANGED
|
@@ -478,10 +478,10 @@ def process_input(file_input, model_name, temperature, page_num, enable_streamin
|
|
| 478 |
yield error_msg, error_msg, page_info, image_to_process, gr.update()
|
| 479 |
|
| 480 |
|
| 481 |
-
def
|
| 482 |
-
"""Update page slider based on
|
| 483 |
if file_input is None:
|
| 484 |
-
return gr.update(maximum=20, value=1)
|
| 485 |
|
| 486 |
file_path = file_input if isinstance(file_input, str) else file_input.name
|
| 487 |
|
|
@@ -489,12 +489,20 @@ def update_slider(file_input):
|
|
| 489 |
try:
|
| 490 |
pdf = pdfium.PdfDocument(file_path)
|
| 491 |
total_pages = len(pdf)
|
|
|
|
|
|
|
|
|
|
| 492 |
pdf.close()
|
| 493 |
-
return gr.update(maximum=total_pages, value=1)
|
| 494 |
except:
|
| 495 |
-
return gr.update(maximum=20, value=1)
|
| 496 |
else:
|
| 497 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 498 |
|
| 499 |
|
| 500 |
# Helper function to get model info text
|
|
@@ -630,7 +638,7 @@ State-of-the-art OCR on OlmOCR-Bench, ~9× smaller and faster than competitors.
|
|
| 630 |
outputs=[output_text, raw_output, page_info, rendered_image, num_pages],
|
| 631 |
)
|
| 632 |
|
| 633 |
-
file_input.change(fn=
|
| 634 |
|
| 635 |
model_selector.change(
|
| 636 |
fn=get_model_info_text, inputs=[model_selector], outputs=[model_info]
|
|
|
|
| 478 |
yield error_msg, error_msg, page_info, image_to_process, gr.update()
|
| 479 |
|
| 480 |
|
| 481 |
+
def update_slider_and_preview(file_input):
|
| 482 |
+
"""Update page slider and preview image based on uploaded file."""
|
| 483 |
if file_input is None:
|
| 484 |
+
return gr.update(maximum=20, value=1), None
|
| 485 |
|
| 486 |
file_path = file_input if isinstance(file_input, str) else file_input.name
|
| 487 |
|
|
|
|
| 489 |
try:
|
| 490 |
pdf = pdfium.PdfDocument(file_path)
|
| 491 |
total_pages = len(pdf)
|
| 492 |
+
# Render first page for preview
|
| 493 |
+
page = pdf[0]
|
| 494 |
+
preview_image = page.render(scale=2).to_pil()
|
| 495 |
pdf.close()
|
| 496 |
+
return gr.update(maximum=total_pages, value=1), preview_image
|
| 497 |
except:
|
| 498 |
+
return gr.update(maximum=20, value=1), None
|
| 499 |
else:
|
| 500 |
+
# It's an image file
|
| 501 |
+
try:
|
| 502 |
+
preview_image = Image.open(file_path)
|
| 503 |
+
return gr.update(maximum=1, value=1), preview_image
|
| 504 |
+
except:
|
| 505 |
+
return gr.update(maximum=1, value=1), None
|
| 506 |
|
| 507 |
|
| 508 |
# Helper function to get model info text
|
|
|
|
| 638 |
outputs=[output_text, raw_output, page_info, rendered_image, num_pages],
|
| 639 |
)
|
| 640 |
|
| 641 |
+
file_input.change(fn=update_slider_and_preview, inputs=[file_input], outputs=[num_pages, rendered_image])
|
| 642 |
|
| 643 |
model_selector.change(
|
| 644 |
fn=get_model_info_text, inputs=[model_selector], outputs=[model_info]
|