prithivMLmods commited on
Commit
5cb7bcd
·
verified ·
1 Parent(s): dc2c0c1

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +27 -31
app.py CHANGED
@@ -45,11 +45,11 @@ MAX_INPUT_TOKEN_LENGTH = int(os.getenv("MAX_INPUT_TOKEN_LENGTH", "4096"))
45
 
46
  device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu")
47
 
48
- # Load RolmOCR
49
- MODEL_ID_M = "reducto/RolmOCR"
50
- processor_m = AutoProcessor.from_pretrained(MODEL_ID_M, trust_remote_code=True)
51
- model_m = Qwen2_5_VLForConditionalGeneration.from_pretrained(
52
- MODEL_ID_M,
53
  trust_remote_code=True,
54
  torch_dtype=torch.float16
55
  ).to(device).eval()
@@ -63,15 +63,6 @@ model_x = Qwen2VLForConditionalGeneration.from_pretrained(
63
  torch_dtype=torch.float16
64
  ).to(device).eval()
65
 
66
- # Load Nanonets-OCR-s
67
- MODEL_ID_V = "nanonets/Nanonets-OCR-s"
68
- processor_v = AutoProcessor.from_pretrained(MODEL_ID_V, trust_remote_code=True)
69
- model_v = Qwen2_5_VLForConditionalGeneration.from_pretrained(
70
- MODEL_ID_V,
71
- trust_remote_code=True,
72
- torch_dtype=torch.float16
73
- ).to(device).eval()
74
-
75
  # Load Aya-Vision-8b
76
  MODEL_ID_A = "CohereForAI/aya-vision-8b"
77
  processor_a = AutoProcessor.from_pretrained(MODEL_ID_A, trust_remote_code=True)
@@ -81,17 +72,23 @@ model_a = AutoModelForImageTextToText.from_pretrained(
81
  torch_dtype=torch.float16
82
  ).to(device).eval()
83
 
84
- #-----------------------------subfolder-----------------------------#
85
- # Load MonkeyOCR-3B-0709
86
- MODEL_ID_W = "echo840/MonkeyOCR-3B-0709"
87
- SUBFOLDER = "Recognition"
88
- processor_w = AutoProcessor.from_pretrained(MODEL_ID_W, trust_remote_code=True, subfolder=SUBFOLDER)
89
  model_w = Qwen2_5_VLForConditionalGeneration.from_pretrained(
90
- MODEL_ID_W, trust_remote_code=True,
91
- subfolder=SUBFOLDER,
92
- torch_dtype=torch.float16).to(device).eval()
93
- #-----------------------------subfolder-----------------------------#
94
 
 
 
 
 
 
 
 
 
95
 
96
  def downsample_video(video_path):
97
  """
@@ -128,7 +125,7 @@ def generate_image(model_name: str, text: str, image: Image.Image,
128
  if model_name == "RolmOCR-7B":
129
  processor = processor_m
130
  model = model_m
131
- elif model_name == "Qwen2-VL-OCR":
132
  processor = processor_x
133
  model = model_x
134
  elif model_name == "Nanonets-OCR-s":
@@ -137,7 +134,7 @@ def generate_image(model_name: str, text: str, image: Image.Image,
137
  elif model_name == "Aya-Vision-8B":
138
  processor = processor_a
139
  model = model_a
140
- elif model_name == "MonkeyOCR-3B-0709":
141
  processor = processor_w
142
  model = model_w
143
  else:
@@ -189,7 +186,7 @@ def generate_video(model_name: str, text: str, video_path: str,
189
  if model_name == "RolmOCR-7B":
190
  processor = processor_m
191
  model = model_m
192
- elif model_name == "Qwen2-VL-OCR":
193
  processor = processor_x
194
  model = model_x
195
  elif model_name == "Nanonets-OCR-s":
@@ -198,7 +195,7 @@ def generate_video(model_name: str, text: str, video_path: str,
198
  elif model_name == "Aya-Vision-8B":
199
  processor = processor_a
200
  model = model_a
201
- elif model_name == "MonkeyOCR-3B-0709":
202
  processor = processor_w
203
  model = model_w
204
  else:
@@ -312,17 +309,16 @@ with gr.Blocks(css=css, theme="bethecloud/storj_theme") as demo:
312
  with gr.Accordion("(Result.md)", open=False):
313
  markdown_output = gr.Markdown(label="Formatted Result (Result.Md)")
314
  model_choice = gr.Radio(
315
- choices=["Nanonets-OCR-s", "MonkeyOCR-3B-0709", "Qwen2-VL-OCR", "RolmOCR-7B", "Aya-Vision-8B"],
316
  label="Select Model",
317
  value="Nanonets-OCR-s"
318
  )
319
  gr.Markdown("**Model Info 💻** | [Report Bug](https://huggingface.co/spaces/prithivMLmods/Multimodal-OCR/discussions)")
320
  gr.Markdown("> [Nanonets-OCR-s](https://huggingface.co/nanonets/Nanonets-OCR-s): nanonets-ocr-s is a powerful, state-of-the-art image-to-markdown ocr model that goes far beyond traditional text extraction. it transforms documents into structured markdown with intelligent content recognition and semantic tagging.")
321
- gr.Markdown("> [MonkeyOCR-3B-0709](https://huggingface.co/echo840/MonkeyOCR-3B-0709): MonkeyOCR adopts a structure-recognition-relation (SRR) triplet paradigm, which simplifies the multi-tool pipeline of modular approaches while avoiding the inefficiency of using large multimodal models for full-page document processing.")
322
- gr.Markdown("> [Qwen2-VL-OCR-2B-Instruct](https://huggingface.co/prithivMLmods/Qwen2-VL-OCR-2B-Instruct): qwen2-vl-ocr-2b-instruct model is a fine-tuned version of qwen2-vl-2b-instruct, tailored for tasks that involve [messy] optical character recognition (ocr), image-to-text conversion, and math problem solving with latex formatting.")
323
  gr.Markdown("> [RolmOCR](https://huggingface.co/reducto/RolmOCR): rolmocr, high-quality, openly available approach to parsing pdfs and other complex documents optical character recognition. it is designed to handle a wide range of document types, including scanned documents, handwritten text, and complex layouts.")
324
  gr.Markdown("> [Aya-Vision](https://huggingface.co/CohereLabs/aya-vision-8b): cohere labs aya vision 8b is an open weights research release of an 8-billion parameter model with advanced capabilities optimized for a variety of vision-language use cases, including ocr, captioning, visual reasoning, summarization, question answering, code, and more.")
325
-
326
  gr.Markdown(">⚠️note: all the models in space are not guaranteed to perform well in video inference use cases.")
327
 
328
  image_submit.click(
 
45
 
46
  device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu")
47
 
48
+ # Load Nanonets-OCR-s
49
+ MODEL_ID_V = "nanonets/Nanonets-OCR-s"
50
+ processor_v = AutoProcessor.from_pretrained(MODEL_ID_V, trust_remote_code=True)
51
+ model_v = Qwen2_5_VLForConditionalGeneration.from_pretrained(
52
+ MODEL_ID_V,
53
  trust_remote_code=True,
54
  torch_dtype=torch.float16
55
  ).to(device).eval()
 
63
  torch_dtype=torch.float16
64
  ).to(device).eval()
65
 
 
 
 
 
 
 
 
 
 
66
  # Load Aya-Vision-8b
67
  MODEL_ID_A = "CohereForAI/aya-vision-8b"
68
  processor_a = AutoProcessor.from_pretrained(MODEL_ID_A, trust_remote_code=True)
 
72
  torch_dtype=torch.float16
73
  ).to(device).eval()
74
 
75
+ # Load AIGVE-MACS
76
+ MODEL_ID_W = "xiaoliux/AIGVE-MACS"
77
+ processor_w = AutoProcessor.from_pretrained(MODEL_ID_W, trust_remote_code=True)
 
 
78
  model_w = Qwen2_5_VLForConditionalGeneration.from_pretrained(
79
+ MODEL_ID_W,
80
+ trust_remote_code=True,
81
+ torch_dtype=torch.float16
82
+ ).to(device).eval()
83
 
84
+ # Load RolmOCR
85
+ MODEL_ID_M = "reducto/RolmOCR"
86
+ processor_m = AutoProcessor.from_pretrained(MODEL_ID_M, trust_remote_code=True)
87
+ model_m = Qwen2_5_VLForConditionalGeneration.from_pretrained(
88
+ MODEL_ID_M,
89
+ trust_remote_code=True,
90
+ torch_dtype=torch.float16
91
+ ).to(device).eval()
92
 
93
  def downsample_video(video_path):
94
  """
 
125
  if model_name == "RolmOCR-7B":
126
  processor = processor_m
127
  model = model_m
128
+ elif model_name == "Qwen2-VL-OCR-2B":
129
  processor = processor_x
130
  model = model_x
131
  elif model_name == "Nanonets-OCR-s":
 
134
  elif model_name == "Aya-Vision-8B":
135
  processor = processor_a
136
  model = model_a
137
+ elif model_name == "AIGVE-MACS-7B":
138
  processor = processor_w
139
  model = model_w
140
  else:
 
186
  if model_name == "RolmOCR-7B":
187
  processor = processor_m
188
  model = model_m
189
+ elif model_name == "Qwen2-VL-OCR-2B":
190
  processor = processor_x
191
  model = model_x
192
  elif model_name == "Nanonets-OCR-s":
 
195
  elif model_name == "Aya-Vision-8B":
196
  processor = processor_a
197
  model = model_a
198
+ elif model_name == "AIGVE-MACS-7B":
199
  processor = processor_w
200
  model = model_w
201
  else:
 
309
  with gr.Accordion("(Result.md)", open=False):
310
  markdown_output = gr.Markdown(label="Formatted Result (Result.Md)")
311
  model_choice = gr.Radio(
312
+ choices=["Nanonets-OCR-s", "Qwen2-VL-OCR-2B", "RolmOCR-7B", "AIGVE-MACS-7B", "Aya-Vision-8B"],
313
  label="Select Model",
314
  value="Nanonets-OCR-s"
315
  )
316
  gr.Markdown("**Model Info 💻** | [Report Bug](https://huggingface.co/spaces/prithivMLmods/Multimodal-OCR/discussions)")
317
  gr.Markdown("> [Nanonets-OCR-s](https://huggingface.co/nanonets/Nanonets-OCR-s): nanonets-ocr-s is a powerful, state-of-the-art image-to-markdown ocr model that goes far beyond traditional text extraction. it transforms documents into structured markdown with intelligent content recognition and semantic tagging.")
318
+ gr.Markdown("> [AIGVE-MACS-7B](https://huggingface.co/xiaoliux/AIGVE-MACS): AIGVE-MACS is a unified Vision-Language Model (VLM) designed to evaluate AI-generated videos. It provides numerical scores (0–5) and natural language justifications across 9 human-aligned video quality aspects.")
319
+ gr.Markdown("> [Qwen2-VL-OCR-2B](https://huggingface.co/prithivMLmods/Qwen2-VL-OCR-2B-Instruct): qwen2-vl-ocr-2b-instruct model is a fine-tuned version of qwen2-vl-2b-instruct, tailored for tasks that involve [messy] optical character recognition (ocr), image-to-text conversion, and math problem solving with latex formatting.")
320
  gr.Markdown("> [RolmOCR](https://huggingface.co/reducto/RolmOCR): rolmocr, high-quality, openly available approach to parsing pdfs and other complex documents optical character recognition. it is designed to handle a wide range of document types, including scanned documents, handwritten text, and complex layouts.")
321
  gr.Markdown("> [Aya-Vision](https://huggingface.co/CohereLabs/aya-vision-8b): cohere labs aya vision 8b is an open weights research release of an 8-billion parameter model with advanced capabilities optimized for a variety of vision-language use cases, including ocr, captioning, visual reasoning, summarization, question answering, code, and more.")
 
322
  gr.Markdown(">⚠️note: all the models in space are not guaranteed to perform well in video inference use cases.")
323
 
324
  image_submit.click(