File size: 3,379 Bytes
7a979b8
65bce6f
 
 
 
7a979b8
65bce6f
7a979b8
65bce6f
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
7a979b8
 
65bce6f
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
---
title: ultimate WebGPU
emoji: 🎛️
colorFrom: purple
colorTo: green
sdk: static
app_file: index.html
pinned: false
license: mit
short_description: Agate images and Qwen3 on WebGPU; bankML verified on the CPU
custom_headers:
  cross-origin-embedder-policy: credentialless
  cross-origin-opener-policy: same-origin
  cross-origin-resource-policy: cross-origin
models:
- Logolabs/agate-preview-003
- onnx-community/Qwen3-0.6B-ONNX
- prism-ml/Bonsai-1.7B-gguf
tags:
- webgpu
- browser-inference
- text-to-image
- ultimate-input-field
- bankml
---

# ultimate WebGPU, with bankML beside it

One **ultimate input field** and three engines. All three run in your browser: no server, no account, and nothing is
sent anywhere except the model downloads, which happen once and are then cached in the browser.

| mode | engine | runs on | what you get |
|---|---|---|---|
| generic (⧉ chooses) | **Qwen3-0.6B** (q4f16) via transformers.js 4.2.0 | your **GPU** (WebGPU) | fast text |
| generic (⧉ chooses) | **Agate preview 003** (Logolabs), onnxruntime-web 1.30.0 | your **GPU** (WebGPU) | a 512 px image in a response window, marked AI-generated |
| **bankML** (the button beside T) | **bankML** compiled to WebAssembly (browseML), Bonsai-1.7B 1-bit | your **CPU** | a verified answer: the model's sha256 is checked before it runs, and every answer carries a receipt |

bankML stays a **separate** engine. The GPU engines are fast, while bankML's answers are verified, and you choose
between them for each question: **bankML** switches to it, and **>** goes back to the GPU.

## How to use it

- **Ask:** type and press Enter. The first question on an engine downloads its model: Qwen3 570 MB, Agate 531 MB,
  bankML 248 MB. **⬇** loads one ahead of time, and `load all` loads all three.
- **Pictures:** press **⧉** to switch the generic mode from Qwen3 to Agate, then describe the picture.
- **Terminal mode:** **T** switches to it. The commands are `webgpu`, `gpu qwen|agate`, `load`, `steps`, `cfg`,
  `res 512|256`, `seed`, `tokens`, `temp`, `ping` (the GPU and what's loaded), `last`, `details` and `help`.
- **The field itself:** response windows move, resize and pop out; the field docks to any edge by magnetic
  attraction.
- **Kept in .memory:** each answer is kept as a delivery record: the engine, the model, the timings and the
  sha256 of the answer or image.

## Requirements

- **WebGPU** (Chrome or Edge 113+) for the GPU engines. Without it they fall back to the CPU, which is slow, and
  the page says so.
- bankML needs only WebAssembly. This Space is cross-origin isolated, so it uses several threads.

## Credits and licences

- **Agate:** `agate/agate.js`, `prompt.js` and `marking.js` are unchanged from
  [Logolabs/agate-webgpu](https://huggingface.co/spaces/Logolabs/agate-webgpu) (MIT, © LogoLabs), and the models
  come from Logolabs' own repos. Every image keeps their AI-generated marking: the invisible `AGATE003` watermark and
  the PNG text fields. Label any images you publish as AI-generated.
- **Qwen3-0.6B:** [onnx-community/Qwen3-0.6B-ONNX](https://huggingface.co/onnx-community/Qwen3-0.6B-ONNX)
  (Apache-2.0), at a pinned revision.
- **bankML:** [cryptoAGI/bankml](https://github.com/cryptoAGI/bankml) (MIT); browseML is from
  [PYTHAI/bankml](https://huggingface.co/spaces/PYTHAI/bankml).
- **The field:** ultimate-bankml-ui 0.2.3.