CUA-S1 Forms ONNX

ONNX conversion of the original cua-ai/cua-s1-forms model for local and browser inference experiments.

Original project:

https://github.com/trycua/cua/tree/main/libs/cua-s1

This repository only provides a deployment-format conversion of the original trained checkpoint. The architecture, weights, training, evaluation, and research belong to the original CUA-S1 project.

Why ONNX?

CUA-S1 Forms is a small specialist model for form-oriented computer-use tasks.

Instead of generating text token-by-token, it scores a bounded set of candidate actions in a single forward pass.

This makes it suitable for lightweight local inference using:

  • ONNX Runtime
  • ONNX Runtime Web
  • WebAssembly
  • WebGPU

No server-side inference is required.

Model

The original model uses:

  • byte-level input encoding
  • 2-layer Transformer encoder
  • width 128
  • 4 attention heads
  • option-attention scoring
  • ~706K parameters

Please refer to the original model card for the authoritative architecture, training details, evaluation results, limitations, and safety guidance:

https://huggingface.co/cua-ai/cua-s1-forms

Files

cua-s1-forms.onnx
cua-s1-forms-web.json

Input contract

context_ids
int64 [B, 224]

context_mask
bool [B, 224]

option_ids
int64 [B, N, 96]

option_token_mask
bool [B, N, 96]

option_mask
bool [B, N]

Output:

logits
float32 [B, N]

Where:

B = batch size
N = candidate options

Byte encoding

CUA-S1 uses UTF-8 bytes directly:

byte_id = byte + 1

0 is reserved for padding.

This means browser implementations can use JavaScript TextEncoder without requiring a tokenizer model.

Python example

import onnxruntime as ort

session = ort.InferenceSession(
    "cua-s1-forms.onnx",
    providers=["CPUExecutionProvider"]
)

logits = session.run(
    ["logits"],
    {
        "context_ids": context_ids,
        "context_mask": context_mask,
        "option_ids": option_ids,
        "option_token_mask": option_token_mask,
        "option_mask": option_mask,
    }
)[0]

Preliminary CPU result

Google Colab, ONNX Runtime CPU, batch 1, 8 candidate options:

Median latency      15.0 ms
Mean latency        16.8 ms
P95                 24.3 ms
Throughput          ~60 decisions/sec

These are deployment measurements for this ONNX conversion, not official CUA-S1 benchmark results.

Browser WASM and WebGPU tests will be added separately.

Intended browser deployment

Browser
   |
   v
TextEncoder
   |
   v
ONNX Runtime Web
   |
   +--> WASM
   |
   +--> WebGPU
   |
   v
CUA-S1 Forms
   |
   v
Action scores

Limitations

All limitations of the original model still apply.

CUA-S1 Forms is a specialist form-oriented model, not a general-purpose computer-use agent.

Refer to the original model card for detailed scope, limitations, evaluation, and safety guidance.

Attribution

Original model:

https://huggingface.co/cua-ai/cua-s1-forms

Original source:

https://github.com/trycua/cua/tree/main/libs/cua-s1

ONNX conversion:

https://huggingface.co/yasserrmd/cua-s1-forms-onnx

Converted for ONNX / browser deployment experiments by Mohamed Yasser.

This repository is not an official CUA-AI release.

License

MIT, following the original model repository.

Downloads last month

-

Downloads are not tracked for this model. How to track
Inference Providers NEW
This model isn't deployed by any Inference Provider. ๐Ÿ™‹ Ask for provider support

Model tree for yasserrmd/cua-s1-forms-onnx

Quantized
(2)
this model

Space using yasserrmd/cua-s1-forms-onnx 1