Views
No views yet
search button, settings gear, chats nav icon| Model | Val Loss | Exact Match | Output Quality |
|---|---|---|---|
| OmniParser (baseline) | - | 0% | Verbose, generic ("a loading or buffering indicator") |
| This model | 1.329 | 18.8% | Concise, functional ("settings gear", "search button") |
1from transformers import AutoProcessor, AutoModelForCausalLM, AutoConfig
2from safetensors.torch import load_file
3from huggingface_hub import hf_hub_download
4from pathlib import Path
5from PIL import Image
6import torch
7
8# Load processor
9processor = AutoProcessor.from_pretrained("microsoft/Florence-2-base", trust_remote_code=True)
10
11# Load model structure from OmniParser config
12config_path = hf_hub_download("microsoft/OmniParser-v2.0", "icon_caption/config.json")
13config = AutoConfig.from_pretrained(str(Path(config_path).parent), trust_remote_code=True)
14config._attn_implementation = "eager"
15model = AutoModelForCausalLM.from_config(config, trust_remote_code=True)
16
17# Load fine-tuned weights
18weights = hf_hub_download("josley/florence-2-icon-caption", "model.safetensors")
19model.load_state_dict(load_file(weights, device="cpu"), strict=False)
20model = model.to("cuda", dtype=torch.float16).eval()
21
22# Inference
23image = Image.open("icon.png").convert("RGB")
24inputs = processor(text="<CAPTION>", images=image, return_tensors="pt").to("cuda")
25inputs["pixel_values"] = inputs["pixel_values"].to(torch.float16)
26gen = model.generate(input_ids=inputs["input_ids"], pixel_values=inputs["pixel_values"],
27 max_new_tokens=20, num_beams=1, use_cache=False)
28print(processor.batch_decode(gen, skip_special_tokens=True)[0])
29# Output: "search button"