manishw7 commited on
Commit
4fe11e0
·
1 Parent(s): b80a0db

Universal: Fix Peft error and add local/HF detection

Browse files
Files changed (1) hide show
  1. app.py +14 -6
app.py CHANGED
@@ -1,14 +1,18 @@
 
1
  import gradio as gr
2
  import torch
3
  from PIL import Image
4
  from peft import PeftModel
5
  from transformers import AutoTokenizer, TrOCRProcessor, ViTImageProcessor, VisionEncoderDecoderModel
6
 
7
- # Configuration
8
  BASE_MODEL_ID = "paudelanil/trocr-devanagari-2"
9
  ADAPTER_ID = "manishw10/devgen-trocr-devanagari-lora"
10
 
11
- print("System: Loading model components...")
 
 
 
12
  device = "cuda" if torch.cuda.is_available() else "cpu"
13
 
14
  try:
@@ -30,14 +34,17 @@ def predict(image):
30
  try:
31
  image = image.convert("RGB")
32
  pixel_values = processor(image, return_tensors="pt").pixel_values.to(device)
 
 
 
33
  with torch.no_grad():
34
- generated_ids = model.generate(pixel_values)
35
  generated_text = processor.batch_decode(generated_ids, skip_special_tokens=True)[0]
36
  return generated_text
37
  except Exception as e:
38
  return f"Error during inference: {str(e)}"
39
 
40
- # Classic Gradio 3.x Interface
41
  demo = gr.Interface(
42
  fn=predict,
43
  inputs=gr.Image(type="pil", label="Upload Handwritten Devanagari Word"),
@@ -48,5 +55,6 @@ demo = gr.Interface(
48
  )
49
 
50
  if __name__ == "__main__":
51
- # Required settings for Gradio 3.x on HF Spaces
52
- demo.launch(server_name="0.0.0.0")
 
 
1
+ import os
2
  import gradio as gr
3
  import torch
4
  from PIL import Image
5
  from peft import PeftModel
6
  from transformers import AutoTokenizer, TrOCRProcessor, ViTImageProcessor, VisionEncoderDecoderModel
7
 
8
+ # --- CONFIGURATION ---
9
  BASE_MODEL_ID = "paudelanil/trocr-devanagari-2"
10
  ADAPTER_ID = "manishw10/devgen-trocr-devanagari-lora"
11
 
12
+ # Detect environment
13
+ IS_SPACE = "SPACE_ID" in os.environ
14
+
15
+ print(f"System: Loading model... (Env: {'Hugging Face Space' if IS_SPACE else 'Local'})")
16
  device = "cuda" if torch.cuda.is_available() else "cpu"
17
 
18
  try:
 
34
  try:
35
  image = image.convert("RGB")
36
  pixel_values = processor(image, return_tensors="pt").pixel_values.to(device)
37
+
38
+ # --- ROBUST GENERATE CALL ---
39
+ # Using inputs= as a keyword argument fixes the PeftModel positional argument error.
40
  with torch.no_grad():
41
+ generated_ids = model.generate(inputs=pixel_values)
42
  generated_text = processor.batch_decode(generated_ids, skip_special_tokens=True)[0]
43
  return generated_text
44
  except Exception as e:
45
  return f"Error during inference: {str(e)}"
46
 
47
+ # Interface setup
48
  demo = gr.Interface(
49
  fn=predict,
50
  inputs=gr.Image(type="pil", label="Upload Handwritten Devanagari Word"),
 
55
  )
56
 
57
  if __name__ == "__main__":
58
+ # If running on HF Spaces, use 0.0.0.0. If local, use default localhost.
59
+ server_name = "0.0.0.0" if IS_SPACE else "127.0.0.1"
60
+ demo.launch(server_name=server_name)