Clark Air Sana Loader (GemLite INT2)
495 MB of Sana that still runs under the boring old KSampler
- MODEL
This is the node the whole pack exists for. It loads Clark Air Sana 1.6B - a ternary (~1.58-bit) compression of NVlabs' Sana 1.6B transformer, packed down to a 495 MB file and run on real GemLite INT2 CUDA kernels. If you've been hearing that Sana is "cheap and fast," this is the version that makes that claim land on hardware that's not a data-center card: the model was announced on r/StableDiffusion in June 2026 as a ~8× smaller-than-FP16 artifact with "almost no loss," and the reaction said it best - "374 MB for Sana is wild, my 2070 is gonna love this."
What makes it notable in practice: it's a drop-in MODEL for the standard ComfyUI KSampler. No custom sampler, no extra inference runtime. The pack vendors Sana's skeleton from ComfyUI_ExtraModels so you don't need that node pack either - the loader builds the model, injects the quantized kernels, and hands ComfyUI a normal MODEL socket.
How it actually works
The loader reads a .safetensors file, builds the SanaMS 1.6B skeleton (a 20-layer diffusion transformer with linear attention), then swaps 140 of its weight modules - 7 per block - for GemLite INT2 kernels holding the packed ternary codes. The "islands" around them - norms, embeddings, modulation, depthwise convs - stay at higher precision (FP8 islands upcast to bf16). That split is why a ~1.58-bit model still looks this good: the few percent of weights that matter most never got crushed.
The one design decision that bites users: the loader pins the packed trunk GPU-resident. GemLite holds its codes as buffers ComfyUI's weight-streaming can't move, so the loader deliberately sets offload_device = load_device and tells ComfyUI to leave it alone. That's a feature for reliability and a constraint for VRAM - see the gotchas.
The inputs, briefly
- pack_name - dropdown of
.safetensorsfiles inComfyUI/models/clark_air_sana/. This is the one you actually touch: the 495 MBclark_air_sana_gemlite_comfy.safetensorsyou download. - model_variant - only
SanaMS_1600M_P1_D20exists right now. Leave it. - dtype -
bfloat16default;float16is the fallback if bf16 misbehaves on your GPU.
Output: a single MODEL socket → KSampler.
Installing it
The pack install is the easy half (ComfyUI Manager → search "Clark Air Sana", or clone into custom_nodes). The model file is the manual half - the pack can't download the transformer for you:
# put it where the loader looks:
ComfyUI/models/clark_air_sana/clark_air_sana_gemlite_comfy.safetensors
Grab it from clark-labs/clark-air-sana-1.6b-gemlite-2bit on Hugging Face (495 MB). The Gemma text encoder and DC-AE VAE then download themselves on first queue, so the full running footprint lands around 3.2 GB. The dependencies - gemlite, bitsandbytes, triton, diffusers, transformers - install automatically with the pack.
The gotchas that actually bite
- It's CUDA-only, and Triton-dependent. GemLite's INT2 kernels don't run on AMD or on the CPU - the loader raises a clear "needs a CUDA GPU" error if it can't find one. Linux or WSL2 is the smooth path; native Windows leans on community-supported
triton-windows. - Don't run ComfyUI with
--lowvram. The README is explicit: GemLite's packed buffers can't be streamed, so the loader pins the ~0.5 GB trunk on the GPU. The Gemma encoder and VAE are fine to offload; the transformer is not. - KSampler settings come from the example workflow:
euler/normal, 20 steps, cfg 4.5, 512×512. Those aren't arbitrary - they're what the pack verified end-to-end. - Don't try a normal CheckpointLoader on this file. It's not a checkpoint; only this node understands the packed format.
It's new, it's from a small lab, and the community is still kicking the tires - which is to say, if it were a 30 GB model that needed an A100, you wouldn't be reading this. Update the pack when updates land, and treat the 495 MB as the whole point: this is quantization done so aggressively it changes what hardware you need.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| pack_name | COMBO | 0 options: | |
| model_variant | COMBO | SanaMS_1600M_P1_D20 | 1 options: SanaMS_1600M_P1_D20 |
| dtype | COMBO | bfloat16 | 2 options: bfloat16, float16 |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| MODEL | MODEL | — |