One Node · FLUX.2 [klein]
The everything-box that kills the spaghetti
- image
The name is a lie - this is not one node, it's about forty nodes wearing a single-node coat. But that's the point. One Node · FLUX.2 [klein] (class FluxKleinOneNode) is a self-contained widget that wraps the entire FLUX.2 [klein] workflow into a drop-in UI: text-to-image, image-to-image, editing, sketch, inpaint, outpaint, faceswap, pose transfer, and SeedVR2 upscaling, all from one place in your graph. You add it, pick a model in its Settings, type a prompt, and go. No wiring, no missing-node chase, no "why is this workflow broken" hour.
It exists because FLUX.2 [klein] deserves a friendlier front door. The full 32B Flux 2 Dev needs 18–24GB VRAM even quantized, which is why the January 2026 Klein release - size-distilled down to 4B and 9B - became the consumer entry point. This node rides that: it works with either Klein variant and hides the graph underneath. Community reception on the launch thread was genuinely warm ("one of the best nodes I have ever seen"), and one commenter summed it up as "A1111 inside ComfyUI." That's exactly the vibe: a form, not a flowchart.
How it actually works
Don't expect any API calls or keys - the Python class is deliberately dumb. FluxKleinOneNode returns the image currently shown in its preview, nothing more. The real work happens in the frontend: the JS ships prebuilt ComfyUI graphs for every mode (T2I, I2I, EDIT, PAINT, FACESWAP, POSE, UPSCALE, background removal), patches in your model selection, prompt, images and LoRAs at generate time, queues the whole thing through ComfyUI's own API, then writes the result back to the node's output. So it's a workflow builder wrapped in a widget, and the underlying graph is still regular ComfyUI - which is why the author's own line is fair: you keep the whole ecosystem available if you ever need it.
The surface is tiny, the Settings are not
The graph-facing surface is deliberately minimal. The only inputs and outputs that exist are:
prompt(optional STRING input) - feed the prompt from another node instead of the box.image(IMAGE output) - push the result into the rest of your graph, like an upscaler.
Everything else lives inside the widget: a Settings panel for model/CLIP/VAE dropdowns, LoRA slots with per-slot strength and toggles, a gallery, and canvas-like zoom/pan. If you only touch three things, it's the mode switcher, the prompt box, and Settings → model selection.
Installing it
The pack itself has no pip dependencies - it's just Python plus the bundled workflow JSON, so install is clean:
cd ComfyUI/custom_nodes
git clone https://github.com/yanokusnir-ai/one-node-flux-2-klein
Restart ComfyUI and it appears as One Node · FLUX.2 [klein] under the "One Node" category. You can also use ComfyUI Manager and search the pack title.
The catch is the modes, which lean on other people's nodes. Inpaint and outpaint need lquesada's ComfyUI-Inpaint-CropAndStitch; POSE needs Fannovel16's comfyui_controlnet_aux for the DWPose preprocessor. Clone both into the same custom_nodes folder.
Then the models, all from Black Forest Labs' HF collection (the README has direct links): a qwen_3_8b text encoder (or qwen_3_4b for the 4B model) into models/text_encoders/, flux2-vae into models/vae/, the Klein diffusion model, plus the optional Faceswap LoRA, RefControl pose LoRA, BiRefNet for background removal, and SeedVR2 model + VAE for UPSCALE mode.
Where people get burned
- Mode complains about missing nodes. You almost always forgot
ComfyUI-Inpaint-CropAndStitchorcomfyui_controlnet_aux. Install both up front and most confusion evaporates. - Model won't show in the dropdown. Hit "↻ Refresh models" in Settings - no restart needed - and make sure symlinked folders are scanned.
- "Gens look worse than the standard workflow." That was the top criticism on launch, and the author's reply is the fix: enable advanced controls in Settings for sampler, CFG, and steps. The defaults are tuned for speed, not peak quality.
- Upscale mode looking off. SeedVR2 is superb but picky: the community consistently lands on the FP16 model, and the author's own tip is that shrinking the source first (the "Scale by longer side" option) often gives cleaner results than upscaling a big input.
- VRAM or licensing. The 9B Klein is non-commercial; the 4B is Apache 2.0 and runs in about 13GB. If you're building anything for money, pick 4B and don't look back.
One launch-week bug had images saving fine but not showing in the preview; the changelog shows heavy iteration since, so if you hit anything weird, git pull before debugging.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| promptopt | STRING | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| image | IMAGE | — |