FLUX.2 SDNQ Text to Image
Klein in four steps, and why that's the whole trick
- pipeline
- IMAGE
The default steps value here is 4, and that's not a typo or a corner-cut. FLUX.2 Klein shipped in distilled form - a student model trained to jump most of the way to the finished image in a handful of steps instead of the 20–50 a normal diffusion model needs. On a 5090, the official 4B numbers are roughly a second per image at 4 steps. The distilled pipeline also runs at CFG 1.0, which this node pins internally when the pipeline accepts a guidance scale. This is the "generation crossed into interaction" category of speed, and it's the whole reason you'd reach for Klein over the heavier Flux 2 Dev.
That speed has a bill, and the community has itemized it: Klein's anatomy failures happen early in sampling, so at 4 steps you can get extra fingers or a third arm. The most-upvoted fix from launch week is to run 8 steps and nudge CFG to 1.2–1.5 - the tooltip on this very node admits the distilled defaults are "intentionally low." Doubling steps costs you ~2x wall time and buys back most of the body horror. Do that before you conclude Klein is broken.
What it is and how it fits
This is the text-to-image generator in the FLUX.2 SDNQ pack. It takes the FLUX2_SDNQ_PIPELINE from the Loader node, runs the prompt through the diffusers Klein pipeline (no KSampler involved - the pack is its own runtime), and outputs a normal ComfyUI IMAGE you can preview or save like any other.
Prompting: it's a chat message, not tag soup
This is the single most important thing to get right with Klein, and it applies to the whole model family, SDNQ or not. Klein's text encoder is a Qwen3 LLM, and it reads your prompt like an instruction, not like CLIP tags. ((masterpiece, best quality)), repetition for emphasis, and Comfy prompt weighting all do basically nothing. Sentences with explicit ownership and spatial relations do:
Bad: beach, woman, camera, sitting, black dress, looking, ocean, realistic
Better: A realistic photo of a woman sitting on a beach. She is looking at the
camera. She is wearing a black dress. The ocean is behind her.
Write it like you're describing the shot to a photographer, and the hit rate climbs noticeably.
The inputs that matter
- prompt - multiline, and the field supports dynamic-prompt wildcard syntax if you use that tooling.
- steps - 4 default; the 8-step/CFG-boosted tweak above is your first lever when results look wrong. (CFG itself isn't exposed on this node - it's internal - so the "nudge to 1.2–1.5" advice maps here to: if you can't set CFG, just run more steps.)
- width / height - 1024×1024 default, multiples of 16, up to 16384. Klein is happiest around 1–2 MP; don't chase the max.
- seed - 0 defaults to random; the node resolves negative seeds to a random value too.
- num_images - 1–8; it batches the output into one
IMAGEtensor, so more than 1 means the save node gets a grid-friendly batch.
Output
One IMAGE output - the generated image or batch. Wire it into any standard preview (PreviewImage) or save node (SaveImage).
Install and gotchas
Same shared pack install: ComfyUI Manager → search FLUX.2 SDNQ, or git clone https://github.com/GeneralShan/comfyui-flux2-sdnq into custom_nodes, restart, and make sure sdnq, diffusers, and peft are pip-installed (ComfyUI 0.17+, Python 3.12+).
Two traps worth knowing before you blame the node. First, don't run a base (undistilled) Klein checkpoint through this at 4 steps - the 50-step model will look unfinished and blurry; the distilled 4B/9B is what the defaults are tuned for. Second, an empty prompt at CFG 1 leaves Klein free to invent a signature watermark on artistic styles - give it a real prompt or expect the occasional autograph. If generation suddenly gets slow or OOMs after a batch, that's memory pressure, not this node - the pack's Clear Caches node is the eject button.
Inputs (7)
| Name | Type | Default | Description |
|---|---|---|---|
| pipeline | FLUX2_SDNQ_PIPELINE | — | |
| prompt | STRING | Prompt text for the FLUX.2 Klein generation. | |
| steps | INT | 41–100 | Number of denoising steps. Distilled defaults are intentionally low. |
| width | INT | 102464–16384 | Output width in pixels. |
| height | INT | 102464–16384 | Output height in pixels. |
| seed | INT | 00–18446744073709550000 | Random seed for the latent noise. |
| num_images | INT | 11–8 | Number of images to generate for the prompt. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| IMAGE | IMAGE | — |