FLUX.2 klein is the part of the family you can download. Black Forest Labs publishes four local variants, split across two licences and shipped through Hugging Face, and the rest of a local install follows from which one your GPU can hold.
This guide sticks to the figures the vendor and the ComfyUI project publish, and says so where a number is missing from both.
What FLUX.2 klein actually ships
Four variants, two licences
The model page lists a distilled and a Base version at each of two sizes. The 4B pair is Apache 2.0, the only FLUX.2 licence that permits commercial use without an API contract. The 9B pair sits under the FLUX Non-Commercial License: 4B is the one you build a product on, 9B the one you research with.
Base means undistilled. The overview describes those variants as foundation models with the full training signal, aimed at fine-tuning and custom pipelines, and adds the line that matters for planning: Base models are open weights for local development, and they are not offered on the public API.
Official VRAM figures
The vendor publishes more than one number, from different official pages. The overview says 4B runs on consumer GPUs at roughly 13GB of VRAM. The model page table is per variant:
| Variant | Licence | VRAM | Speed on an RTX 5090 |
|---|---|---|---|
| FLUX.2 [klein] 4B | Apache 2.0 | 8.4 GB | about 1.2 seconds |
| FLUX.2 [klein] 4B Base | Apache 2.0 | 9.2 GB | about 17 seconds |
| FLUX.2 [klein] 9B | FLUX Non-Commercial | 19.6 GB | about 2 seconds |
| FLUX.2 [klein] 9B Base | FLUX Non-Commercial | 21.7 GB | about 35 seconds |
Read the two 4B numbers as a range: one is a recommendation at full precision, the other the table figure. Neither page explains the gap, so treat 8.4 GB as the floor and 13 GB as the target.
Training minimums are higher than inference: the training page asks for an NVIDIA card with 12GB of VRAM and 32GB of system memory for 4B Base, and 22GB of VRAM with 64GB for 9B Base.
Putting the files in the right folders
Where each file goes
Weights come from the Black Forest Labs organisation on Hugging Face, which the model page links directly. The 9B repos sit behind an agreement: ComfyUI’s guide tells you to visit the BFL repository, accept it, then download.
ComfyUI’s own documentation publishes the folder layout for both sizes, and the names matter because the fp8 builds are not interchangeable with the full-precision ones:
ComfyUI/
└── models/
├── text_encoders/
│ └── qwen_3_4b.safetensors
├── diffusion_models/
│ ├── flux-2-klein-4b-fp8.safetensors
│ └── flux-2-klein-base-4b-fp8.safetensors
└── vae/
└── flux2-vae.safetensors
The 9B layout swaps in qwen_3_8b_fp8mixed.safetensors as the text encoder and offers flux-2-klein-9b-fp8.safetensors alongside flux-2-klein-base-9b-fp8.safetensors. Both sizes share the same VAE file. ComfyUI’s page also warns that the workflow templates ship with recent builds, so an outdated install opens a workflow with missing nodes.
Sampler settings by variant
Distilled runs four steps
The distilled builds are step-distilled to four inference steps, which is where the sub-second timing comes from. Base builds are undistilled and want a normal step count with real guidance. Mixing the two is the usual reason a local run looks broken: four steps on a Base checkpoint gives noise, forty steps on a distilled one wastes minutes.
One more klein rule: there is no prompt upsampling, so the prompt you type is the prompt the model sees. The overview asks for detailed, descriptive prompts, and the FLUX.2 prompt guide applies in full.
Two worked examples on a 12GB card
Both examples assume the distilled 4B files, a 12GB card and a current ComfyUI. Load the matching built-in template, image_flux2_klein_text_to_image for the first and image_flux2_klein_image_edit_4b_distilled for the second, then paste the prompt.
Example 1: a product shot
A matte ceramic coffee cup on a weathered oak table, shot from a low three-quarter angle, one hard window light from the left casting a long soft shadow, visible clay texture and a thin unglazed rim, muted cream and walnut palette, shallow depth of field, no text and no logo.
Four steps at 1024 by 1024, the distilled count the overview publishes. The prompt carries the light direction, the surface and the colour range because nothing upstream will add them for you.
Example 2: a background swap
Keep the chair from image 1 exactly as it is, including the weave and the shadows under the legs. Replace the room from image 1 with the concrete gallery from image 2, match the light direction of image 2, and add a soft floor reflection under the chair.
Load both references into the workflow’s LoadImage nodes, keep the same four steps, and name each reference by its number. That numbering habit is the whole trick with multi-reference editing, and klein accepts up to four references.

The getting started guide covers the hosted route, the pricing article has the rates, and whether FLUX.2 has a free tier covers the playground.
Where local stops and the API starts
Local wins on marginal cost and privacy, since nothing leaves the machine. It loses on what a 4B model cannot do: [max] with grounding search, and the preview endpoints where the latest quality improvements land first. A local checkpoint is a snapshot, and configuration does not make it a preview.
The Base variants sharpen the split. They are the reason to run locally at all if you plan to fine-tune: the training page reports LoRA files of 10 to 200MB, runs of one to three hours on consumer GPUs, learning rates of 8e-5 to 1e-4 and 1500 to 3000 steps. The hosted API serves only the distilled builds.
Frequently asked questions
Can I run FLUX.2 klein on an 8GB card? Official figures start at 8.4 GB for distilled 4B, so 8GB sits below the published floor and no official page describes such a setup.
Which variant should I download first? Distilled 4B under Apache 2.0: fastest, smallest, and the only klein build you can ship commercially.
Do I need a separate VAE for 4B and 9B? No. ComfyUI’s layout uses flux2-vae.safetensors for both sizes.
Why does the 9B download ask me to accept something? The 9B weights are under the FLUX Non-Commercial License, and ComfyUI’s guide points you at the BFL repository to accept the agreement first.
How many references does klein take locally? Up to four, the same limit the API applies to klein.
Is there a CPU-only path? No official figure or support statement exists for CPU-only inference, so there is nothing to quote.