ComfyUI Node

FLUX.2 [klein] 9B

The Editing Daily Driver, Without the 21GB

By Runware·Created 2 years ago·Updated about a month ago· 140
FLUX.2 [klein] 9B
  • 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

FLUX.2 [klein] 9B is the model that became the default local image editor in the first half of 2026 - and this node runs that exact model in the cloud, which matters because the 9B distilled variant is the one people actually drive daily. "Klein" is German for small, and small is the point: BFL distilled the 32B Flux 2 down to a 9B student that does text-to-image, single-reference editing, and multi-reference editing in one checkpoint. Locally, the 9B distilled still wants ~19.6GB of VRAM and a 21.7GB base-model sibling exists for training. With this node you get the same weights running on Runware's GPUs and a native IMAGE back - no VRAM roulette.

The one thing to know before you build a habit around it: the 9B carries the FLUX Non-Commercial License. If you're a hobbyist or a researcher, fine. If you're shipping client work, the 4B klein is the Apache-2.0 pick and the pro/flex tiers exist for hosted commercial use. This node is the cloud version of the weights you can't quite legally use for money.

What you set

Required: positivePrompt, width, height (128–2048, stepped by 16). Then the useful defaults are already sane:

  • steps - this node does not gate it; it's a plain integer defaulting to 4. That's the distilled-model signature: the whole release runs at 4 steps, because distillation collapses the denoising trajectory into a few big jumps. Cranking it to 50 on the distilled model doesn't buy you quality - it buys you a bigger bill.
  • CFGScale - plain float, default 3.5 (1–20). The distilled model's sweet spot is low single digits; the community default template was 4 steps at CFG 1.
  • scheduler - 76 options, (default) is right.
  • acceleration - a hosted speedup dropdown (none/low/medium/high). Higher = faster cloud runs = cheaper per image, at some quality cost. Try medium before you pay for high.

Then the sockets that make it a real editor: referenceImages for single/multi-reference edits, lora (there's a whole klein LoRA ecosystem now), negativePrompt, and acceleratorOptions for cache/tea-cache tuning. Output is one image.

Why you'd reach for it

Editing, mostly. Klein's superpower is that you don't maintain separate generation and edit checkpoints - one model does both, and it does multi-reference editing (character sheets, "this person wearing that jacket") better than anything open before it. In the cloud, you get that capability without the ~20GB footprint, and the 4-step speed means fast, cheap iterations.

Install

Standard pack install:

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

Restart, or install "Runware" via ComfyUI Manager; API key in Settings → Runware API key or RUNWARE_API_KEY. Cost shows per run on the title bar. And one last thing: don't mix klein LoRA sizes - 4B and 9B LoRAs aren't interchangeable, a mess the community already made on CivitAI.

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