Sponsored by
Designkit Free Background Remover
-Designkit offers free AI background removal for up to 100 images daily, with batch processing, custom backgrounds, and resizing.
DeskForge-Gemma4-E4B
is
Gemma 4 E4B
(instruction-tuned) fine-tuned on 200K grounding examples from
DeskForge-1M
.
Given a desktop screenshot and a natural-language instruction, it answers with
the next action as a
pyautogui
call whose coordinates are fractions of the
screen.
Grounding on DeskForge-1M held-out conditions
(accuracy, %). New Scenes are
unseen scenes with seen attributes; Theme, App and Resolution hold an appearance
preset, three applications and a display resolution out of training entirely.
Model
New Scenes
Theme
App
Resolution
Mean
UI-TARS-1.5-7B
67.68
64.96
66.68
61.67
65.25
GroundNext-7B
73.57
67.67
72.10
68.87
70.55
Gemma4-31B
75.26
71.00
73.57
63.13
70.74
UI-Venus-2-9B
81.45
77.44
79.40
77.40
78.92
Gemma4-E4B
16.27
12.10
14.15
6.56
12.27
DeskForge-Gemma4-E4B
89.01
85.36
84.50
81.62
85.12
Grounding on external GUI benchmarks
(accuracy, %), none of which is used
for training:
Model
ScreenSpot-Pro
ScreenSpot-v2
OSWorld-G
UI-Vision
MMBench-GUI
Gemma4-E4B
1.83
46.86
10.64
3.28
31.39
DeskForge-Gemma4-E4B
21.95
79.56
44.15
13.87
58.90
Long-horizon task completion
(tasks solved). A fixed Qwen3.6-27B planner
decides each step and the action model locates its targets, so only the action
model differs between the rows:
Action model
WebArena-Infinity (119 tasks)
OpenApps (100 tasks)
Gemma4-E4B
5
2
DeskForge-Gemma4-E4B
40
12
Usage
The model takes the system prompt it was trained with, one screenshot, and the
task. The examples are tested with transformers 5.16 and vLLM 0.28; the
Transformers example also needs
accelerate
.
import re
from PIL import Image
MODEL = "docling-project/DeskForge-Gemma4-E4B"
SYSTEM_PROMPT = """You are a computer-use agent operating a desktop graphical interface. At each step you see the user's task, a screenshot of the current screen, and the actions you have already taken. Reply with the next action as pyautogui code and nothing else -- no explanation, no code fence, no commentary.Coordinates are fractions of the screen, not pixels: x runs from 0.0 at the left edge to 1.0 at the right edge, y from 0.0 at the top to 1.0 at the bottom. Write both with four decimals.These are the only actions available:pyautogui.click(x=0.0000, y=0.0000)pyautogui.doubleClick(x=0.0000, y=0.0000)pyautogui.rightClick(x=0.0000, y=0.0000)pyautogui.middleClick(x=0.0000, y=0.0000)computer.tripleClick(x=0.0000, y=0.0000)pyautogui.moveTo(x=0.0000, y=0.0000)pyautogui.dragTo(x=0.0000, y=0.0000, button='left')pyautogui.scroll(-4)pyautogui.hscroll(4)pyautogui.write(message='text to type')pyautogui.press('enter')pyautogui.hotkey(['ctrl', 'c'])computer.wait()computer.terminate(status='success')To scroll at a particular place, move there first and then scroll. When the task is finished, or cannot be finished, end with computer.terminate."""deffit(image, max_pixels=2_097_152):
"""Downscale to at most max_pixels (bilinear, sides rounded down), as in training."""
w, h = image.size
if w * h <= max_pixels:
return image
ratio = w / h
height = (max_pixels / ratio) ** 0.5return image.resize((max(1, int(height * ratio)), max(1, int(height))), Image.BILINEAR)
defuser_text(instruction):
returnf"Task: {instruction}\n\nActions already taken:\n(none -- this is the first step)\n\nNext action:"defchat(instruction):
return [
{"role": "system", "content": SYSTEM_PROMPT},
{"role": "user", "content": [{"type": "image"}, {"type": "text", "text": user_text(instruction)}]},
]
defto_pixels(action, screenshot):
x, y = map(float, re.search(r"x=([\d.]+), y=([\d.]+)", action).groups())
returnround(x * screenshot.width), round(y * screenshot.height)
screenshot = Image.open("screenshot.png").convert("RGB")
instruction = "Open the File menu of the text editor."
Screenshots are encoded with up to 1,120 image tokens, as in training. The
processor configuration sets this for Transformers; vLLM takes it as
max_soft_tokens
in
mm_processor_kwargs
, as in the examples below.
200,000 single-target grounding examples from the DeskForge-1M training split: a screenshot, an instruction, and a click on the target
Method
LoRA on the language model (rank 8, α 32, dropout 0.05), vision encoder and aligner frozen, merged into the base weights
Optimization
One epoch, 3,125 updates, effective batch size 64, AdamW, learning rate 10⁻⁴ with cosine decay and 3% warm-up, BF16
Inputs
Screenshots capped at 2,097,152 pixels and encoded with up to 1,120 image tokens; sequences up to 4,096 tokens
Hardware
8 × NVIDIA H100 80GB
Intended use and limitations
The model predicts the next GUI action, mainly where to click, from a
screenshot and an instruction, and serves as the action model under a planner
in multi-step tasks.
Training screenshots come from Linux (Xfce) desktops with several
applications per screen, overlapping windows, and appearance presets that
include Windows- and macOS-inspired styles.
Training targets are single clicks; other action types and task planning come
from the surrounding agent.
The model is not a safe autonomous agent. Review its actions before running
them on real systems.
License
Apache 2.0, following the base model; see
LICENSE
.
Citation
@misc{gurbuz2026deskforge,
title={DeskForge: Dense Supervision from Desktop Environments for Computer-Use Agents},
author={A. Said Gurbuz and Ahmed Nassar and Sunghwan Hong and Marc Pollefeys and Peter W. J. Staar},
year={2026},
eprint={2610.02320},
archivePrefix={arXiv},
primaryClass={cs.CV},
url={https://arxiv.org/abs/2610.02320},
}
Runs of docling-project DeskForge-Gemma4-E4B on huggingface.co
5.6K
Total runs
0
24-hour runs
13
3-day runs
13
7-day runs
5.5K
30-day runs
More Information About DeskForge-Gemma4-E4B huggingface.co Model
DeskForge-Gemma4-E4B huggingface.co is an AI model on huggingface.co that provides DeskForge-Gemma4-E4B's model effect (), which can be used instantly with this docling-project DeskForge-Gemma4-E4B model. huggingface.co supports a free trial of the DeskForge-Gemma4-E4B model, and also provides paid use of the DeskForge-Gemma4-E4B. Support call DeskForge-Gemma4-E4B model through api, including Node.js, Python, http.
DeskForge-Gemma4-E4B huggingface.co is an online trial and call api platform, which integrates DeskForge-Gemma4-E4B's modeling effects, including api services, and provides a free online trial of DeskForge-Gemma4-E4B, you can try DeskForge-Gemma4-E4B online for free by clicking the link below.
docling-project DeskForge-Gemma4-E4B online free url in huggingface.co:
DeskForge-Gemma4-E4B is an open source model from GitHub that offers a free installation service, and any user can find DeskForge-Gemma4-E4B on GitHub to install. At the same time, huggingface.co provides the effect of DeskForge-Gemma4-E4B install, users can directly use DeskForge-Gemma4-E4B installed effect in huggingface.co for debugging and trial. It also supports api for free installation.
DeskForge-Gemma4-E4B install url in huggingface.co: