htr_demo / app.py
Gabriel's picture
max size queue changed
276b02e
import gradio as gr
from helper.gradio_config import css, js, theme
from helper.text.text_about import TextAbout
from helper.text.text_app import TextApp
from helper.text.text_howto import TextHowTo
from helper.text.text_roadmap import TextRoadmap
from tabs.htr_tool import htr_tool_tab
from tabs.stepwise_htr_tool import stepwise_htr_tool_tab
with gr.Blocks(title="HTR Riksarkivet", theme=theme, css=css) as demo:
gr.Markdown(TextApp.title_markdown)
with gr.Tabs():
with gr.Tab("HTR Tool"):
htr_tool_tab.render()
with gr.Tab("Stepwise HTR Tool"):
stepwise_htr_tool_tab.render()
with gr.Tab("How to use"):
with gr.Tabs():
with gr.Tab("HTR Tool"):
with gr.Row().style(equal_height=False):
with gr.Column():
gr.Markdown(TextHowTo.htr_tool)
with gr.Column():
gr.Markdown(TextHowTo.both_htr_tool_video)
gr.Video(
value="https://github.com/Borg93/htr_gradio_file_placeholder/raw/main/htr_tool_media_cut.mp4",
label="How to use HTR Tool",
)
gr.Markdown(TextHowTo.reach_out)
with gr.Tab("Stepwise HTR Tool"):
with gr.Row().style(equal_height=False):
gr.Markdown(TextHowTo.stepwise_htr_tool)
with gr.Row():
gr.Markdown(TextHowTo.stepwise_htr_tool_tab_intro)
with gr.Row():
with gr.Accordion("The tabs for the Stepwise HTR Tool:", open=True):
with gr.Tabs():
with gr.Tab("1. Region Segmentation"):
gr.Markdown(TextHowTo.stepwise_htr_tool_tab1)
with gr.Tab("2. Line Segmentation"):
gr.Markdown(TextHowTo.stepwise_htr_tool_tab2)
with gr.Tab("3. Transcribe Text"):
gr.Markdown(TextHowTo.stepwise_htr_tool_tab3)
with gr.Tab("4. Explore Results"):
gr.Markdown(TextHowTo.stepwise_htr_tool_tab4)
gr.Markdown(TextHowTo.stepwise_htr_tool_end)
with gr.Tab("API"):
with gr.Row():
with gr.Column():
gr.Markdown(TextHowTo.htr_tool_api_text)
gr.Code(
value="""
from gradio_client import Client # pip install gradio_client
# Change url to your client (localhost: http://127.0.0.1:7860/)
client = Client("https://huggingface.co/spaces/Riksarkivet/htr_demo")
job = client.submit(
"https://your.image.url.or.pah.jpg",
api_name="/predict",
)
print(job.result())
""",
language="python",
interactive=False,
show_label=False,
)
gr.Markdown(
"""
Below you can see the results, in XML, from the API call:
"""
)
gr.Markdown(TextHowTo.figure_htr_api)
with gr.Column():
gr.Markdown(TextHowTo.duplicatin_space_htr_text)
gr.Markdown(TextHowTo.figure_htr_hardware)
gr.Markdown(
"Note that if you have GPU hardware available, you can also run this application on Docker or clone it locally."
)
with gr.Tab("About"):
with gr.Tabs():
with gr.Tab("Project"):
with gr.Row():
gr.Markdown(TextAbout.intro_and_pipeline_overview_text)
with gr.Row():
with gr.Tabs():
with gr.Tab("I. Binarization"):
gr.Markdown(TextAbout.binarization)
with gr.Tab("II. Region Segmentation"):
gr.Markdown(TextAbout.text_region_segment)
with gr.Tab("III. Line Segmentation"):
gr.Markdown(TextAbout.text_line_segmentation)
with gr.Tab("IV. Transcriber"):
gr.Markdown(TextAbout.text_htr)
with gr.Row():
with gr.Column():
gr.Markdown(TextAbout.text_data)
with gr.Column():
gr.Markdown(TextAbout.text_models)
with gr.Tab("Roadmap"):
with gr.Row():
with gr.Column():
gr.Markdown(TextRoadmap.roadmap)
with gr.Column():
gr.Markdown(TextRoadmap.discussion)
demo.load(None, None, None, _js=js)
demo.queue(concurrency_count=1, max_size=1)
if __name__ == "__main__":
demo.launch(server_name="0.0.0.0", server_port=7860, show_api=False, show_error=True)