Brimkern image pipelines β€” BRIK (int8 / mixed / int4)

Text→image weights converted to the BRIK format so diffusion runs inside the browser on the visitor's GPU (WebGPU) — no inference server, no image leaving the machine. Two pipelines, sharing one CLIP text encoder and the TAESD decoder.

SD-Turbo (default on desktop)

file size role
sd-turbo-unet-q8.brik 921 MB UNet, int8
sd-turbo-unet-mixed.brik 789 MB UNet, mixed int8+int4
sd-turbo-clip-q8.brik 362 MB CLIP text encoder, int8

Full pipeline as loaded by the app: 1.29 GB (UNet q8 + CLIP q8 + 4.7 MB TAESD decoder).

SDXS-512 (default on mobile)

file size role
sdxs-unet-light.brik 205 MB UNet, int4
sdxs-unet-mixed.brik 281 MB UNet, mixed
sdxs-unet-q8.brik 349 MB UNet, int8
sd-turbo-clip-mixed.brik 235 MB CLIP text encoder, mixed

Full pipeline as loaded by the app: 446 MB β€” a one-step image generator that fits a phone's budget.

Try it

πŸ‘‰ https://brimkern.com/chat β†’ Browse / load a model β†’ the image card.

These are pipelines, not single-file models: several files are loaded together, so the ?model=repo deeplink (which picks one file) does not apply here. The app resolves the right set for the device, streams every file by HTTP Range, caches them, and can then generate offline.

Measured

Chrome, Apple Silicon laptop, production build, SD-Turbo q8 at 256 px, 1 step β€” replayable benches in scripts/e2e/ (profile-image.mjs, bench-image.mjs):

before after gain
3Γ—3 int8 convolution (94 shots) 35 411 Β΅s/shot 19 217 Γ—1.84
GPU total for one generation 6 455 ms 3 856 ms Γ—1.67
end-to-end 256 px generation 5.0 s 3.0 s Γ—1.67

The gain came from tiling the quantized convolution: the f32 path had a tiled 3Γ—3 kernel from the start, the int8/int4 paths did not β€” and int8 is what production runs, since these BRIKs are pre-quantized. A weight dequantized once per tile instead of 256 times is where the time went.

512 px is the default on a capable machine: SD-Turbo is trained at 512 and below it stops composing (at 256 the same prompt returns a cropped close-up where 512 returns the whole portrait, compared at equal seed).

Format

A .brik is a self-describing container: topology, quantization tiers and configuration travel inside the file (the SDXS UNet's 3-level, no-mid, fixed-heads config included), and every shard is one contiguous HTTP range. Specification: BRIK_FORMAT.md.

License β€” read this one

These are derived weights, and each source keeps its own terms:

The Brimkern engine itself is MIT. Converting weights does not change their license.

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 romainkh14/brimkern-image-BRIK

Finetuned
(2)
this model