Update README.md
Browse files
README.md
CHANGED
|
@@ -8,4 +8,45 @@ tags:
|
|
| 8 |
- int4
|
| 9 |
- moss
|
| 10 |
- text-to-image
|
| 11 |
-
---
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 8 |
- int4
|
| 9 |
- moss
|
| 10 |
- text-to-image
|
| 11 |
+
---
|
| 12 |
+
|
| 13 |
+
# MossInt4
|
| 14 |
+
|
| 15 |
+
Small int4 versions of the Moss image model and its Qwen3.5 9B text encoder, made for running fully
|
| 16 |
+
in the browser with WebGPU. Everything is kept small to fit the browser's limits: WebAssembly can
|
| 17 |
+
address at most 4 GB, WebGPU buffers are capped at 2 GB, and most GPUs have 8-12 GB of VRAM. The
|
| 18 |
+
files are streamed with HTTP range requests straight into GPU buffers and cached in the browser
|
| 19 |
+
(OPFS), so they never have to fit into WebAssembly memory as a whole.
|
| 20 |
+
|
| 21 |
+
They are used by the [StrictComfy](https://github.com/strict-lang/StrictComfy) browser page, which
|
| 22 |
+
runs 100% locally on your device with WebGPU, written in [Strict](https://strict-lang.org). The
|
| 23 |
+
downloadable GitHub version (int8, CUDA) is up to 10x faster.
|
| 24 |
+
|
| 25 |
+
## Files
|
| 26 |
+
|
| 27 |
+
| File | Size | Content |
|
| 28 |
+
|---|---|---|
|
| 29 |
+
| `moss_image_sft_4step_int4_convrot.safetensors` | 3.0 GB | Moss Image SFT with the 4-step LoRA merged, for 4 and 2 steps (fastest, fastest2steps) |
|
| 30 |
+
| `moss_image_sft_dmd_int4_convrot.safetensors` | 3.0 GB | Moss Image SFT with the DMD turbo LoRA merged, for 8 steps (best, fast, faster) |
|
| 31 |
+
| `qwen3.5_9b_int4_convrot.safetensors` | 4.5 GB | The language model of Qwen3.5 9B as the text encoder (no vision, MTP or output head) |
|
| 32 |
+
|
| 33 |
+
## Format
|
| 34 |
+
|
| 35 |
+
ComfyUI's `convrot_w4a4` layout: every linear layer is rotated with a 256-wide Hadamard transform,
|
| 36 |
+
stored as signed 4-bit codes (two per byte, `I8`) with one `F32` scale per row, chosen by a
|
| 37 |
+
clip search per row (mean relative row error 11.4 %). Norms and small tensors stay `BF16`/`F32`,
|
| 38 |
+
the Qwen embedding stays int8. The LoRAs were merged into the bf16 weights before quantizing; the
|
| 39 |
+
Qwen file was requantized from the int8 convrot release. Computation runs with 8-bit activations
|
| 40 |
+
(WebGPU `dot4I8Packed`), so the int4 weights mainly save download size and memory.
|
| 41 |
+
|
| 42 |
+
Compared with the int8 originals the images keep the same composition with small differences in
|
| 43 |
+
fine detail; the text encoder's context has a cosine similarity of 0.96 to int8.
|
| 44 |
+
|
| 45 |
+
## License
|
| 46 |
+
|
| 47 |
+
Apache 2.0, like everything they are made from. These files are modified versions (LoRAs merged,
|
| 48 |
+
quantized to int4) of:
|
| 49 |
+
- [OpenMOSS-Team/MOSS-Image-SFT](https://huggingface.co/OpenMOSS-Team/MOSS-Image-SFT)
|
| 50 |
+
- [akhaliq/MOSS-Image-SFT-4-steps](https://huggingface.co/akhaliq/MOSS-Image-SFT-4-steps) (4-step LoRA)
|
| 51 |
+
- [lodestones/MOSS-Image-SFT-8-steps-dmd](https://huggingface.co/lodestones/MOSS-Image-SFT-8-steps-dmd) (DMD LoRA)
|
| 52 |
+
- [Qwen/Qwen3.5-9B](https://huggingface.co/Qwen/Qwen3.5-9B)
|