Spaces:
Runtime error
Runtime error
import gradio as gr | |
from shared import path_manager | |
from modules.imagebrowser import ImageBrowser | |
browser = ImageBrowser() | |
def create_image_gallery(): | |
with gr.Blocks(theme=gr.themes.Soft()) as app_image_browser: | |
with gr.Row(): | |
# Left side for gallery | |
with gr.Column(scale=2): | |
gallery = gr.Gallery( | |
label="Images", | |
show_label=False, | |
columns=[4], | |
height="600px", | |
object_fit="contain", | |
value=browser.load_images(1)[0], | |
) | |
ib_page = gr.Slider( | |
label="Page", | |
value=1, | |
step=1, | |
minimum=1, | |
maximum=browser.num_images_pages()[1], | |
) | |
ib_range = gr.Markdown() | |
# Right side for metadata and search | |
with gr.Column(scale=1): | |
with gr.Row(): | |
update_btn = gr.Button("Update DB", scale=5) | |
gr.HTML(value="""<a href="gradio_api/file/html/slideshow.html" style="color: gray; text-decoration: none" target="_blank">🛝</a>""") | |
metadata_output = gr.Textbox( | |
label="Image Metadata", interactive=False, lines=15 | |
) | |
search_input = gr.Textbox( | |
label="Search Metadata", placeholder="Enter search term" | |
) | |
search_btn = gr.Button("Search") | |
status_output = gr.Markdown() | |
# Event handlers | |
update_btn.click( | |
browser.update_images, inputs=[], outputs=[gallery, ib_page, status_output] | |
) | |
ib_page.change( | |
browser.load_images, inputs=[ib_page], outputs=[gallery, ib_range] | |
) | |
gallery.select(browser.get_image_metadata, None, metadata_output) | |
search_btn.click( | |
browser.search_metadata, | |
inputs=[search_input], | |
outputs=[gallery, ib_page, status_output], | |
) | |
search_input.submit( | |
browser.search_metadata, | |
inputs=[search_input], | |
outputs=[gallery, ib_page, status_output], | |
) | |
return app_image_browser | |
# Optional: If you want to launch just this gallery | |
def launch_image_gallery(): | |
app_image_browser = create_image_gallery() | |
app_image_browser.launch() | |