Downloads · 30 days
0
cua-ai/cua-s1-nano-0.1
cua-s1-nano-0.1 is a machine learning model from cua-ai. Use it for the machine learning task on the model card, and read the license before you ship it in a product. It is set up for cua-s1. The card lists the license as apache-2.0.
cua-s1-nano-0.1 is a small research classifier for closed-option computer-use decisions. It has about 855,000 trainable parameters and was trained from scratch. Given a screen state and a closed set of candidate (elem…
Downloads · 30 days
0
Access
Public
Updated Sep 26, 2026
Repo size
6.9 MB
Likes
12
Public
Click a slice to open those files.
.safetensors6.9 MB · 100%
From the Hugging Face model README
cua-s1-nano-0.1 is a small research classifier for closed-option
computer-use decisions. It has about 855,000 trainable parameters and was
trained from scratch. Given a screen state and a closed set of candidate
(element, action) options, it scores every option in one parallel forward
pass and selects the highest-scoring option for each element.
This checkpoint belongs to the Cua-S1 research family. It is not a general-purpose assistant. Do not treat a result on one task family as evidence of reliability outside it.
| Path | Contents |
|---|---|
text/model.safetensors, text/config.json | Text checkpoint: a byte-level context encoder over an accessibility-tree excerpt for each element |
multimodal/model.safetensors, multimodal/config.json | Multimodal checkpoint: a trainable projection over frozen google/siglip-base-patch16-224 features from a screenshot crop for each element |
Each checkpoint has 855,296 parameters. Tensors are stored only in safetensors, and the JSON sidecar holds the architecture config and a SHA-256 signature over the tensors. This repository contains no pickle files and does not redistribute the SigLIP backbone.
cua-s1-4b-0.2, on
cua-bench-s1.An option-attention head uses each candidate option as a query against the element's context tokens and produces one logit per option. Options are always encoded as text by a shared byte-level option encoder. The context depends on the modality:
siglip (google/siglip-base-patch16-224).Scoring is one parallel forward pass, not autoregressive generation. Latency is in the low milliseconds per task on a GPU and under 100 ms on a CPU.
The model was trained from scratch; it has no base model. It was trained on
the data/v1 split of the cua-bench-s1 core GUI task families:
form_filling, login_auth, consent_checkbox, multi_step_submit,
pagination, and search_filter. cua-bench-s1 builds these families with
its synthetic generator and its converters for
AndroidControl
(Apache-2.0) and GUI-360 (MIT). For exact provenance, see
Data sources and provenance.
The two-stage training recipe (base training, then an optional fine-tune) is
libs/cua-s1/training/train_nano.py.
No dataset is distributed with this checkpoint.
These are measured results from the cua-bench-s1
Results section:
chess, on the same 15-position subset used for every model: 0.000 task
accuracy and 0.227 element accuracy in both modalities.game_control: 0.000 task accuracy and 0.333 element accuracy. Neither
result survives chance correction.safety_gate: 0.000 zero-shot, and 1.000 after fine-tuning on that
family's own split.general_decision benchmark: no result, because the model cannot
produce that benchmark's text-only decision shape.The strong same-distribution result and weak cross-dataset result mean that this checkpoint mostly reflects its training distribution. It is not a general GUI decision model.
Pin the download to the revision the Cua-S1 documentation was verified against. The weights are unchanged at later revisions of this repository that change only documentation.
| Artifact | Revision |
|---|---|
cua-ai/cua-s1-nano-0.1 (weights) | 1f93fd0fdcbe33740334948f967dff9f6c8e9f34 |
From a checkout of trycua/cua:
uv sync --project libs/cua-s1/python # text modality
uv sync --project libs/cua-s1/python --extra nano-vision # adds the multimodal backbone
libs/cua-s1/python/.venv/bin/hf download cua-ai/cua-s1-nano-0.1 \
--revision 1f93fd0fdcbe33740334948f967dff9f6c8e9f34 \
--local-dir "$HOME/cua-s1-models/cua-s1-nano-0.1"
from pathlib import Path
from cua_s1.nano import load_nano_checkpoint, select_device
root = Path.home() / "cua-s1-models" / "cua-s1-nano-0.1"
# Validates the format, version, and SHA-256 tensor signature before returning.
model, collator, config = load_nano_checkpoint(root / "text", select_device("auto"))
The multimodal checkpoint loads the same way from root / "multimodal". On
first use, it downloads the frozen google/siglip-base-patch16-224 backbone
through Transformers.
The jev-use closed-candidate chooser
supports only the Cua-S1-4B adapters. It fails setup for cua-s1-nano-0.1,
and no Cua Driver integration runs this checkpoint yet. To drive the jev-use
flow with a Cua-S1 model, use
cua-s1-4b-0.2 and follow
Get the weights and run inference.
Use this checkpoint through cua_s1.nano directly, or through
cua-bench-s1's model adapters.
game_control and chess are out-of-domain checks only.Run it in an isolated environment with least-privilege credentials and bounded actions. Verify outcomes independently, and require human confirmation before consequential or irreversible actions.
The weights in this repository are licensed under Apache-2.0. The frozen
google/siglip-base-patch16-224 backbone used by the multimodal checkpoint
is not redistributed here: its own license governs it. The Cua-S1 source code
is MIT-licensed in trycua/cua.