Black Forest Labs releases FLUX.3 Klein: 1024×1024 in 2 seconds on an H100
Black Forest Labs has released FLUX.3 Image Klein, an open model that worked in Hugging Face's Diffusers library from day one. A single model handles text-to-image generation, editing from multiple references, and a new feature: layout control through bounding boxes written directly in the prompt. You can specify where each object goes in the frame, or which part of a reference to move and where to put it. The distilled checkpoint generates a 1024×1024 image in 16 steps, in about 1.93 seconds on an H100 with a peak memory of 23.8 GiB. FP8 and NVFP4 weights are available for smaller GPUs. A reference image roughly doubles the time, because its tokens go into the same sequence as the text and the image being generated. • Two checkpoints: distilled (16 steps, no CFG) and base (50 steps, CFG) for fine-tuning • Qwen3-VL text encoder, VAE from Flux.2 • DreamBooth LoRA scripts for generation and editing, pipeline built on Modular Diffusers
AI-processed from Hugging Face Blog; edited by Hamidun News
Black Forest Labs has released FLUX.3 Image Klein, a new open image generation model. Hugging Face announced Diffusers support on release day. A single model covers text-to-image and image-to-image with multiple references. The main new feature is layout control through bounding boxes written directly in the prompt. The distilled checkpoint produces a 1024×1024 frame in about 2 seconds on an NVIDIA H100.
Frame layout in the prompt
You add a JSON list of regions to the scene description. Each region has an identifier, a bbox and a desc, and the main text refers to the region with a tag such as `<silhouette_1>`. Coordinates are written in the order [y_min, x_min, y_max, x_max] on a normalized 0–1000 scale, so the same box works at any resolution.
For editing, the scheme is extended. Each region gets a src_bbox (where to take the content from in the reference) and a tgt_bbox (where to place it). If the boxes match, the area stays in place. In the developers' example, they move a knitted knight up and to the left while pinning the background, cliff, spire, dragon and fire. When a prompt contains several references, they are called `<ref_image_0>`, `<ref_image_1>` and so on, in the order they are passed.
Speed and memory: what the measurements show
The measurements were made on a single H100 80GB without offloading, averaged over three runs after warm-up, for the distilled checkpoint at 16 steps:
- Text-to-image, 1024×1024: 1.93 s, peak memory 23.8 GiB
- Image-to-image with one 1024×1024 reference: 3.87 s, 23.8 GiB
- Layout editing (the knight), 1360×768 reference: 4.10 s, 23.8 GiB
A reference doubles the time because of the architecture. The Flux.2 VAE compresses the image by 8x along each side into 32 channels, then packs each 2×2 patch into a token with 128 channels. One token covers 16×16 pixels, so a 1024×1024 image yields 4,096 tokens. A reference adds the same number to every transformer call: text-to-image — 4,256 tokens, image-to-image — 8,272, layout text-to-image — 4,336, layout image-to-image — 8,800.
The text encoder is Qwen3-VL. The model takes the hidden states of eight of its 36 layers (4, 8, … 32) and concatenates them: each token becomes a vector of 8 × 2560 = 20,480 dimensions, which a linear layer projects to the transformer width of 3072.
Checkpoints, quantization and fine-tuning
The collection includes two open checkpoints:
- black-forest-labs/flux-3-image-klein — step-distilled, 16 steps, no CFG
- black-forest-labs/flux-3-image-klein-base — base model, 50 steps, CFG; this is the one recommended for fine-tuning
The transformer is available as a single file in bf16 and in two quantized formats. fp8r (rowwise FP8) requires compute capability 8.9+ (Ada, Hopper, Blackwell). On other GPUs the weights are dequantized at every step: this saves memory but gives no speedup. nvfp4 provides fast kernels on Blackwell and requires flashinfer-python and flashinfer-cubin of the same version. Loading goes through from_single_file with BFLQuantizationConfig.
Peak memory after loading and after inference:
- nvfp4 (RTX 6000): 13.4 and 15.3 GiB
- fp8r (H100): 14.35 and 16.27 GiB
- bf16 (H100): 18.80 and 20.72 GiB
The pipeline ships as Modular Diffusers: you can remove blocks or add your own. For tight memory, there is the quantized transformer, a separate text-encoder run that is then freed (it is needed only once per image), and automatic CPU offloading through ComponentsManager (the authors did not benchmark it).
For LoRA, diffusers has two DreamBooth scripts: train_dreambooth_lora_flux3_klein.py for generation and train_dreambooth_lora_flux3_klein_img2img.py for editing on triplets (reference, target, instruction). In the example using the 1920-raider-waite-tarot-public-domain dataset, a tarot style is learned with the trigger trtcrd: rank 16, lora_alpha 16, lr 1e-4, 1500 steps, bf16, batch size 1. The flags --gradient_checkpointing, --cache_latents and --use_8bit_adam save memory. You can also train with Ostris's AI Toolkit.
Where to start
Install the latest diffusers and transformers (`pip install -U diffusers transformers`), load a ModularPipeline from black-forest-labs/flux-3-image-klein in bfloat16, and call the pipeline with prompt and output="images". A detailed scene description covering subject, setting, lighting, composition and style works better than a short phrase. For editing, write the prompt as a caption of the desired result, including the change. On smaller GPUs, use fp8r or nvfp4. You can also try the model in a Space on Hugging Face without installing anything.
- Oct 29, 2026Liquid AI releases LFM3: six multimodal 2B models with a 256K context window
- Oct 28, 2026Nemotron 3.5 Bolt Squeezed Into 24 GB: 74B Model Hits 84 Tokens per Second
- Oct 28, 2026PyTorch 2.15 speeds up MoE models on Mac by 5–6.5x and adds FP8
- Oct 28, 2026OpenAI Releases Decisions API: Agent Decisions Up to 10x Faster
Key Questions Answered
What are the key details on Frame layout in the prompt?
You add a JSON list of regions to the scene description. Each region has an identifier, a bbox and a desc, and the main text refers to the region with a tag such as `<silhouette_1>`. Coordinates are written in the order [y_min, x_min, y_max, x_max] on a normalized 0–1000 scale, so the same box works at any resolution. For editing, the scheme is extended. Each region gets a src_bbox (where to take the content from in the reference) and a tgt_bbox (where to place it). If the boxes match, the area stays in place. In the developers' example, they move a knitted knight up and to
What are the key details on Speed and memory: what the measurements show?
The measurements were made on a single H100 80GB without offloading, averaged over three runs after warm-up, for the distilled checkpoint at 16 steps: Text-to-image, 1024×1024: 1.93 s, peak memory 23.8 GiB Image-to-image with one 1024×1024 reference: 3.87 s, 23.8 GiB Layout editing (the knight), 1360×768 reference: 4.10 s, 23.8 GiB A reference doubles the time because of the architecture. The Flux.2 VAE compresses the image by 8x along each side into 32 channels, then packs each 2×2 patch into a token with 128 channels. One token covers 16×16 pixels, so a 1024×1024 image yi
What are the key details on Checkpoints, quantization and fine-tuning?
The collection includes two open checkpoints: black-forest-labs/flux-3-image-klein — step-distilled, 16 steps, no CFG black-forest-labs/flux-3-image-klein-base — base model, 50 steps, CFG; this is the one recommended for fine-tuning The transformer is available as a single file in bf16 and in two quantized formats. fp8r (rowwise FP8) requires compute capability 8.9+ (Ada, Hopper, Blackwell). On other GPUs the weights are dequantized at every step: this saves memory but gives no speedup. nvfp4 provides fast kernels on Blackwell and requires flashinfer-python and flashinfer-c
Build & Ship Production AI Agents Without Boilerplate Code
Start your free 72-hour trial at Hamidun Academy (academy.hamidun.com) — interactive lessons on Claude Code & Cursor, live Tech Radar, and production agent templates.
The AI world, distilled — once a week
Seven stories that actually mattered, hand-picked. No noise, no reposts, no press releases.
Done! Check your inbox for a confirmation.