Model reference · open weights
flux-3-image-klein is an open-weight image model from drawthingsai. flux-3-image-klein (BF16) weighs 11.2 GB; the smallest configuration that runs it is RTX 4090 24 GB.
For self-hosting, compare this build's requirements below with the GPU you plan to rent.
Summary of the drawthingsai/flux-3-image-klein model card, 2026-10-22
What it is
| Released by | drawthingsai |
|---|---|
| Released | 2026-10-19 |
| VRAM | 11.2 GB for the weights |
What it runs on
| Card | One image | Memory |
|---|---|---|
| RTX 3060 12 GB … RTX 4060 Ti 16 GB | does not fit | |
| RTX 3090 24 GB | fits | 23.4 GB |
| RTX 4090 24 GB | fits | 23.4 GB |
| RTX 5090 32 GB | fits | 31.0 GB |
| L40S 48 GB | fits | 44.0 GB |
| A100 80 GB | fits | 78.2 GB |
| H100 80 GB | fits | 78.1 GB |
| RTX PRO 6000 Blackwell 96 GB | fits | 93.8 GB |
| DGX Spark (GB10) 128 GB unified | fits | 107 GB |
| H200 141 GB | fits | 138 GB |
| B200 180 GB | fits | 176 GB |
From the model card
FLUX 3 Image Klein is a 5.6B open weights model for text-to-image generation and image editing. It takes a prompt and up to 10 reference images and returns one image. Text-to-image, single-reference edits and multi-reference compositions run through the same model, with Qwen3-VL-4B-Instruct as the text encoder.
The 5.6B parameter label refers to the image transformer; the text encoder is separate.
This repository holds the distilled checkpoint for generation and image editing. For fine-tuning, LoRA training and research, use FLUX 3 Image Klein Base.
Inference code, prompt upsampling and the bounding box format: black-forest-labs/flux-3-image-klein on GitHub.
Do not use the model without a prompt upsampler. FLUX 3 Image Klein takes full scene captions, for text-to-image, editing and layout with boxes alike; a short prompt sent as typed gives generic output. Use ours, flux-3-image-klein-pup, which the reference code loads by default, or any LLM you prefer with a system prompt that expands the request into one full scene caption (system_prompts.json has ours). Diffusers runs neither on its own; see Prompt upsampling.
This repository includes the BF16 transformer and FP8 and NVFP4 variants, together with the Qwen3-VL-4B-Instruct text encoder and image autoencoder.
| Checkpoint | Format | Steps | Guidance | Built for |
|---|---|---|---|---|
| Klein Base | undistilled, bfloat16 | 50 | 3.5 | fine-tuning, LoRA training, research |
| Klein | distilled, bfloat16 | 16 | none | generation and editing, self-hosting; the checkpoint behind the BFL API |
Download the root BF16 distilled package, including its text encoder and image autoencoder, without downloading the quantized variants:
from huggingface_hub import snapshot_download
snapshot_download(
repo_id="black-forest-labs/flux-3-image-klein",
local_dir="weights/flux-3-image-klein",
allow_patterns=[
"model.safetensors", "config.json", "manifest.json",
"ae.safetensors", "text_encoder/*",
"README.md", "LICENSE.md", "NOTICE.md",
],
)
To download a quantized distilled transformer instead, replace the three root transformer patterns (model.safetensors, config.json, and manifest.json) with variants/fp8r/* or variants/nvfp4/*. Keep ae.safetensors and text_encoder/* for the other components.
These files contain the model package, not a complete inference application. Use an inference implementation that supports flow-map sampling and this checkpoint format. Quantized packages need a loader that supports their format; their file size is not a measure of total GPU memory use.
The distilled checkpoint is served on the BFL API as FLUX 3 Image Klein. The reference inference code is black-forest-labs/flux-3-image-klein.
From the reference implementation checkout, install the package and download the two components the CLI loads besides this checkpoint. The CLI reads its weights from weights/ (set WEIGHTS_DIR for another root), where the download above puts this repository.
pip install -e .
# safety classifier, always loaded
hf download Falconsai/nsfw_image_detection --local-dir weights/nsfw-classifier
# prompt upsampler (18.8 GB), on by default; --no-pup sends the prompt as typed, for captions written by another LLM
hf download black-forest-labs/flux-3-image-klein-pup --local-dir weights/pup
# text-to-image
python scripts/cli.py 'A chunky knitted diorama: three white cable-knit icebergs with tiny pale blue houses, a cream banner embroidered "KNITTED ICEBERG VILLAGE", a giant magenta knitted whale tail bursting from a yarn sea' \
--model distilled --out knitted.png
# image editing; repeat --image for multiple references
python scripts/cli.py 'the same scene at night under a knitted full moon, embroidered stars above the peaks' \
--model distilled --image knitted.png --out knitted_night.png
FLUX 3 Image Klein uses a modular pipeline. Pass prompt for text-to-image generation, or pass image with a prompt for editing; image can be one image or a list of reference images. The model takes full scene captions, not short prompts: a request sent as typed gives generic output. Every request below goes through the prompt upsampler first, a separate 9B model (black-forest-labs/flux-3-image-klein-pup) that the pipeline does not run on its own. Load it beside the pipeline, then generate:
pip install git+https://github.com/huggingface/diffusers.git
import json
import torch
from diffusers import ModularPipeline
fromQuoted from the model card on Hugging Face. The full card is behind the Hugging Face link above.
How it works
Running it yourself
Rent a machine by the hour. How to run this model is on its model card.