You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
UITARS-1.5B-7B Grounding error and Screenspot pro score reproduction #215
Hi team, we tried to reproduce the reported ScreenSpot Pro score (48) without success, we used the suggested prompt template and postprocessing, got only around 40.
Also we saw some grounding failure on some simple examples, mostly on predicted X value. This are some examples
Click the Open button
Click the "Absence" app
Could you please test on your side as well? Thank you.
To reproduce the reported ScreenSpot Pro score (48), please make sure the following settings are applied:
✅ Use the official prompt template we provided
✅ Set inference to greedy decoding temperature = 0 top_p = 1
✅ Set Max pixel to 16384 during inference
Let us know if you're still seeing discrepancies after applying them.
Hi, thank you for your excellent work!
I met a similar issue when trying to reproduce the reported accuracy on ScreenSpot-v2 and ScreenSpot-Pro.
I followed the recommended evaluation settings, but I noticed that UI-TARS-1.5-7B occasionally produces outputs that do not strictly follow the expected format click(point='(x, y)'). To handle this, I additionally support the regex pattern click\(start_box='(x, y)').
However, even with these adjustments, my best results are 89.0 on ScreenSpot-v2 and 41.6 on ScreenSpot-Pro.
Below is the relevant code snippet I used for evaluation. I would greatly appreciate any insights or clarifications that could help reproduce the reported results.
prompt = """You are a GUI agent. You are given a task and your action history, with screenshots. You need to perform the next action to complete the task. \n\n## Output Format\n\nAction: ...\n\n\n## Action Space\nclick(point='<point>x1 y1</point>')\n\n## User Instruction "{instruction}" """
messages = [
{
"role": "user",
"content": [
{
"type": "image",
"image": image_path,
"min_pixels": self.processor.image_processor.min_pixels,
"max_pixels": self.processor.image_processor.max_pixels
},
{"type": "text", "text": full_prompt},
],
}
]
print("self.processor.image_processor.min_pixels:", self.processor.image_processor.min_pixels) #3136
print("self.processor.image_processor.max_pixels:", self.processor.image_processor.max_pixels) #128450546=16384x28x28
self.generation_params = {'do_sample': False, 'temperature': 0.0, 'use_cache': True, 'top_p': 1.0, 'max_new_tokens': 2048}
generated_ids = self.model.generate(**inputs, **self.generation_params)
generated_ids_trimmed = [out_ids[len(in_ids) :] for in_ids, out_ids in zip(inputs.input_ids, generated_ids)]
output_text = self.processor.batch_decode(generated_ids_trimmed, skip_special_tokens=True, clean_up_tokenization_spaces=False)
input_height = inputs['image_grid_thw'][0][1]*14
input_width = inputs['image_grid_thw'][0][2]*14
point = [0,0]
try:
match = re.search(r"click\(point='\((\d+),\s*(\d+)\)'\)", output_text[0])
# "raw_response": "Action: click(value=
if match:
x, y = float(match.group(1)), float(match.group(2))
point = [float(x/input_width),float(y/input_height)]
else:
match = re.search(r"click\(start_box='\((\d+),\s*(\d+)\)'\)", output_text[0])
if match:
x, y = float(match.group(1)), float(match.group(2))
point = [float(x/input_width),float(y/input_height)]
except Exception as e:
print(e)
Activity
JjjFangg commentedon Sep 9, 2025
Thanks for your feedback!
To reproduce the reported ScreenSpot Pro score (48), please make sure the following settings are applied:
✅ Use the official prompt template we provided
✅ Set inference to greedy decoding
temperature = 0
top_p = 1
✅ Set Max pixel to 16384 during inference
Let us know if you're still seeing discrepancies after applying them.
tcnguyen commentedon Sep 15, 2025
@JjjFangg Hi, thanks for your reply. Did you mean max pixel = 163842828, which is the default value for Qwen2.5VL?
Cece1031 commentedon Oct 21, 2025
Hi, I want to know if you can reproduce 48 in the end? I came across this problem too.
gaolongxi commentedon Oct 23, 2025
Hi, thank you for your excellent work!
I met a similar issue when trying to reproduce the reported accuracy on ScreenSpot-v2 and ScreenSpot-Pro.
I followed the recommended evaluation settings, but I noticed that UI-TARS-1.5-7B occasionally produces outputs that do not strictly follow the expected format
click(point='(x, y)'). To handle this, I additionally support the regex patternclick\(start_box='(x, y)').However, even with these adjustments, my best results are 89.0 on ScreenSpot-v2 and 41.6 on ScreenSpot-Pro.
Below is the relevant code snippet I used for evaluation. I would greatly appreciate any insights or clarifications that could help reproduce the reported results.
Mr-Bigworth commentedon Dec 13, 2025
我也是41.7左右,请问老哥解决了不
gaolongxi commentedon Dec 14, 2025
我还没解决 :)
Mr-Bigworth commentedon Dec 14, 2025
啊 那确实了 我现在在试试 UI-Venus 好像相对好一点