A Sana 1.6B text-to-image transformer compressed to ternary (~1.85 bits/weight): 8.6× smaller than FP16, near-FP16 quality.

Samples generated by Clark Air Sana 1.6B at 1.58 bits.
| Artifact | Size | vs FP16 | What it is |
|---|---|---|---|
| FP16 transformer | 3.21 GB | 1× (100%) | reference |
| Clark Air (packed) | 374 MB | 8.6× (≈12%) | packed ternary (clark-air-sana-1.6b-packed.safetensors) |
| Clark Air (unpacked) | 3.21 GB | compatibility | this repo's transformer/, dequantized bf16, drop-in diffusers |
Measured ~1.85 bits/weight → 8.6× smaller (374 MB packed ÷ 3.21 GB FP16).
ℹ️ The
transformer/here is the unpacked compatibility format: it loads in stockdiffuserswith no custom code, so it is the same 3.21 GB as FP16. The actual compressed artifact is the 374 MB packedsafetensorsin this repo.
diffusers)import torch
from diffusers import SanaPipeline, SanaTransformer2DModel
transformer = SanaTransformer2DModel.from_pretrained(
"clark-labs/clark-air-sana-1.6b-1.58bit", subfolder="transformer", torch_dtype=torch.bfloat16)
pipe = SanaPipeline.from_pretrained(
"Efficient-Large-Model/Sana_1600M_512px_diffusers", transformer=transformer, torch_dtype=torch.bfloat16)
pipe.to("cuda")
pipe("a half empty bottle of red wine", num_inference_steps=20, guidance_scale=4.5).images[0].save("out.png")
The transformer weights are quantized to ternary with group-wise scales; a small high-precision tail (~5% of parameters, the conditioning and projection layers) is kept at higher precision.
Apache-2.0 © Clark Labs, Inc.
Same prompts and seed across columns: fp16 base | naive 3-bit PTQ | naive 2-bit PTQ | Clark Air 1.58-bit (trained ternary). Naive post-training quantization collapses by 2 bits, while the trained ternary model uses fewer bits yet tracks fp16.

3 commits
A Sana 1.6B text-to-image transformer compressed to ternary (~1.85 bits/weight): 8.6× smaller than FP16, near-FP16 quality.

Samples generated by Clark Air Sana 1.6B at 1.58 bits.
| Artifact | Size | vs FP16 | What it is |
|---|---|---|---|
| FP16 transformer | 3.21 GB | 1× (100%) | reference |
| Clark Air (packed) | 374 MB | 8.6× (≈12%) | packed ternary (clark-air-sana-1.6b-packed.safetensors) |
| Clark Air (unpacked) | 3.21 GB | compatibility | this repo's transformer/, dequantized bf16, drop-in diffusers |
Measured ~1.85 bits/weight → 8.6× smaller (374 MB packed ÷ 3.21 GB FP16).
ℹ️ The
transformer/here is the unpacked compatibility format: it loads in stockdiffuserswith no custom code, so it is the same 3.21 GB as FP16. The actual compressed artifact is the 374 MB packedsafetensorsin this repo.
diffusers)import torch
from diffusers import SanaPipeline, SanaTransformer2DModel
transformer = SanaTransformer2DModel.from_pretrained(
"clark-labs/clark-air-sana-1.6b-1.58bit", subfolder="transformer", torch_dtype=torch.bfloat16)
pipe = SanaPipeline.from_pretrained(
"Efficient-Large-Model/Sana_1600M_512px_diffusers", transformer=transformer, torch_dtype=torch.bfloat16)
pipe.to("cuda")
pipe("a half empty bottle of red wine", num_inference_steps=20, guidance_scale=4.5).images[0].save("out.png")
The transformer weights are quantized to ternary with group-wise scales; a small high-precision tail (~5% of parameters, the conditioning and projection layers) is kept at higher precision.
Apache-2.0 © Clark Labs, Inc.
Same prompts and seed across columns: fp16 base | naive 3-bit PTQ | naive 2-bit PTQ | Clark Air 1.58-bit (trained ternary). Naive post-training quantization collapses by 2 bits, while the trained ternary model uses fewer bits yet tracks fp16.

3 commits