ComfyUI Node

FLUX.2 [klein] 9B KV

FLUX.2 Klein 9B — the consumer-grade Flux, served cloud-side

By Runware·Created 2 years ago·Updated about a month ago· 140
FLUX.2 [klein] 9B KV
  • referenceImages
  • lora
  • acceleratorOptions
  • advancedFeatures.watermark.image
  • image
positivePrompt
width1024
height1024
negativePrompt
seed0
steps4
scheduler(default)
CFGScale3.50
numberResults1
acceleration(default)
advancedFeaturesfalse
advancedFeatures.watermark.bgColor
advancedFeatures.watermark.displayPosition(default)
advancedFeatures.watermark.fontColor
advancedFeatures.watermark.opacityfalse
advancedFeatures.watermark.opacity_value0.10
advancedFeatures.watermark.text
safetyfalse
safety.checkContentfalse
ttlfalse
ttl_value60
outputFormatJPG
outputQuality95

When FLUX.2 Dev landed, it was the best open image model on paper and completely out of reach for consumer hardware - 18–24GB of VRAM even quantized, minutes per image on a 5090. BFL's answer was Klein: a size-distilled Flux 2 that runs in about 13GB locally. Klein 9B is the stronger of the two consumer tiers (4B is the Apache-licensed entry point; 9B is the non-commercial flagship, and the community's favorite for editing and for NSFW LoRA quality). This node serves the 9B tier from the cloud, and the "KV" in the name reflects the KV-cache-optimized serving path - the kind of detail that only matters if you're thinking about the serving, which you don't have to, because it's not your VRAM.

So why use a cloud Klein 9B when Klein's whole pitch is that it fits on consumer cards? Honestly, sometimes you're on a machine that still can't run it (13GB is a lot for a 3060-era laptop), or you want FLUX.2 output without downloading the fp8 weights and babysitting a local install, or you just want one consistent cloud pipeline across everything in the Runware pack. For that, this node is the sweet spot: near-flagship quality at a much friendlier price-per-call than Dev.

How it works

Same pattern as the Dev node: an imageInference request to Runware, returned as a native IMAGE tensor. What differs is the default posture - Klein is a distilled model built for speed, and this node's defaults reflect it: steps defaults to 4 (not a gate, unlike Dev), and CFGScale defaults to 3.5. That's the distilled sweet spot: few steps, light guidance. If you've been fighting local Flux and instinctively reaching for 28 steps, stop - this model is tuned to run fast and short.

Inputs that matter

  • positivePrompt, width, height (required) - 128–2048px in 16px steps, default 1024². Klein handles the 16:9 and portrait presets fine.
  • steps - default 4, 1–50. Distilled checkpoints genuinely benefit from very few steps; going to 20+ usually adds nothing but time (and cloud cost). Experiment, but don't assume "more is better."
  • CFGScale - default 3.5, 1–20. Low guidance is the Klein norm. If output looks overcooked, lower it; if it's ignoring the prompt, nudge up - but small moves.
  • referenceImages - the IMAGE input for editing/multi-reference. This is where Klein 9B has its reputation - editing quality that some rate above Z-Image's. Wire a source image in and describe the change.
  • lora - the Runware LoRA builder socket. Community LoRA quality on Klein 9B is a known strength; if you have a LoRA model ID, this is where it goes.
  • scheduler - 76 options, (default) is right for a distilled model.
  • negativePrompt - exists but is ignored when CFG ≤ 1; with a 3.5 default you're usually above that, but don't expect SDXL-style negative engineering to matter much.
  • acceleration / acceleratorOptions - an optimization level dropdown (none/low/medium/high) plus a builder socket. "High" trades a little quality for speed/cost. On a model this fast, try (default) first.
  • numberResults, outputFormat, outputQuality, safety, ttl - the usual.

Single output: image → Preview or Save.

Installing

cd ComfyUI/custom_nodes
git clone https://github.com/Runware/ComfyUI-Runware
pip install -r ComfyUI-Runware/requirements.txt

Or ComfyUI Manager → search Runware → install → restart. API key via Settings, RUNWARE_API_KEY, or runware auth login.

The honest fine print

Klein 9B is under the FLUX Non-Commercial License (the 4B is the commercial tier) - that travels with the cloud service, so check the license before selling output. And the model is still safety-filtered in the weights; the community routes around it with LoRAs, which is a "you do you" situation that the terms of a cloud API make stickier than on your own disk. For anyone who wants FLUX.2 quality without the hardware bill, though, this is the node - the distilled model was designed for exactly this kind of cheap, fast, accessible serving.

CategoryRunware/Image/runware

Inputs (27)

NameTypeDefaultDescription
positivePromptSTRINGText prompt describing elements to include in the generated output.
widthINT1024128–2048Width of the generated media in pixels.
heightINT1024128–2048Height of the generated media in pixels.
referenceImagesoptIMAGE
loraoptRUNWARE_LORA
acceleratorOptionsoptRUNWARE_ACCELERATOROPTIONS
advancedFeatures.watermark.imageoptIMAGE
negativePromptoptSTRINGPrompt to guide what to exclude from generation. Ignored when guidance is disabled (CFGScale ≤ 1).
seedoptINT00–9223372036854776000Random seed for reproducible generation. When not provided, a random seed is generated in the unsigned 32-bit range.
stepsoptINT41–50Total number of denoising steps. Higher values generally produce more detailed results but take longer.
scheduleroptCOMBO(default)Scheduler to use for the diffusion process.
CFGScaleoptFLOAT3.501–20Guidance scale representing how closely the output will resemble the prompt. Higher values produce results more aligned with the prompt.
numberResultsoptINT11–20Number of results to generate. Each result uses a different seed, producing variations of the same parameters.
accelerationoptCOMBO(default)Optimization level.
advancedFeaturesoptBOOLEANfalseEnable to set advancedFeatures. Off uses the model's default.
advancedFeatures.watermark.bgColoroptSTRINGBackground color in hex format.
advancedFeatures.watermark.displayPositionoptCOMBO(default)Watermark position.
advancedFeatures.watermark.fontColoroptSTRINGText color in hex format.
advancedFeatures.watermark.opacityoptBOOLEANfalseEnable to set advancedFeatures.watermark.opacity. Off uses the model's default.
advancedFeatures.watermark.opacity_valueoptFLOAT0.100.1–1Watermark opacity.
advancedFeatures.watermark.textoptSTRINGWatermark text.
safetyoptBOOLEANfalseEnable to set safety. Off uses the model's default.
safety.checkContentoptBOOLEANfalseEnable or disable content safety checking.
ttloptBOOLEANfalseEnable to set ttl. Off uses the model's default.
ttl_valueoptINT60Time-to-live (TTL) in seconds for generated content. Only applies when `outputType` is `URL`.
outputFormatoptCOMBOJPGFile format for the generated image.
outputQualityoptINT9520–99Compression quality of the output. Higher values preserve quality but increase file size.

Outputs (1)

NameTypeDescription
imageIMAGE