--- 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.