in demo_app/demo_app.py [0:0]
def render_visual_media_input(file: Optional[str]):
"""Renders visual media input into a Gradio component."""
if not file:
return gr.Gallery(
value=None,
type="pil",
visible=True,
)
mime_type = mimetypes.guess_type(file)[0]
if mime_type.startswith("image"):
return gr.Gallery([file], columns=1, visible=True)
elif mime_type == "application/pdf":
fitz_pdf = fitz.open(file)
page_thumbnails = fitz_pdf_to_images(fitz_pdf)
return gr.Gallery(
page_thumbnails,
columns=min(len(page_thumbnails), 2),
type="pil",
visible=True,
)
else:
raise NotImplementedError(f"Unsupported mime_type: {mime_type}")